ShopEazydevelopers
API referenceMerchant API BetaStorefront

The templates a design can start from

Beta
Credentials
  • OAuth access token
Scopes
store:read
GET
/v1/merchant/stores/{storeId}/storefront/templates

Each template is a whole starting design for a kind of business: a look, hero words and home sections around the shop's own listings. Send an id as template to applyStorefrontTemplate. categories are the store categories that start on it; a store can use any.

Access: OAuth scope store:read; not write-gated.

Paged: { items, nextCursor }, limit (default 50, at most 100) and an opaque cursor.

Authorization

merchantOAuth store:read
headerAuthorizationBearer <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: store:read

Path Parameters

storeId*string

A store the person can reach. Any other id answers 404, never 403.

Query Parameters

cursor?string

The nextCursor of the previous page, unchanged. A cursor that is not one we gave you is 400 bad_request.

limit?integer

Page size: default 50, at most 100 (more is 100; a missing or unusable value is 50).

Range1 <= value <= 100
Default50

Response Body

OK

application/json
  1. response
data*
Example Request
curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/storefront/templates' \  -H 'Authorization: Bearer <access_token>'
Example Response
{  "data": {    "items": [      {        "id": "bakery",        "name": "Bakery & café",        "look": {          "id": "warm",          "name": "Warm"        },        "categories": [          "bakery_confectionery",          "coffee_beverages",          "restaurant_takeaway"        ],        "hero": {          "headline": "Baked fresh, every morning",          "subcopy": "Order today, collect it warm.",          "ctaLabel": "Order now"        }      },      {        "id": "fashion",        "name": "Fashion boutique",        "look": {          "id": "boutique",          "name": "Boutique"        },        "categories": [          "fashion_apparel",          "shoes_accessories",          "jewellery"        ],        "hero": {          "headline": "New season, new favourites",          "subcopy": "Pieces you’ll wear on repeat.",          "ctaLabel": "Shop the edit"        }      },      {        "id": "salon",        "name": "Salon & spa",        "look": {          "id": "natural",          "name": "Natural"        },        "categories": [          "beauty_services",          "wellness_fitness",          "health_beauty"        ],        "hero": {          "headline": "Time for you",          "subcopy": "Book online in a minute.",          "ctaLabel": "Book now"        }      }    ],    "nextCursor": null  }}