Delete a design
Sample request
curl -X DELETE "https://api.abyssale.com/designs/$DESIGN_ID" \
-H "x-api-key: $ABYSSALE_API_KEY"Example 200 response
{
"id": "64238d01-d402-474b-8c2d-fbc957e9d290",
"name": "Summer sale",
"version": "v2026-10-20"
}Example 401 error response
{
"message": "Unauthorized: missing or invalid API key.",
"id": "unauthorized"
}Delete one design from your workspace. Once deleted, it no longer appears in GET /designs, and every endpoint that takes its id — reads, generation, rename, move — answers 404 template_not_found. Files already generated from it are not affected.
Behaviour, limits and caveats
There is no restore, through the API or in the app.
Any design that GET /designs lists can be deleted. Anything else answers 404 template_not_found, the same as an id that never existed: a design that is already deleted, one in a deleted project, a workspace template, or another workspace's design.
Path parameters
designId string (uuid) required
Unique identifier (UUID) of the design. A value that is not a UUID does not match the route and answers 404 with id: endpoint_not_found.
Response 200
The design was deleted. The body names it.
id string (uuid) always
The design's id.
name string always
The design's name.
version string
The API version that produced this response, named by release date (vYYYY-MM-DD). Pattern ^v\d{4}-\d{2}-\d{2}$.
More about version
The API version that produced this response, named by release date (vYYYY-MM-DD). Stamped as a top-level field on JSON object bodies, success and error alike, so a client can always tell which contract answered. There is no version-selection parameter — a single version is maintained at a time.
Two kinds of body are not stamped. Array bodies (the listings) carry no envelope. And a body that already has a version key of its own is left alone — which in practice means Banner, whose version is the generated file's integer counter. So GET /banners/{bannerId} and the synchronous generate are the two responses that do not tell you which contract answered.
The value changes when a new version is released. Match the vYYYY-MM-DD shape rather than pinning today's literal, or your client breaks on the next release.
Errors
Every failure uses the shared error envelope — {id, message, errors?}. Branch on id, never on message. See Errors.
| Status | When |
|---|---|
401 | Unauthorized — missing or invalid API key. |
404 | No design that GET /designs lists has this id (template_not_found): it never existed, is already deleted, is in a deleted project, is a workspace template, or belongs to another workspace. |
429 | Too Many Requests. |
500 | Internal Server Error — an unexpected error occurred on our side. |
