Unpublish Storefront
Take the live visitor page of a storefront (Creator page) down.
The path is nested under the storefront UUID. There is no request body. The saved draft is left as it was. This call does not require an active Easytools plan — a live page can always be taken down. See Active plan required.
Unpublishing a storefront that is already a draft is 200 and still returns
a fresh preview_url.
Request
POST /storefronts/{id}/unpublish
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Storefront UUID |
Example Request
curl -X POST "https://cart.easy.tools/api/v1/storefronts/b10f5980-d653-4494-ad1c-6a9d68c96d19/unpublish" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Response
Success Response (200)
Returns the same lean identity as a Get Storefronts
list item, plus a required preview_url. status is draft, public_url
is null, and published_at is null.
{
"id": "b10f5980-d653-4494-ad1c-6a9d68c96d19",
"slug": "my-studio",
"name": "My Studio",
"status": "draft",
"public_url": null,
"preview_url": "https://cart.easy.tools/storefront-preview/b10f5980-d653-4494-ad1c-6a9d68c96d19?expires=1788355193&signature=e491397e0a53d7fef406f950b1ae8def3f435f9acbfbf2ec26d2660259826440",
"domains": [
{
"domain": "mysite.com",
"status": "configured",
"include_www": true
}
],
"created_at": "2026-03-12T10:00:00+00:00",
"updated_at": "2026-09-02T12:19:53+00:00",
"published_at": null
}
preview_url is a fresh signature on every call, including when the
storefront was already a draft. The expires / signature query in this
example will already be stale; the shape is what matters. See
Draft preview.
Response Fields
Same lean projection as a Get Storefronts list item, plus:
| Field | Type | Nullable | Description |
|---|---|---|---|
preview_url | string | No | Temporary signed URL of the saved draft. Expires after about one hour. See Draft preview. |
Error Responses
Bad Request (400)
Returned when {id} is not a UUID.
{
"message": "Invalid storefront ID"
}
Not Found Error (404)
Returned when the UUID does not exist, belongs to another store, or points at a deleted storefront.
{
"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."
}