Skip to main content

Get Storefront Blocks

Retrieve the draft widgets of a storefront (Creator page), in display order.

The list is the complete layout: there is no sort, query, type, or is_hidden filter. Hidden widgets stay so they can be unhidden later. Default per_page is 100, so a typical page fits in one response.

An existing storefront with no widgets returns 200 and "items": []. A missing storefront returns 404. This nested list does not include preview_url — see Draft preview.

The item shape matches Get Storefront with include=blocks.

Request​

GET /storefronts/{id}/blocks

Path Parameters​

ParameterTypeRequiredDescription
idstringYesStorefront UUID

Query Parameters​

ParameterTypeRequiredDefaultDescription
pageintegerNo1Page number for pagination. Out-of-range values are clamped to a valid page.
per_pageintegerNo100Items per page (min: 1, max: 100).

There are no other query parameters. A non-integer or out-of-range per_page returns a 400 (see Bad Request).

Widgets are returned in order ascending (starting at 1).

Every response includes the total in pagination.total.

Example Request​

curl -X GET "https://cart.easy.tools/api/v1/storefronts/b10f5980-d653-4494-ad1c-6a9d68c96d19/blocks" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Response​

Success Response (200)​

Returns a paginated list of draft widgets.

{
"items": [
{
"id": "566cf11d-e6e2-4485-a828-e1b3d7da10a5",
"type": "product",
"layout": "6x3",
"order": 1,
"is_hidden": false,
"is_hidden_on_mobile": false,
"config": {
"use_block_padding": true,
"use_block_surface": true,
"is_block_highlighted": true,
"product_id": "3288e647-aab0-4289-957f-dac92e9b3ffe",
"ownership_status": "hide_owned",
"cta_label": { "value": "Get the newest", "is_hidden": false },
"owned_cta_label": "Open"
}
},
{
"id": "fa9116f5-ecea-4d31-96c1-dd421be48d4d",
"type": "space",
"layout": "space-sm",
"order": 2,
"is_hidden": false,
"is_hidden_on_mobile": false,
"config": {
"use_block_padding": false,
"use_block_surface": false,
"is_block_highlighted": false
}
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"per_page": 100,
"total": 2
}
}

Product references in config (product_id, and collection items[].product_id) are product UUIDs. A product that no longer exists is returned as null.

Response Fields​

Each item is a Block object.

Pagination Object​

FieldTypeDescription
current_pageintegerCurrent page number.
total_pagesintegerTotal number of pages.
per_pageintegerEffective page size (echoes the per_page request parameter).
totalintegerTotal number of widgets on this storefront, including hidden ones.

Error Responses​

Bad Request (400)​

Returned when {id} is not a UUID, or when per_page is out of range.

{
"message": "Invalid storefront ID"
}
{
"message": "Invalid value for 'per_page': '0'"
}

Not Found Error (404)​

Returned when the storefront UUID does not exist, belongs to another store, or points at a deleted storefront. An empty page is not this error — it is 200 with "items": [].

{
"message": "Storefront not found"
}

Unauthorized (401)​

{
"message": "Unauthenticated."
}

Forbidden (403)​

Returned when your API key has not been granted access to the requested store.

{
"message": "You do not have API access to the requested store."
}

Too Many Requests (429)​

Returned when you exceed the rate limit. The Retry-After response header gives the number of seconds to wait.

{
"message": "Too many requests. Please retry after 60 seconds."
}