11/2/2026, 8:27:46 PM
Shopify introduced a created_at filter for several query arguments—discountCodesCount, discountRedeemCodeSavedSearches, markets, menus, menusCount, metaobjects, productVariants, and productVariantsCount. This allows clients to limit results by creation date/time alongside existing filters. The rollouts.query argument now also supports created_at. A new mutation, inventoryBinsEdit, lets developers atomically create, update, or delete inventory bins in a single request. The automation workflow APIs now expose an activationErrors field and re‑classify configuration problems as validationErrors, with an added RESOURCE_NOT_FOUND enum value. Additional minor schema tweaks include a accountName field on AgenticExternalAccount, a CREATED_AT option for BlogSortKeys, and adjustments to Customer and CompanyLocation store credit account queries to include created_at. These changes enhance query flexibility, error granularity, and batch inventory bin management for developers.
The total number of discount codes for the shop. Limited to a maximum of 10000 by default.
List of the shop's redeemed discount code saved searches.
Returns a paginated list of Market objects configured for the shop. Markets match buyers based on defined conditions to deliver customized shopping experiences.
Filter markets by MarketType and MarketStatus, search by name, and control sort order. Retrieve market configurations including MarketCurrencySettings, MarketWebPresence objects, and MarketConditions.
Learn more about Shopify Markets.
Retrieves navigation menus. Menus organize content into hierarchical navigation structures that merchants can display in the online store (for example, in headers, footers, and sidebars) and customer accounts.
Each Menu contains a handle for identification, a title for display, and a collection of MenuItem objects that can be nested up to 3 levels deep. Default menus have protected handles that can't be modified.
Count of menus.
Returns a paginated list of Metaobject entries for a specific type. Metaobjects are custom data structures that extend Shopify's data model with merchant or app-specific data types.
Filter results using the query parameter with a search syntax for metaobject fields. Use fields.{key}:{value} to filter by field values, supporting any field previously marked as filterable.
Results are ordered by metaobject ID in ascending order by default. The sortKey parameter accepts id, type, updated_at, or display_name to control result ordering. Pass reverse: true to invert the order.
Learn more about querying metaobjects by field value.
Retrieves a list of product variants
associated with a product.
A product variant is a specific version of a product that comes in more than
one option,
such as size or color. For example, if a merchant sells t-shirts with options for size and color,
then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another.
Use the productVariants query when you need to:
The productVariants query supports pagination
to handle large product catalogs and saved searches
for frequently used product variant queries.
The productVariants query returns product variants with their associated metadata, including:
Learn more about working with Shopify's product model.
Count of product variants. Limited to a maximum of 10000 by default.
Returns the list of rollouts in the shop.
Creates, updates and deletes inventory bins in a single atomic operation. If any operation
fails, no changes are applied.
Note:
This mutation is available only in the unstable API version and to development stores
that have enabled the Physical inventory feature preview.
Creates a draft automation from a JSON configuration.
Input errors are returned in userErrors and nothing is saved. A saved draft can still havevalidationErrors for its configuration and activationErrors for non-structural blockers; resolve both before activating.
Updates an automation's name, tags, note, or configuration. Supply at least one editable field.
Omitted fields keep their existing values.
Replacing the configuration edits the latest draft in place, or creates a draft if none exists.
Any active version continues running with its existing configuration. Changes to the name, tags, or note
don't create a draft.
Input errors are returned in userErrors and nothing is saved. A saved version can still havevalidationErrors for its configuration and activationErrors for non-structural blockers; resolve both before activating it.
Creates a refund for an order, allowing you to process returns and issue payments back to customers.
Use the refundCreate mutation to programmatically process refunds in scenarios where you need to
return money to customers, such as when handling returns, processing chargebacks, or correcting
order errors.
The refundCreate mutation supports various refund scenarios:
You can create both full and partial refunds, and optionally allow over-refunding in specific
cases.
If the order has an existing
write-off,
calling this mutation can reduce the written-off amount automatically when it reduces the order total
before write-offs below the remaining written-off amount.
After creating a refund, you can track its status and details through the order'srefunds
field. The refund is associated with the order and can be used for reporting and reconciliation purposes.
Learn more about
managing returns
and refunding duties.
Note:
The refunding behavior of therefundCreatemutation is similar to thereturnRefund
mutation. The key difference is that therefundCreatemutation lets you to specify restocking behavior
for line items, whereas thereturnRefundmutation focuses solely on handling the financial refund without
any restocking input.
Caution:
As of 2026-01, this mutation supports an optional idempotency key using the@idempotentdirective.
As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective.
For more information, see the idempotency documentation.
The input fields to create a bin at a location.
The input fields to delete a bin.
The input fields to update an existing bin.
The input fields for a single bin operation. Exactly one of the fields must be provided.
Return type for inventoryBinsEdit mutation.
An error that occurs during the execution of InventoryBinsEdit.
Possible error codes that can be returned by InventoryBinsEditUserError.
The input fields for a staged file to add to dispute evidence. Stage the file withstagedUploadsCreate
using the DISPUTE_FILE_UPLOAD resource, upload it to the returned target, and then pass the target'sresourceUrl as originalSource.
accountNameThe partner account's name, or null when no account is linked or the account has no name.
activationErrorsNon-structural errors that prevent this automation version from activating. Results describe current readiness; activation validates again.
validationErrorsRESOURCE_NOT_FOUNDCREATED_ATstoreCreditAccountsstoreCreditAccountscodescodescodescodesPORTFOLIO_TYPEUNSUPPORTED_TYPETOO_MANY_PAGESINVALID_PNG_FORMATCREATED_ATstoreCreditAccountslineItemsupdatedAtThe date and time when the purchase order itself was last updated. Adding, changing, or removing
line items doesn't change this value. Each line item's updatedAt reflects changes to that line item.
createdAtThe date and time the purchase order line item was created.
updatedAtThe date and time when the line item was last updated.
lineItemslineItemsCountcreatedAtThe date and time the shipment line item was created.
lineItemslineItemsCountcreatedAtThe date and time the market was created.
marketsCountCREATED_ATCREATED_ATCREATED_ATCREATED_ATCREATED_ATdomainsPaginatedproductVariantsCREATED_ATINVENTORY_COUNTS_CANCELEDINVENTORY_COUNTS_COMPLETEDINVENTORY_COUNTS_CREATEDINVENTORY_COUNTS_LINE_ADDEDINVENTORY_COUNTS_LINE_REMOVEDINVENTORY_COUNTS_UPDATED