Rename a design
Sample request
curl -X PUT "https://api.abyssale.com/designs/$DESIGN_ID/name" \
-H "x-api-key: $ABYSSALE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Summer sale"
}'Example request body
{
"name": "Summer sale"
}Example 200 response
{
"id": "64238d01-d402-474b-8c2d-fbc957e9d290",
"name": "Summer sale",
"version": "v2026-10-20"
}Example 400 error response
{
"id": "missing_required",
"message": "name: Missing data for required field.",
"errors": [
{
"path": "name",
"code": "missing_required",
"message": "Missing data for required field."
}
]
}Change the name of one design. The name is trimmed, then must be 1 to 100 characters. Sending the name the design already has succeeds and changes nothing.
Behaviour, limits and caveats
Design names need not be unique: two designs, in the same project or not, can share one.
Any design that GET /designs lists can be renamed. Anything else answers 404 template_not_found (see DELETE /designs/{designId}).
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.
Request body
name string required
The new name. Leading and trailing spaces are removed before the length is checked, so a name of spaces only is refused. Length 1–100 characters.
Response 200
The design was renamed. name is the name as stored, trimmed.
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 |
|---|---|
400 | name is missing (missing_required), or not 1 to 100 characters once trimmed (out_of_range). |
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. |
