Need Exemption for themeCreate GraphQL API Access

I am facing an issue while using the themeCreate GraphQL mutation in my Shopify app. Despite having the write_themes scope included in my app’s permissions, I keep encountering the following error:

GraphqlQueryError: Access denied for themeCreate field. Required access: The user needs write_themes and an exemption from Shopify to modify themes.
If you think that your app is eligible for an exemption and should have access to this API, then you can submit an exception request.

My app allows Shopify merchants to use high-quality theme sections, and programmatically creating themes is crucial for its functionality.

I have already:
:white_check_mark: Ensured the required write_themes scope is included.
:white_check_mark: Submitted the exemption request form.
:white_check_mark: Contacted Shopify Support twice but have not received a response yet.

Has anyone here successfully obtained an exemption for themeCreate? If so, could you please guide me on the process or share any tips on how to get approval? Any help would be greatly appreciated!

Thanks in advance!

Hi Ronak,

When did you make this request? Looking into what is the process for being eligible for using themeCreate.

Hi again Ronak,

Just to confirm, have you added write_themes to your toml and re-authenticated the app?

Hi @Liam-Shopify

Shopify has approved my exemption for themeCreate, so now I can use themeCreate without any issues. However, I want to create a theme with the role of ‘Demo’, but there is no option to define a role. How can I create a theme with the ‘Demo’ role?

The “Demo” role is reserved for when a theme is installed from the Shopify Theme Store, as a preview (ie: hasn’t been purchased yet). I don’t believe you can assign the “Demo” role to a theme via the API.

We can assign the “Demo” role using the REST API, so why wouldn’t it be possible through GraphQL? Is there a specific limitation or restriction in GraphQL that prevents this assignment? If there are any technical constraints, we’d appreciate further clarification.

Curious to know the usecase for being able to assign “demo” to a theme that’s not a theme store theme? I can’t speak to why it’s possible on REST, but I believe this should be restricted to theme store themes.

The ability to assign the “demo” role to a theme that is not a Theme Store theme can be useful for apps like mine, which provide theme sections. In my app, users can explore sections before purchasing them. When a user clicks the “Try” button, I create a new theme with the selected section and assign it the “demo” role. This ensures that users can preview the section within a real Shopify theme environment without being able to access or copy the section code. The “demo” role helps enforce licensing restrictions while still allowing users to experience the section’s functionality and appearance.