The shop's web address and where a connected domain is at
- Credentials
- OAuth access token
- Scopes
settings:write- Role
- Owners and admins only. Staff get
403 forbidden.
The ShopEazy address, the merchant's own domain if one is connected, and what to create at their registrar until it is live. With name, also answers whether that ShopEazy address is free (same policy and availability as checkWebAddress, and the closest free one when it is not), so a change can be shown before it is made.
Access: OAuth scope settings:write; owner/admin only; not write-gated.
merchantOAuth settings:writeAuthorizationBearer <token>OAuth 2.1 (authorization code + PKCE S256, public clients, dynamic registration) for connected AI apps. Effective power is scopes granted AND the person's role today AND the plan. orders:refund, billing:write and team:write are opt-in on the consent screen. Write implies read for marketing:read and messages:read, so a grant holding marketing:write passes a marketing:read check, and messages:send passes messages:read.
Scope: settings:write
storeId*stringA store the person can reach. Any other id answers 404, never 403.
name?stringA ShopEazy address to check, the part before .shopeazy.co.
1 <= length <= 63OK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/web-address' \ -H 'Authorization: Bearer <access_token>'{ "data": { "address": "jabus-plant-shop.shopeazy.co", "subdomain": "jabus-plant-shop", "customDomain": null, "domainState": null, "records": [], "liveUrl": "https://jabus-plant-shop.shopeazy.co" }}Design the home page with AI, into the draft POST
One model call reads the shop (logo, listings and their photos, categories, live codes, the merchant's own words) and composes a Look, colours, hero words and 6 to 10 sections. It lands in the design DRAFT only: show `previewUrl`, then `publishStorefront`. `heroPhoto` also makes a wide hero photo, for more credits. Credits are checked for the whole job first and charged only once each part worked (403 `insufficient_credits`). Storage: refused with 403 `plan_limit` when it would take the Library over the plan's storage. What is already stored stays. Access: OAuth scope `ai:spend`; owner/admin only; write-gated by the subscription.
Change the shop's web address and/or connect its own domain PUT
Moves the ShopEazy address (`address`) and/or connects the merchant's own domain (`customDomain`; an empty one disconnects it). Only what is sent changes. A taken address is refused with the closest free one (422 `validation_error`); a custom domain needs the add-on, included on Growth (403 `plan_limit`). Connecting a domain attaches it (and its www/apex twin) to the storefronts project and to the sign-in domains, then checks its DNS: `domainState` says whether it is live and `records` what to create at the registrar until it is. Buying a domain is done elsewhere. Access: OAuth scope `settings:write`; owner/admin only; write-gated by the subscription.