Skip to main content

Return policy profiles are now available in the GraphQL Admin API

API version 2026-10 adds return policy profiles to the GraphQL Admin API. A return policy profile is a set of return rules that you associate with markets, and it supersedes a store’s return policy text. Your app can now query each market's return rules as structured data, such as the length of the return window.

What's added

Two query fields:

You can also assign a profile to a market when you create or update the market, or remove the assignment when you update it. See the marketCreate and marketUpdate references for the input fields.

Access Scopes

Reading profiles, including the returnPolicyProfile field on Market, requires the read_legal_policies access scope. Assigning or removing a profile on a market is a market edit and requires write_markets. If your app does both, request both scopes.

How Profiles Work

A ReturnPolicyProfile is the unit that you configure return rules on and that markets bind to. One profile holds one set of rules, and any market can reference it. Editing a profile changes the return terms for every market that references that profile.

Each store has one unnamed default profile. It applies to every market that doesn't have a named profile assigned. You can add named profiles to carve out markets that need different terms.

On stores that use Managed Markets, Shopify provisions a profile for the store's EU markets, where regulations set a minimum standard for returns. That profile is locked so its terms can't fall below the minimum. Your app can read it, but can't assign it to other markets.

Behavior to account for

Market.returnPolicyProfile returns the profile that's directly associated with that market, and is null when none is. It doesn't resolve the market hierarchy. A null result means no profile is directly assigned to that market.

The returnRules and editRules fields are nullable. A null value means those rules are turned off rather than missing. Under a profile whose returnRules is null, customers can return items without restriction.

The updatedAt field is aggregated over the profile and its rules instead of being written directly on the profile row, so it advances when a part of the policy changes.

When you update a market, assigning a profile and removing one in the same request returns a user error. Assigning the Shopify-provisioned Managed Markets profile to a market also returns a user error.

Not included

There are no mutations for return policy profiles in the GraphQL Admin API. Creating, updating, and deleting profiles happens in the Shopify admin, and profiles are read‑only.

What to do

You don't need to change your app. Existing queries that read policy text keep working.

If your app reads return terms from REFUND_POLICY in Shop.shopPolicies, move it to the returnPolicyProfiles query. You must use return policy profiles to express different return rules for each market.

Learn more

Was this page helpful?