myShopify Domain Finder
free · no signup · nothing storedShopify collaborator toolkit
.myshopify.com domain in one paste.Shopify Partners now requires the permanent store domain before it will send a collaborator request. Drop in the live URL and get it back, ready to copy.
Anything public works. The finder strips protocols, paths and tracking params down to the hostname, then tries the www and non-www variants together.
Every Shopify storefront serves a small public file at /meta.json that contains the shop's permanent handle. Several requests fire in parallel and the fastest answer wins, so the result usually lands in under a second.
Headless and heavily customised storefronts sometimes hide that file. The finder then scans the rendered HTML for the Shopify.shop variable, the same string you would hunt for manually with Ctrl+F.
Alongside the handle you see the shop name, country and currency pulled from the same response. That is your confirmation you are looking at the right storefront and not an international clone of it.
The change nobody announced
If you build on Shopify for clients, you have felt this. The collaborator request flow used to accept whatever domain the client gave you. Now it wants an identifier almost nobody has to hand, and the request form will not budge until you produce it.
How it used to work
You typed the domain the client gave you, added the collaborator code, ticked the permissions you needed and hit send. The client approved it from their inbox. Total time: under a minute, no back and forth.
clientstore.com → request sent
How it works now
The form wants handle.myshopify.com, assigned at signup. It never changes, customers never see it, and most merchants forgot it the day they connected a custom domain.
clientstore.com → ??? → request sent
Once you have the permanent domain, the rest is mechanical. This is the exact path through the Partner Dashboard, plus the three things that trip people up.
Merchants can switch on a collaborator request code in Settings → Users. If they have, your request is rejected without it, and the error does not tell you that clearly. Ask for the code in the same message where you ask for anything else, so you are not chasing twice.
Asking for full admin on a theme tweak makes cautious clients stall. Tick only what the job needs: Themes for front-end work, Apps for installs, Products for catalog jobs, Orders only when you genuinely need order data.
Collaborator accounts do not consume one of the store's paid staff seats and can be revoked by the merchant at any time. That is the pitch to give a nervous client: it costs them nothing and they stay in control.
The same reason this tool works, Shopify serving small public files that its own themes rely on, gives you a handful of other fast checks. All of these are public by design, no login or API key, and all of them are read-only.
| Append to any store | What it returns | Use it for |
|---|---|---|
/meta.json |
Permanent domain, shop name, city, country, currency, product and collection counts | Confirming identity before you send a request |
/products.json |
Catalog with variants, prices and images, paginated | Scoping a migration or a bulk edit job |
/collections.json |
Published collections with handles and descriptions | Planning navigation and category work |
/cart.js |
Current cart state as JSON | Debugging cart and checkout behaviour |
/?_fd=0 |
The storefront without domain forwarding | Loading a store by its myshopify domain directly |
Quoting a job gets much easier when you can check product count and catalog structure before the first call. None of this requires access you have not been given.
Open the storefront, press Ctrl+U (Cmd+U on Mac), then Ctrl+F and search for myshopify. You are looking for Shopify.shop = "handle.myshopify.com". Reliable, but slow, and it fails on stores that defer their scripts.
Append /meta.json to any Shopify domain, for example https://clientstore.com/meta.json. The myshopify_domain field is what you want. It also returns shop name, country and currency, which is a fast sanity check that you are looking at the right store.
In their admin: Settings → Domains. The .myshopify.com domain is listed alongside the custom domains as the permanent one. It is also visible in their browser address bar as admin.shopify.com/store/handle, which is usually the fastest thing to ask for.
Transactional emails from the store frequently carry the .myshopify.com domain in link targets or in the raw headers. Useful when the storefront itself is password protected before launch.
It is the permanent internal address Shopify assigns when a store is created, in the form handle.myshopify.com. Customers never see it once a custom domain is connected, but Shopify uses it as the store's true identifier for apps, admin access and collaborator requests.
Custom domains can be added, removed, redirected or shared across international storefronts, so they are an unstable identifier. The .myshopify.com handle maps to exactly one store, forever. Requiring it removes any chance of a collaborator request landing on the wrong shop.
Shopify allows it to be changed exactly once, and most merchants never do. Treat it as permanent, but if a request bounces on a store you accessed months ago, re-run the lookup before assuming the code is wrong.
A 4-digit code the merchant can enable to control who may request access. When it is on, your request fails without it. The merchant finds it in Settings → Users, under collaborator access. If a request bounces and you are sure the domain is right, this is usually why.
A collaborator account is designed for agencies and freelancers: it does not use up one of the store's paid staff seats, it is granted per-permission, and the merchant can revoke it instantly. A staff account occupies a seat and is meant for the merchant's own team. For client work, always ask for collaborator access.
Three usual causes: the store is password protected before launch, it is a headless build that does not expose the standard endpoints, or the site is not on Shopify at all. Open yourclient.com/meta.json in a fresh tab as a direct check, and if that returns a 404, fall back to the page-source method above.
Sometimes. The password page still serves store metadata on many themes. If it does not, the storefront is fully locked and only the merchant can hand you the domain.
Yes, and no. Every endpoint used here is published by Shopify for public consumption, the same data any theme or app reads. Nothing grants access to a store: you still need the merchant to approve your request. There is no account and no logging, and your recent lookups are saved in your own browser only.
Free tool · no rate limits · no signup
Built for Shopify agencies and freelancers