Update an existing series
Updates an existing series' name, slug, logo, cover image, and description. Validates that the parent brand exists and that the series belongs to the specified brand. Ensures the updated name/slug are unique.
/api/v1/{team_slug}/{app_slug}/brands/{brand_id}/series/{series_id}- API
- Management
- OpenAPI
- management-api
- Updated
- Apr 26, 2026
management-api:PUT:/api/v1/{team_slug}/{app_slug}/brands/{brand_id}/series/{series_id}
Updates an existing series' name, slug, logo, cover image, and description. Validates that the parent brand exists and that the series belongs to the specified brand. Ensures the updated name/slug are unique.
API ownership
- API family: Management API
- Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data.
- Do not use from: Browser-only storefront code or public clients.
- Guide route: /apis/management/latest
The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation.
Operation
- Method:
PUT - Path:
/api/v1/\{team_slug\}/\{app_slug\}/brands/\{brand_id\}/series/\{series_id\} - Summary: Update an existing series
- Description: Updates an existing series' name, slug, logo, cover image, and description. Validates that the parent brand exists and that the series belongs to the specified brand. Ensures the updated name/slug are unique.
- OpenAPI contract: management-api
- Operation ID: Not documented in the OpenAPI contract.
Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| app_slug | path | Yes | string | App slug |
| team_slug | path | Yes | string | Team slug |
| brand_id | path | Yes | string | Id of brand |
| series_id | path | Yes | string | Id of brand |
Request body
- Required: Yes
- Description: data on series
- Content: application/json (object)
Brand Series Request
| Property | Type | Required | Details |
|---|---|---|---|
cover_id | string | No | - |
description | string | No | - |
email | string | No | - |
logo_id | string | No | - |
name | string | Yes | - |
slug | string | Yes | - |
Generated example (synthetic):
{
"cover_id": "string",
"description": "string",
"email": "string",
"logo_id": "string",
"name": "string",
"slug": "string"
}Responses
| Status | Description | Content |
|---|---|---|
| 200 | Series updated successfully | application/json (object) |
| 400 | Invalid request (e.g. bad UUID, validation error) | application/json (object) |
| 401 | Unauthorized access | application/json (object) |
| 500 | Internal server error | application/json (object) |
200 - object
Series
| Property | Type | Required | Details |
|---|---|---|---|
data | object | No | - |
details | string[] | No | Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes |
success | boolean | No | - |
Series
| Property | Type | Required | Details |
|---|---|---|---|
brand | object | No | brand for which the series belong to |
cover | object | No | - |
created_at | string | No | - |
description | string | No | series description |
email | string | No | series email |
id | string | No | id of series |
logo | object | No | - |
name | string | No | name of series |
slug | string | No | slug of series |
translations | object | No | - |
updated_at | string | No | - |
Brand Parent
| Property | Type | Required | Details |
|---|---|---|---|
id | string | No | id of brand |
name | string | No | name of brand |
slug | string | No | slug of brand |
Image
| Property | Type | Required | Details |
|---|---|---|---|
alt | string | No | - |
app_id | string | No | - |
attributes | object[] | No | - |
blurhash | string | No | - |
copyright | string | No | - |
custom | object | No | - |
folder_id | string | No | - |
id | string | No | - |
parent_id | string | No | - |
public | boolean | No | - |
source_app_id | string | No | - |
source_id | string | No | - |
status | string | No | - |
title | string | No | - |
translations | object | No | - |
url | string | No | - |
Image Translation
| Property | Type | Required | Details |
|---|---|---|---|
alt | object[] | No | - |
copyright | object[] | No | - |
title | object[] | No | - |
Brand Translations
| Property | Type | Required | Details |
|---|---|---|---|
description | object[] | No | - |
{
"data": {
"brand": {
"id": "string",
"name": "string",
"slug": "string"
},
"cover": {
"alt": "string",
"app_id": "string",
"attributes": [
{
"created_at": null,
"description": null,
"filterable": null,
"id": null,
"key": null,
"name": null,
"template_key": null,
"template_name": null,
"translatable": null,
"translations": null,
"updated_at": null,
"values": null
}
],
"blurhash": "string",
"copyright": "string",
"custom": {},
"folder_id": "string",
"id": "string",
"parent_id": "string",
"public": false,
"source_app_id": "string",
"source_id": "string",
"status": "string",
"title": "string",
"translations": {
"alt": [],
"copyright": [],
"title": []
},
"url": "string"
},
"created_at": "string",
"description": "string",
"email": "string",
"id": "string",
"logo": {
"alt": "string",
"app_id": "string",
"attributes": [
{
"created_at": null,
"description": null,
"filterable": null,
"id": null,
"key": null,
"name": null,
"template_key": null,
"template_name": null,
"translatable": null,
"translations": null,
"updated_at": null,
"values": null
}
],
"blurhash": "string",
"copyright": "string",
"custom": {},
"folder_id": "string",
"id": "string",
"parent_id": "string",
"public": false,
"source_app_id": "string",
"source_id": "string",
"status": "string",
"title": "string",
"translations": {
"alt": [],
"copyright": [],
"title": []
},
"url": "string"
},
"name": "string",
"slug": "string",
"translations": {
"description": [
{
"id": null,
"locale": null,
"value": null
}
]
},
"updated_at": "string"
},
"details": [
"string"
],
"success": false
}400 - object
Error Message
| Property | Type | Required | Details |
|---|---|---|---|
details | string[] | No | - |
message | string | No | - |
success | boolean | No | - |
Generated example (synthetic):
{
"details": [
"string"
],
"message": "string",
"success": false
}401 - object
Error Message
| Property | Type | Required | Details |
|---|---|---|---|
details | string[] | No | - |
message | string | No | - |
success | boolean | No | - |
Generated example (synthetic):
{
"details": [
"string"
],
"message": "string",
"success": false
}500 - object
Error Message
| Property | Type | Required | Details |
|---|---|---|---|
details | string[] | No | - |
message | string | No | - |
success | boolean | No | - |
Generated example (synthetic):
{
"details": [
"string"
],
"message": "string",
"success": false
}Contract identity
Use these fields to confirm you are implementing the intended endpoint contract.
- API family: Management API
- Method:
PUT - Path:
/api/v1/\{team_slug\}/\{app_slug\}/brands/\{brand_id\}/series/\{series_id\} - Operation ID: Not documented in the OpenAPI contract.
- OpenAPI tag: Brands
- OpenAPI summary: Update an existing series