---
title: >-
  Return policy profiles are now available in the GraphQL Admin API - Shopify
  developer changelog
description: >-
  Shopify’s developer changelog documents all changes to Shopify’s platform.
  Find the latest news and learn about new platform opportunities.
source_url:
  html: >-
    https://shopify.dev/changelog/posts/return-policy-profiles-are-now-available-in-the-graphql-admin-api
  md: >-
    https://shopify.dev/changelog/posts/return-policy-profiles-are-now-available-in-the-graphql-admin-api.md
metadata:
  effectiveApiVersion: 2026-10
  affectedApi:
    - displayName: Admin GraphQL API
      handle: admin-graphql
  primaryTag:
    displayName: API
    handle: api
  secondaryTag:
    displayName: New
    handle: new
  indicatesActionRequired: false
  createdAt: '2026-09-14T10:40:14-04:00'
  postedAt: '2026-10-01T01:00:00-04:00'
  updatedAt: '2026-10-05T15:22:47-04:00'
  effectiveAt: '2026-10-01T01:00:00-04:00'
---

October 1, 2026

# Return policy profiles are now available in the GraphQL Admin API

DateOctober 1, 2026

Version[2026-10](https://shopify.dev/changelog?api_version=2026-10)

FlagsNew

SurfacesAPI

Affected APIs[Admin GraphQL API](https://shopify.dev/changelog?api_type=admin-graphql)

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:

* [`returnPolicyProfile`](https://shopify.dev/docs/api/admin-graphql/2026-10/queries/returnPolicyProfile): Returns a single profile by ID.
* [`returnPolicyProfiles`](https://shopify.dev/docs/api/admin-graphql/2026-10/queries/returnPolicyProfiles): Returns a store's profiles. Use the `default` argument to filter by default status.

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`](https://shopify.dev/docs/api/admin-graphql/2026-10/mutations/marketCreate) and [`marketUpdate`](https://shopify.dev/docs/api/admin-graphql/2026-10/mutations/marketUpdate) references for the input fields.

### Access Scopes

Reading profiles, including the `returnPolicyProfile` field on `Market`, requires the `read_legal_policies` [access scope](https://shopify.dev/docs/apps/build/authentication-authorization/manage-access-scopes). 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`](https://shopify.dev/docs/api/admin-graphql/2026-10/objects/Shop#field-Shop.fields.shopPolicies), move it to the `returnPolicyProfiles` query. You must use return policy profiles to express different return rules for each market.

### Learn more

* [`ReturnPolicyProfile` object reference](https://shopify.dev/docs/api/admin-graphql/2026-10/objects/ReturnPolicyProfile)
* [Manage return rules in the Shopify admin](https://help.shopify.com/en/manual/fulfillment/managing-orders/returns/return-rules)
