Brands and Product images
Create and maintain workspace Brands and their directly owned Product images for generation.
list_brands
READREST: GET /api/v2/brands
List Brands and their website enrichment and image-harvest status. Use list_product_images for their directly owned Product images.
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"limit": {
"description": "Per page (max 40; lower than other tools because these rows carry long descriptions). Each tool documents its own default.",
"type": "integer",
"minimum": 1,
"maximum": 40
},
"workspace": {
"description": "Target workspace: a slug, id, or exact name from list_workspaces. Omit to use this connection's default workspace. Must be inside the credential's grant and your current access; overrides the connection-level X-Workspace-Id header.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"workspace": {
"id": "workspace_1",
"name": "Acme",
"slug": "acme"
},
"brands": [
{
"id": "507f1f77bcf86cd799439011",
"name": "Acme",
"description": "Everyday essentials",
"enrichmentStatus": "ready",
"imageCount": 2
}
],
"total": 1,
"page": 1,
"pages": 1
}
}get_brand
READREST: GET /api/v2/brands/:brandId
Read full Brand details, website enrichment status, and image-harvest status.
{
"type": "object",
"properties": {
"brandId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
},
"workspace": {
"description": "Target workspace: a slug, id, or exact name from list_workspaces. Omit to use this connection's default workspace. Must be inside the credential's grant and your current access; overrides the connection-level X-Workspace-Id header.",
"type": "string"
}
},
"required": [
"brandId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"brand": {
"id": "507f1f77bcf86cd799439011",
"name": "Acme",
"description": "Everyday essentials",
"enrichmentStatus": "ready",
"imageHarvestStatus": "ready"
}
}
}create_brand
WRITEREST: POST /api/v2/brands
Create a Brand from a website URL or a name and description. Website enrichment and Product image harvesting run asynchronously; poll get_brand for status.
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 3000
},
"url": {
"type": "string",
"maxLength": 2000
},
"workspace": {
"type": "string",
"minLength": 1,
"description": "Required write target: a workspace slug or id from list_workspaces. Writes never inherit the connection default."
}
},
"required": [
"workspace"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"brand": {
"id": "507f1f77bcf86cd799439011",
"name": "Acme",
"enrichmentStatus": "pending",
"imageHarvestStatus": "pending"
},
"nextSteps": "Use get_brand to check website enrichment and image-harvest status."
}
}update_brand
WRITEREST: PATCH /api/v2/brands/:brandId
Update Brand details. An empty URL clears it. Updating the URL does not automatically re-run website enrichment or image harvesting.
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 3000
},
"url": {
"type": "string",
"maxLength": 2000
},
"workspace": {
"type": "string",
"minLength": 1,
"description": "Required write target: a workspace slug or id from list_workspaces. Writes never inherit the connection default."
},
"brandId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
}
},
"required": [
"workspace",
"brandId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"brand": {
"id": "507f1f77bcf86cd799439011",
"name": "Acme",
"description": "Everyday essentials"
}
}
}list_product_images
READREST: GET /api/v2/brands/:brandId/images
List directly owned Product images for a Brand, including editable names, naming status, and capacity. Images with deletionPending are unavailable for generation.
{
"type": "object",
"properties": {
"brandId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
},
"workspace": {
"description": "Target workspace: a slug, id, or exact name from list_workspaces. Omit to use this connection's default workspace. Must be inside the credential's grant and your current access; overrides the connection-level X-Workspace-Id header.",
"type": "string"
}
},
"required": [
"brandId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"brandId": "507f1f77bcf86cd799439011",
"images": [
{
"id": "507f1f77bcf86cd799439012",
"brandId": "507f1f77bcf86cd799439011",
"name": "Bottle front",
"url": "https://media.example.com/bottle.png",
"namingStatus": "ready"
}
],
"total": 1,
"limit": 50
}
}request_product_image_upload
WRITEREST: POST /api/v2/brands/:brandId/images/upload-url
Request a Brand-bound upload URL for one JPEG, PNG, or WebP image of at most 10 MB. Upload its bytes then call add_product_images.
{
"type": "object",
"properties": {
"brandId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
},
"contentType": {
"type": "string",
"enum": [
"image/jpeg",
"image/png",
"image/webp"
]
},
"workspace": {
"type": "string",
"minLength": 1,
"description": "Required write target: a workspace slug or id from list_workspaces. Writes never inherit the connection default."
}
},
"required": [
"brandId",
"contentType",
"workspace"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"brandId": "507f1f77bcf86cd799439011",
"uploadKey": "users/user_1/brand-image-uploads/workspace_1/507f1f77bcf86cd799439011/93ad2002-d933-4d27-877c-1e8ebc000000.png",
"uploadUrl": "https://uploads.example.com/presigned",
"contentType": "image/png",
"expiresInSeconds": 900,
"maxBytes": 10485760
}
}add_product_images
WRITEREST: POST /api/v2/brands/:brandId/images
Add up to 20 uploaded Product images directly to a Brand. Accepts only upload keys from request_product_image_upload for this user, workspace, and Brand. Repeat the identical ordered input on retries; naming runs in the background without user credit charges.
{
"type": "object",
"properties": {
"brandId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
},
"images": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"uploadKey": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"description": "uploadKey returned by request_product_image_upload after uploading the file bytes."
},
"filename": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Original filename used as the initial editable image name."
}
},
"required": [
"uploadKey",
"filename"
],
"additionalProperties": false
}
},
"workspace": {
"type": "string",
"minLength": 1,
"description": "Required write target: a workspace slug or id from list_workspaces. Writes never inherit the connection default."
}
},
"required": [
"brandId",
"images",
"workspace"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"brandId": "507f1f77bcf86cd799439011",
"uploaded": 1,
"images": [
{
"id": "507f1f77bcf86cd799439012",
"name": "bottle",
"namingStatus": "pending"
}
]
}
}rename_product_image
WRITEREST: PATCH /api/v2/brands/:brandId/images/:imageId
Change the editable name of a directly owned Product image.
{
"type": "object",
"properties": {
"brandId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
},
"imageId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"workspace": {
"type": "string",
"minLength": 1,
"description": "Required write target: a workspace slug or id from list_workspaces. Writes never inherit the connection default."
}
},
"required": [
"brandId",
"imageId",
"name",
"workspace"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"image": {
"id": "507f1f77bcf86cd799439012",
"name": "Bottle front",
"namingStatus": "manual"
}
}
}remove_product_image
DESTRUCTIVEREST: DELETE /api/v2/brands/:brandId/images/:imageId
Permanently remove a Product image from its Brand, including exclusively owned stored media. Only call when the user requests removal.
{
"type": "object",
"properties": {
"brandId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
},
"imageId": {
"type": "string",
"pattern": "^[a-f\\d]{24}$"
},
"workspace": {
"type": "string",
"minLength": 1,
"description": "Required write target: a workspace slug or id from list_workspaces. Writes never inherit the connection default."
}
},
"required": [
"brandId",
"imageId",
"workspace"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"success": true,
"data": {
"brandId": "507f1f77bcf86cd799439011",
"imageId": "507f1f77bcf86cd799439012",
"removed": true
}
}