# automaticDiscountNodes - admin - QUERY Version: 2025-01 ## Description Returns a list of [automatic discounts](https://help.shopify.com/manual/discounts/discount-types#automatic-discounts). ### Access Scopes Apps must have `read_discounts` access scope. ## Arguments * [after](/docs/api/admin/2025-01/scalars/String): String - The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * [before](/docs/api/admin/2025-01/scalars/String): String - The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). * [first](/docs/api/admin/2025-01/scalars/Int): Int - The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * [last](/docs/api/admin/2025-01/scalars/Int): Int - The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). * [query](/docs/api/admin/2025-01/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`<br/> - `query=title:green hoodie` | | id | id | Filter by `id` range. | | | - `id:1234`<br/> - `id:>=1234`<br/> - `id:<=1234` | | status | string | Filter by the discount status. | - `active`<br/> - `expired`<br/> - `scheduled` | | - `status:scheduled` | | type | string | Filter by the [discount type](https://help.shopify.com/manual/discounts/discount-types). | - `all`<br/> - `all_with_app`<br/> - `app`<br/> - `bxgy`<br/> - `fixed_amount`<br/> - `percentage` | | - `type:bxgy` | 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/2025-01/scalars/Boolean): Boolean - Reverse the order of the underlying list. * [savedSearchId](/docs/api/admin/2025-01/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/2025-01/enums/AutomaticDiscountSortKeys): AutomaticDiscountSortKeys - 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/2025-01/objects/DiscountAutomaticNodeEdge): DiscountAutomaticNodeEdge! 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/2025-01/objects/DiscountAutomaticNode): DiscountAutomaticNode! A list of nodes that are contained in DiscountAutomaticNodeEdge. 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/2025-01/objects/PageInfo): PageInfo! An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. ## Examples ### Query a list of automatic discounts Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query { automaticDiscountNodes(first: 2) { edges { node { id automaticDiscount { ... on DiscountAutomaticBasic { title status } ... on DiscountAutomaticBxgy { title status } } } } } }\"\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query {\n automaticDiscountNodes(first: 2) {\n edges {\n node {\n id\n automaticDiscount {\n ... on DiscountAutomaticBasic {\n title\n status\n }\n ... on DiscountAutomaticBxgy {\n title\n status\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 automaticDiscountNodes(first: 2) {\n edges {\n node {\n id\n automaticDiscount {\n ... on DiscountAutomaticBasic {\n title\n status\n }\n ... on DiscountAutomaticBxgy {\n title\n status\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 automaticDiscountNodes(first: 2) {\n edges {\n node {\n id\n automaticDiscount {\n ... on DiscountAutomaticBasic {\n title\n status\n }\n ... on DiscountAutomaticBxgy {\n title\n status\n }\n }\n }\n }\n }\n }`,\n);\n\nconst data = await response.json();\n" Graphql query: "query {\n automaticDiscountNodes(first: 2) {\n edges {\n node {\n id\n automaticDiscount {\n ... on DiscountAutomaticBasic {\n title\n status\n }\n ... on DiscountAutomaticBxgy {\n title\n status\n }\n }\n }\n }\n }\n}" #### Graphql Input null #### Graphql Response { "data": { "automaticDiscountNodes": { "edges": [ { "node": { "id": "gid://shopify/DiscountAutomaticNode/1057371287", "automaticDiscount": { "title": "Automatic BXGY", "status": "ACTIVE" } } }, { "node": { "id": "gid://shopify/DiscountAutomaticNode/1057371288", "automaticDiscount": { "title": "Basic Discount", "status": "ACTIVE" } } } ] } } } ### Query automatic discounts with pagination and filtering Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query { automaticDiscountNodes(first: 1, query: \\\"status:active\\\") { nodes { id automaticDiscount { ... on DiscountAutomaticBxgy { title status } } } pageInfo { hasNextPage endCursor } } }\"\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query {\n automaticDiscountNodes(first: 1, query: \"status:active\") {\n nodes {\n id\n automaticDiscount {\n ... on DiscountAutomaticBxgy {\n title\n status\n }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\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 automaticDiscountNodes(first: 1, query: \"status:active\") {\n nodes {\n id\n automaticDiscount {\n ... on DiscountAutomaticBxgy {\n title\n status\n }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\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 automaticDiscountNodes(first: 1, query: \"status:active\") {\n nodes {\n id\n automaticDiscount {\n ... on DiscountAutomaticBxgy {\n title\n status\n }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }`,\n);\n\nconst data = await response.json();\n" Graphql query: "query {\n automaticDiscountNodes(first: 1, query: \"status:active\") {\n nodes {\n id\n automaticDiscount {\n ... on DiscountAutomaticBxgy {\n title\n status\n }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}" #### Graphql Input null #### Graphql Response { "data": { "automaticDiscountNodes": { "nodes": [ { "id": "gid://shopify/DiscountAutomaticNode/1057371286", "automaticDiscount": { "title": "Active BXGY", "status": "ACTIVE" } } ], "pageInfo": { "hasNextPage": false, "endCursor": "eyJsYXN0X2lkIjoxMDU3MzcxMjg2LCJsYXN0X3ZhbHVlIjoiMTA1NzM3MTI4NiJ9" } } } }