Skip to content

Products Endpoints

Product catalog, brands, and collections management.


Overview

Products

Method Endpoint Description
GET /products/ List products
POST /products/ Create product
GET /products/{id} Get product
PATCH /products/{id} Update product
DELETE /products/{id} Delete product

Brands

Method Endpoint Description
GET /brands/ List brands
POST /brands/ Create brand
GET /brands/{id} Get brand
PATCH /brands/{id} Update brand

Collections

Method Endpoint Description
GET /brand-collections/ List collections
POST /brand-collections/ Create collection

Seasons & Years

Method Endpoint Description
GET /seasons/ List seasons
GET /years/ List years

API Reference

Sartiq Backend Server - Products 0.1.0

products


POST /api/v1/products/search

Search Product Catalog

Description

Search the caller's readable Product catalog by text and/or image.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "query": null,
    "image": null,
    "facets": {
        "brands": [
            "string"
        ],
        "collections": [
            "string"
        ],
        "seasons": [
            "string"
        ],
        "years": [
            0
        ],
        "gender": null,
        "age_class": null,
        "product_type": null,
        "product_wear_id": null,
        "sleeve_type": [
            "string"
        ],
        "neckline": [
            "string"
        ],
        "closure_type": [
            "string"
        ],
        "fit_type": [
            "string"
        ],
        "length_type": [
            "string"
        ],
        "pattern": [
            "string"
        ],
        "colour": [
            "string"
        ],
        "color_name": [
            "string"
        ],
        "color_code": [
            "string"
        ]
    },
    "exclude_product_ids": [
        "7760db30-744a-4c4c-89b1-3310e04036d1"
    ],
    "limit": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "query": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 300
                },
                {
                    "type": "null"
                }
            ],
            "title": "Query"
        },
        "image": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductSearchImageInput"
                },
                {
                    "type": "null"
                }
            ]
        },
        "facets": {
            "$ref": "#/components/schemas/ProductSearchFacets"
        },
        "exclude_product_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "maxItems": 100,
            "title": "Exclude Product Ids"
        },
        "limit": {
            "type": "integer",
            "maximum": 24.0,
            "minimum": 1.0,
            "title": "Limit",
            "description": "Maximum results returned for one search",
            "default": 5
        }
    },
    "additionalProperties": false,
    "type": "object",
    "title": "ProductSearchRequest",
    "description": "A bounded text, image, or fused Product catalog search."
}

Responses

{
    "results": [
        {
            "rank": 0,
            "product_id": "3d1f7218-984d-4cb2-a1c3-d46f45ccead2",
            "name": "string",
            "sku": null,
            "master_item_code": null,
            "barcode": null,
            "brand": null,
            "colour": null
        }
    ],
    "has_more": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "results": {
            "items": {
                "$ref": "#/components/schemas/ProductSearchHitPublic"
            },
            "type": "array",
            "maxItems": 24,
            "title": "Results"
        },
        "has_more": {
            "type": "boolean",
            "title": "Has More"
        }
    },
    "type": "object",
    "required": [
        "results",
        "has_more"
    ],
    "title": "ProductSearchPublic",
    "description": "One bounded Product catalog search page."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/products/

Create Product

Description

Create new product.

Args: sync_captioning: If True (default), waits for caption generation before returning. If False, caption is generated asynchronously in the background.

Supports both traditional image uploads (URL, base64) and presigned URLs. For presigned URLs, the image should have been previously uploaded using the /uploads endpoint.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
sync_captioning query boolean True No

Request body

{
    "cover_image": "https://example.com/image.jpg",
    "gender": "UNISEX",
    "materials": "100% Cotton",
    "name": "Black T-Shirt",
    "public": false
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 64
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductGender"
                },
                {
                    "type": "null"
                }
            ],
            "default": "UNISEX"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 50
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 3000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 5000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                }
            ],
            "title": "Cover Image",
            "description": "URL, base64 string, or MediaInput for cover image"
        },
        "back_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image",
            "description": "URL, base64 string, or MediaInput for back view image (optional)"
        },
        "reference_images": {
            "anyOf": [
                {
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "#/components/schemas/MediaInput"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images",
            "description": "List of reference image URLs, base64 strings, or MediaInputs"
        },
        "color_swatch": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Swatch",
            "description": "Color swatch image for style variants"
        },
        "data_images": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images",
            "description": "DEPRECATED: Use reference_images instead"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": false
        },
        "is_filler": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Is Filler",
            "description": "Mark as filler product. Auto-detected from SKU if not provided."
        },
        "incomplete": {
            "type": "boolean",
            "title": "Incomplete",
            "description": "Mark as incomplete, needs manual review",
            "default": false
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this product belongs to"
        }
    },
    "type": "object",
    "required": [
        "name",
        "cover_image"
    ],
    "title": "ProductCreate",
    "example": {
        "cover_image": "https://example.com/image.jpg",
        "gender": "UNISEX",
        "materials": "100% Cotton",
        "name": "Black T-Shirt",
        "public": false
    }
}

Responses

{
    "id": "0ed2e3c6-f750-48f2-a04c-a6cabb0405d5",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "sku": null,
    "name": "string",
    "brand": null,
    "master_item_code": null,
    "barcode": null,
    "product_family": null,
    "product_type": null,
    "product_type_id": null,
    "product_wear": null,
    "product_wear_id": null,
    "gender": "MALE",
    "age_class": null,
    "placement": null,
    "zone": null,
    "styling_slot": "top",
    "type": null,
    "category": null,
    "sleeve_type": null,
    "neckline": null,
    "closure_type": null,
    "fit_type": null,
    "length_type": null,
    "pattern": null,
    "materials": null,
    "colour": null,
    "color_name": null,
    "color_code": null,
    "style_group_id": null,
    "season": null,
    "year": null,
    "style_code": null,
    "in_store_date": null,
    "theme": null,
    "brand_collection": null,
    "ingest_job_id": null,
    "description": null,
    "back_description": null,
    "ecommerce_description": null,
    "brand_metadata": null,
    "cover_image_url": null,
    "back_image_url": null,
    "reference_images": [
        "string"
    ],
    "cover_image_media": null,
    "back_image_media": null,
    "reference_images_media": null,
    "color_swatch_media": null,
    "data_image_urls": [
        "string"
    ],
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "is_filler": true,
    "incomplete": true,
    "deleted_at": null,
    "owner_id": "2f3298f9-8451-4a24-88fd-c8f87ea0f8f8",
    "organization_id": null,
    "shot_status": null,
    "shot_status_production_request_id": null,
    "integration_name": null,
    "exports_completed": null,
    "exports_total": null,
    "shots": [
        null
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_family": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Family"
        },
        "product_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "$ref": "#/components/schemas/ProductGender"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "placement": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductPlacement"
                },
                {
                    "type": "null"
                }
            ]
        },
        "zone": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Zone"
        },
        "styling_slot": {
            "$ref": "#/components/schemas/StylingSlot",
            "default": "unknown"
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        },
        "style_group_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Group Id"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "ingest_job_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ingest Job Id"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "back_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image Url"
        },
        "reference_images": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Reference Images"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "back_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "reference_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images Media"
        },
        "color_swatch_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls",
            "default": []
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "is_filler": {
            "type": "boolean",
            "title": "Is Filler"
        },
        "incomplete": {
            "type": "boolean",
            "title": "Incomplete"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "shot_status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductShootingStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_status_production_request_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Status Production Request Id"
        },
        "integration_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Integration Name"
        },
        "exports_completed": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Completed"
        },
        "exports_total": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Total"
        },
        "shots": {
            "items": {},
            "type": "array",
            "title": "Shots",
            "default": []
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "gender",
        "cover_image_url",
        "reference_images",
        "public",
        "enabled",
        "archived",
        "demo",
        "is_filler",
        "incomplete",
        "owner_id"
    ],
    "title": "ProductPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/

Read Products

Description

Retrieve products. Optionally filter by archive status, enabled status, brand (case-insensitive), brand_collection (case-insensitive), season (case-insensitive), year, demo status, product state, gender, age_class, product_type, shot statuses, and search by name or SKU.

Garment-property filters (sleeve_type, neckline, closure_type, fit_type, length_type, pattern, colour, color_name, color_code) accept repeated/CSV values — OR within a param, AND across params — matched case-insensitively against the stored value.

When organization_id query param is provided, returns products belonging to that organization. Without organization_id, returns only personal products (not belonging to any organization).

Sorting: - sort_by: Field to sort by (name, season, year, gender, product_type, created_at, updated_at) - sort_order: Sort direction (asc, desc). Default: desc - Default: Sorts by created_at (most recent first) when sort_by is not specified

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
age_class query No
archived query No
brand query No
brand_collection query No Filter by brand collection(s)
closure_type query No Filter by closure type(s), case-insensitive exact match
color_code query No Filter by style color code(s), case-insensitive exact match
color_name query No Filter by style color name(s), case-insensitive exact match
colour query No Filter by product colour(s), case-insensitive exact match
demo query No
enabled query boolean True No
fit_type query No Filter by fit type(s), case-insensitive exact match
gender query No
incomplete query No
is_filler query No
is_public query No
length_type query No Filter by length type(s), case-insensitive exact match
limit query integer 100 No
neckline query No Filter by neckline(s), case-insensitive exact match
organization_id query No
pattern query No Filter by pattern/print(s), case-insensitive exact match
product_type query No
product_wear_id query No Filter by product wear ID
search query No
season query No
shooting_id query No Filter by shooting ID
shot_statuses query No
skip query integer 0 No
sleeve_type query No Filter by sleeve type(s), case-insensitive exact match
sort_by query No
sort_order query string desc No
year query No

Responses

{
    "id": "9d8c078e-2f2b-493e-ac00-f05f3ae2b758",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "id": "634c433f-f047-4c4d-a36b-8f905295f095",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "sku": null,
            "name": "string",
            "brand": null,
            "master_item_code": null,
            "barcode": null,
            "product_family": null,
            "product_type": null,
            "product_type_id": null,
            "product_wear": null,
            "product_wear_id": null,
            "gender": "MALE",
            "age_class": null,
            "placement": null,
            "zone": null,
            "styling_slot": "top",
            "type": null,
            "category": null,
            "sleeve_type": null,
            "neckline": null,
            "closure_type": null,
            "fit_type": null,
            "length_type": null,
            "pattern": null,
            "materials": null,
            "colour": null,
            "color_name": null,
            "color_code": null,
            "style_group_id": null,
            "season": null,
            "year": null,
            "style_code": null,
            "in_store_date": null,
            "theme": null,
            "brand_collection": null,
            "ingest_job_id": null,
            "description": null,
            "back_description": null,
            "ecommerce_description": null,
            "brand_metadata": null,
            "cover_image_url": null,
            "back_image_url": null,
            "reference_images": [
                "string"
            ],
            "cover_image_media": null,
            "back_image_media": null,
            "reference_images_media": null,
            "color_swatch_media": null,
            "data_image_urls": [
                "string"
            ],
            "public": true,
            "enabled": true,
            "archived": true,
            "demo": true,
            "is_filler": true,
            "incomplete": true,
            "deleted_at": null,
            "owner_id": "69ab2996-7838-4a5d-84a8-4e61f8598b70",
            "organization_id": null,
            "shot_status": null,
            "shot_status_production_request_id": null,
            "integration_name": null,
            "exports_completed": null,
            "exports_total": null,
            "shots": [
                null
            ]
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/ProductPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ProductsPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/count-incomplete

Count Incomplete Products

Description

Return the count of incomplete products for the current user/organization.

Lightweight endpoint that runs a single COUNT(*) query — no product rows loaded.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Responses

Schema of the response body
{
    "title": "Response Count Incomplete Products"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/products/summary

Summarize Products

Description

Aggregate counts over the filtered product set.

Filter contract mirrors GET /products/ minus pagination and sorting. Organization scope comes from the OrganizationDep query param only — the request body has no organization_id field.

Drives the Create Production Request form's picker/toggle visibility when the user is in Select-All / filter mode (SAR-1636).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "archived": null,
    "enabled": null,
    "is_public": null,
    "brand": null,
    "brand_collection": null,
    "season": null,
    "year": null,
    "demo": null,
    "is_filler": null,
    "search": null,
    "shot_statuses": null,
    "gender": null,
    "age_class": null,
    "product_type": null,
    "product_wear_id": null,
    "shooting_id": null,
    "incomplete": null,
    "sleeve_type": null,
    "neckline": null,
    "closure_type": null,
    "fit_type": null,
    "length_type": null,
    "pattern": null,
    "colour": null,
    "color_name": null,
    "color_code": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "archived": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Archived"
        },
        "enabled": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Enabled"
        },
        "is_public": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Is Public"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "demo": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Demo"
        },
        "is_filler": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Is Filler"
        },
        "search": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Search"
        },
        "shot_statuses": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ShotStatusFilter"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Statuses"
        },
        "gender": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductGender"
                },
                {
                    "type": "null"
                }
            ]
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "product_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "shooting_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shooting Id"
        },
        "incomplete": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Incomplete"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "colour": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        }
    },
    "type": "object",
    "title": "ProductSummaryRequest",
    "description": "Filter payload for POST /products/summary.\n\nMirrors the filters accepted by GET /products/ (read_products). No\npagination, sorting, or owner/organization fields — organization scope is\nresolved from the OrganizationDep query param, identical to the list\nendpoint."
}

Responses

{
    "total": 0,
    "gender_counts": {},
    "product_family_counts": {},
    "product_type_counts": {},
    "shot_status_counts": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "total": {
            "type": "integer",
            "title": "Total"
        },
        "gender_counts": {
            "additionalProperties": {
                "type": "integer"
            },
            "propertyNames": {
                "$ref": "#/components/schemas/ProductGender"
            },
            "type": "object",
            "title": "Gender Counts"
        },
        "product_family_counts": {
            "additionalProperties": {
                "type": "integer"
            },
            "type": "object",
            "title": "Product Family Counts"
        },
        "product_type_counts": {
            "additionalProperties": {
                "type": "integer"
            },
            "type": "object",
            "title": "Product Type Counts"
        },
        "shot_status_counts": {
            "additionalProperties": {
                "type": "integer"
            },
            "type": "object",
            "title": "Shot Status Counts"
        }
    },
    "type": "object",
    "required": [
        "total",
        "gender_counts",
        "product_family_counts",
        "product_type_counts",
        "shot_status_counts"
    ],
    "title": "ProductSummaryResponse",
    "description": "Aggregate counts over a filtered product set.\n\nDrives the Create Production Request form's picker/toggle visibility when\nthe user is in Select-All / filter mode (SAR-1636)."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/products/existing-skus

Products Existing Skus

Description

Which of the given SKUs already exist in the org's catalog.

ONE call for the review page's "Already in catalog" dup badge, replacing a per-SKU query fan-out (~300 requests for a full batch). Org scope comes from the OrganizationDep query param, identical to the list/summary endpoints.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "skus": [
        "string"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "skus": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Skus"
        }
    },
    "type": "object",
    "required": [
        "skus"
    ],
    "title": "ProductExistingSkusRequest",
    "description": "SKUs to check against the org's catalog — POST /products/existing-skus.\n\nOrg scope is resolved from the OrganizationDep query param (no org field),\nmatching the summary/list endpoints. Powers the review page's \"Already in\ncatalog\" dup badge in ONE call instead of one query per SKU."
}

Responses

{
    "existing_skus": [
        "string"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "existing_skus": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Existing Skus"
        }
    },
    "type": "object",
    "required": [
        "existing_skus"
    ],
    "title": "ProductExistingSkusResponse",
    "description": "The subset of the requested SKUs that already exist (non-archived)."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/products/bulk-update

Bulk Update Products

Description

Apply the same collection metadata (season / year / brand_collection) to many products at once — e.g. tag a whole Hermes drop as one collection.

Every target product must be writable by the caller (owner, org member, or superuser); if any is missing or not writable, nothing is changed.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "product_ids": [
        "726a2c3d-a17a-45a8-9043-70282bdde399"
    ],
    "season": null,
    "year": null,
    "brand_collection": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "product_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Product Ids"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        }
    },
    "type": "object",
    "required": [
        "product_ids"
    ],
    "title": "BulkProductCollectionUpdate",
    "description": "Apply the same collection metadata (season / year / brand_collection) to\nmany products at once — e.g. tag a whole Hermes drop as one collection.\n\nOnly the fields present here are written; omit a field to leave it untouched.\nAt least one of season / year / brand_collection must be provided."
}

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/property-values

Read Product Property Values

Description

Distinct values for a garment-property column, scoped to the caller.

Powers the select-look filter submenu options (SAR-1908). field must be one of the exposed garment-property columns: sleeve_type, neckline, closure_type, fit_type, length_type, pattern, colour, color_name, color_code.

  • Admins: values from all accessible products
  • Regular users: values only from their own products (or their org's)

Values are returned deduped case-insensitively, excluding null/empty, keeping the most common casing per value.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
field query string No Garment property to list distinct values for
organization_id query No

Responses

{
    "field": "string",
    "data": [
        "string"
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "field": {
            "type": "string",
            "title": "Field"
        },
        "data": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "field",
        "data",
        "count"
    ],
    "title": "PropertyValuesPublic",
    "description": "Distinct values for a single garment-property column.\n\nReturned by GET /products/property-values?field=<name>. ``data`` is the\ndeduped set of values present in the caller's scope (org or personal),\nsorted case-insensitively; ``count`` is the number of distinct values."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/export-tasks

List Export Tasks

Description

List export tasks for the current user.

Returns recent export tasks with their status and download URLs.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 10 No
skip query integer 0 No
status query No

Responses

{
    "data": [
        {
            "created_at": "2025-01-01T00:00:00Z",
            "download_urls": [],
            "id": "123e4567-e89b-12d3-a456-426614174000",
            "owner_id": "123e4567-e89b-12d3-a456-426614174001",
            "processed_items": 45,
            "progress": 45,
            "started_at": "2025-01-01T00:00:00Z",
            "status": "PROCESSING",
            "task_type": "APPROVED_SHOTS",
            "total_items": 100,
            "updated_at": "2025-01-01T00:00:00Z"
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ExportTaskPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ExportTasksPublic",
    "description": "List of export tasks with count."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/export-tasks/{task_id}

Get Export Task Status

Description

Get the status of an export task.

Poll this endpoint to check export progress and get the download URL when complete.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
task_id path string No

Responses

{
    "created_at": "2025-01-01T00:00:00Z",
    "download_urls": [],
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "owner_id": "123e4567-e89b-12d3-a456-426614174001",
    "processed_items": 45,
    "progress": 45,
    "started_at": "2025-01-01T00:00:00Z",
    "status": "PROCESSING",
    "task_type": "APPROVED_SHOTS",
    "total_items": 100,
    "updated_at": "2025-01-01T00:00:00Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "task_type": {
            "$ref": "#/components/schemas/ExportTaskType"
        },
        "status": {
            "$ref": "#/components/schemas/TaskStatus-Output"
        },
        "progress": {
            "type": "integer",
            "title": "Progress"
        },
        "total_items": {
            "type": "integer",
            "title": "Total Items"
        },
        "processed_items": {
            "type": "integer",
            "title": "Processed Items"
        },
        "download_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Download Url"
        },
        "download_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Download Urls"
        },
        "total_size_bytes": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Total Size Bytes"
        },
        "error_message": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Error Message"
        },
        "started_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Started At"
        },
        "completed_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Completed At"
        },
        "expires_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Expires At"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "owner_id",
        "task_type",
        "status",
        "progress",
        "total_items",
        "processed_items",
        "created_at",
        "updated_at"
    ],
    "title": "ExportTaskPublic",
    "description": "Public schema for export task responses.",
    "example": {
        "created_at": "2025-01-01T00:00:00Z",
        "download_urls": [],
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "owner_id": "123e4567-e89b-12d3-a456-426614174001",
        "processed_items": 45,
        "progress": 45,
        "started_at": "2025-01-01T00:00:00Z",
        "status": "PROCESSING",
        "task_type": "APPROVED_SHOTS",
        "total_items": 100,
        "updated_at": "2025-01-01T00:00:00Z"
    }
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/products/export-tasks/{task_id}

Cancel Export Task

Description

Cancel an export task.

Only tasks in non-terminal states (PENDING, SCHEDULED, PROCESSING, RETRYING) can be cancelled. Returns the updated task with status CANCELLED.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
task_id path string No

Responses

{
    "created_at": "2025-01-01T00:00:00Z",
    "download_urls": [],
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "owner_id": "123e4567-e89b-12d3-a456-426614174001",
    "processed_items": 45,
    "progress": 45,
    "started_at": "2025-01-01T00:00:00Z",
    "status": "PROCESSING",
    "task_type": "APPROVED_SHOTS",
    "total_items": 100,
    "updated_at": "2025-01-01T00:00:00Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "task_type": {
            "$ref": "#/components/schemas/ExportTaskType"
        },
        "status": {
            "$ref": "#/components/schemas/TaskStatus-Output"
        },
        "progress": {
            "type": "integer",
            "title": "Progress"
        },
        "total_items": {
            "type": "integer",
            "title": "Total Items"
        },
        "processed_items": {
            "type": "integer",
            "title": "Processed Items"
        },
        "download_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Download Url"
        },
        "download_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Download Urls"
        },
        "total_size_bytes": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Total Size Bytes"
        },
        "error_message": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Error Message"
        },
        "started_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Started At"
        },
        "completed_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Completed At"
        },
        "expires_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Expires At"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "owner_id",
        "task_type",
        "status",
        "progress",
        "total_items",
        "processed_items",
        "created_at",
        "updated_at"
    ],
    "title": "ExportTaskPublic",
    "description": "Public schema for export task responses.",
    "example": {
        "created_at": "2025-01-01T00:00:00Z",
        "download_urls": [],
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "owner_id": "123e4567-e89b-12d3-a456-426614174001",
        "processed_items": 45,
        "progress": 45,
        "started_at": "2025-01-01T00:00:00Z",
        "status": "PROCESSING",
        "task_type": "APPROVED_SHOTS",
        "total_items": 100,
        "updated_at": "2025-01-01T00:00:00Z"
    }
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/products/export-tasks/{task_id}/dismiss

Dismiss Export Task

Description

Dismiss a completed or failed export task, cleaning up the file and record.

If the task is still running, revoke the Celery worker first so it does not keep uploading to R2 after the DB row is gone (would create orphan files and consume a worker slot until natural completion).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
task_id path string No

Responses

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/export-tasks/{task_id}/download

Download Export Task

Description

Download the export file and delete the task record and file after download.

This endpoint streams the export file to the client and schedules cleanup of both the file and database record in the background.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
task_id path string No

Responses

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/products/export-tasks/{task_id}/mark-downloaded

Mark Export Downloaded

Description

SAR-1651: record that a completed export's zip has been downloaded.

The webapp downloads the zip directly from the worker URL, so it never reaches download_export_task (the redirect endpoint). It calls this instead to durably mark every covered revision DOWNLOADED. Idempotent and cleanup-free — zip teardown stays on dismiss.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
task_id path string No

Responses

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/{id}

Read Product

Description

Get product by ID.

Automatically checks organization membership even if organization_id is not specified.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "id": "31be6c61-5a0e-4c93-a9d2-4609079cb063",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "sku": null,
    "name": "string",
    "brand": null,
    "master_item_code": null,
    "barcode": null,
    "product_family": null,
    "product_type": null,
    "product_type_id": null,
    "product_wear": null,
    "product_wear_id": null,
    "gender": "MALE",
    "age_class": null,
    "placement": null,
    "zone": null,
    "styling_slot": "top",
    "type": null,
    "category": null,
    "sleeve_type": null,
    "neckline": null,
    "closure_type": null,
    "fit_type": null,
    "length_type": null,
    "pattern": null,
    "materials": null,
    "colour": null,
    "color_name": null,
    "color_code": null,
    "style_group_id": null,
    "season": null,
    "year": null,
    "style_code": null,
    "in_store_date": null,
    "theme": null,
    "brand_collection": null,
    "ingest_job_id": null,
    "description": null,
    "back_description": null,
    "ecommerce_description": null,
    "brand_metadata": null,
    "cover_image_url": null,
    "back_image_url": null,
    "reference_images": [
        "string"
    ],
    "cover_image_media": null,
    "back_image_media": null,
    "reference_images_media": null,
    "color_swatch_media": null,
    "data_image_urls": [
        "string"
    ],
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "is_filler": true,
    "incomplete": true,
    "deleted_at": null,
    "owner_id": "1a87e1a4-3987-429b-833f-12874ceece6e",
    "organization_id": null,
    "shot_status": null,
    "shot_status_production_request_id": null,
    "integration_name": null,
    "exports_completed": null,
    "exports_total": null,
    "shots": [
        null
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_family": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Family"
        },
        "product_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "$ref": "#/components/schemas/ProductGender"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "placement": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductPlacement"
                },
                {
                    "type": "null"
                }
            ]
        },
        "zone": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Zone"
        },
        "styling_slot": {
            "$ref": "#/components/schemas/StylingSlot",
            "default": "unknown"
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        },
        "style_group_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Group Id"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "ingest_job_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ingest Job Id"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "back_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image Url"
        },
        "reference_images": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Reference Images"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "back_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "reference_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images Media"
        },
        "color_swatch_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls",
            "default": []
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "is_filler": {
            "type": "boolean",
            "title": "Is Filler"
        },
        "incomplete": {
            "type": "boolean",
            "title": "Incomplete"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "shot_status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductShootingStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_status_production_request_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Status Production Request Id"
        },
        "integration_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Integration Name"
        },
        "exports_completed": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Completed"
        },
        "exports_total": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Total"
        },
        "shots": {
            "items": {},
            "type": "array",
            "title": "Shots",
            "default": []
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "gender",
        "cover_image_url",
        "reference_images",
        "public",
        "enabled",
        "archived",
        "demo",
        "is_filler",
        "incomplete",
        "owner_id"
    ],
    "title": "ProductPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/products/{id}

Update Product

Description

Update a product.

Supports both traditional image uploads (URL, base64) and presigned URLs. For presigned URLs, the image should have been previously uploaded using the /uploads endpoint.

Organization transfer: - To transfer a personal product to an organization: set organization_id to the target org ID - To transfer a product out of an organization: set organization_id to None (org owner only)

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Request body

{
    "brand": "New Brand",
    "gender": "MALE",
    "name": "Updated Black T-Shirt",
    "public": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 64
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductGender"
                },
                {
                    "type": "null"
                }
            ]
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 50
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 3000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 5000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image",
            "description": "URL, base64 string, or MediaInput for cover image"
        },
        "back_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image",
            "description": "URL, base64 string, or MediaInput for back view image"
        },
        "reference_images": {
            "anyOf": [
                {
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "#/components/schemas/MediaInput"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images",
            "description": "List of reference image URLs, base64 strings, or MediaInputs to update"
        },
        "color_swatch": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Swatch",
            "description": "Color swatch image for style variants"
        },
        "data_images": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images",
            "description": "DEPRECATED: Use reference_images instead"
        },
        "public": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Public"
        },
        "is_filler": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Is Filler",
            "description": "Mark as filler product. Auto-detected from SKU only at creation; on update, left unchanged unless explicitly provided."
        },
        "incomplete": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Incomplete"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization to transfer this product to"
        }
    },
    "type": "object",
    "title": "ProductUpdate",
    "example": {
        "brand": "New Brand",
        "gender": "MALE",
        "name": "Updated Black T-Shirt",
        "public": true
    }
}

Responses

{
    "id": "a1e09639-81bb-4520-9980-460a4c01e1a5",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "sku": null,
    "name": "string",
    "brand": null,
    "master_item_code": null,
    "barcode": null,
    "product_family": null,
    "product_type": null,
    "product_type_id": null,
    "product_wear": null,
    "product_wear_id": null,
    "gender": "MALE",
    "age_class": null,
    "placement": null,
    "zone": null,
    "styling_slot": "top",
    "type": null,
    "category": null,
    "sleeve_type": null,
    "neckline": null,
    "closure_type": null,
    "fit_type": null,
    "length_type": null,
    "pattern": null,
    "materials": null,
    "colour": null,
    "color_name": null,
    "color_code": null,
    "style_group_id": null,
    "season": null,
    "year": null,
    "style_code": null,
    "in_store_date": null,
    "theme": null,
    "brand_collection": null,
    "ingest_job_id": null,
    "description": null,
    "back_description": null,
    "ecommerce_description": null,
    "brand_metadata": null,
    "cover_image_url": null,
    "back_image_url": null,
    "reference_images": [
        "string"
    ],
    "cover_image_media": null,
    "back_image_media": null,
    "reference_images_media": null,
    "color_swatch_media": null,
    "data_image_urls": [
        "string"
    ],
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "is_filler": true,
    "incomplete": true,
    "deleted_at": null,
    "owner_id": "6bd0a8be-6e5a-492d-a9d3-82f159e0ddfc",
    "organization_id": null,
    "shot_status": null,
    "shot_status_production_request_id": null,
    "integration_name": null,
    "exports_completed": null,
    "exports_total": null,
    "shots": [
        null
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_family": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Family"
        },
        "product_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "$ref": "#/components/schemas/ProductGender"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "placement": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductPlacement"
                },
                {
                    "type": "null"
                }
            ]
        },
        "zone": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Zone"
        },
        "styling_slot": {
            "$ref": "#/components/schemas/StylingSlot",
            "default": "unknown"
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        },
        "style_group_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Group Id"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "ingest_job_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ingest Job Id"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "back_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image Url"
        },
        "reference_images": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Reference Images"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "back_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "reference_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images Media"
        },
        "color_swatch_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls",
            "default": []
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "is_filler": {
            "type": "boolean",
            "title": "Is Filler"
        },
        "incomplete": {
            "type": "boolean",
            "title": "Incomplete"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "shot_status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductShootingStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_status_production_request_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Status Production Request Id"
        },
        "integration_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Integration Name"
        },
        "exports_completed": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Completed"
        },
        "exports_total": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Total"
        },
        "shots": {
            "items": {},
            "type": "array",
            "title": "Shots",
            "default": []
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "gender",
        "cover_image_url",
        "reference_images",
        "public",
        "enabled",
        "archived",
        "demo",
        "is_filler",
        "incomplete",
        "owner_id"
    ],
    "title": "ProductPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/products/{id}

Delete Product

Description

Delete a product and all associated assets.

This includes: - Local image files (cover, data images) - Generated images and related files

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/products/{id}/restore

Restore Product

Description

Restore a soft-deleted product (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "49c6c309-2c3c-4aec-a3ee-16b5d705f13a",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "sku": null,
    "name": "string",
    "brand": null,
    "master_item_code": null,
    "barcode": null,
    "product_family": null,
    "product_type": null,
    "product_type_id": null,
    "product_wear": null,
    "product_wear_id": null,
    "gender": "MALE",
    "age_class": null,
    "placement": null,
    "zone": null,
    "styling_slot": "top",
    "type": null,
    "category": null,
    "sleeve_type": null,
    "neckline": null,
    "closure_type": null,
    "fit_type": null,
    "length_type": null,
    "pattern": null,
    "materials": null,
    "colour": null,
    "color_name": null,
    "color_code": null,
    "style_group_id": null,
    "season": null,
    "year": null,
    "style_code": null,
    "in_store_date": null,
    "theme": null,
    "brand_collection": null,
    "ingest_job_id": null,
    "description": null,
    "back_description": null,
    "ecommerce_description": null,
    "brand_metadata": null,
    "cover_image_url": null,
    "back_image_url": null,
    "reference_images": [
        "string"
    ],
    "cover_image_media": null,
    "back_image_media": null,
    "reference_images_media": null,
    "color_swatch_media": null,
    "data_image_urls": [
        "string"
    ],
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "is_filler": true,
    "incomplete": true,
    "deleted_at": null,
    "owner_id": "bf650c61-d23e-4ccf-964f-d5da8ce9204e",
    "organization_id": null,
    "shot_status": null,
    "shot_status_production_request_id": null,
    "integration_name": null,
    "exports_completed": null,
    "exports_total": null,
    "shots": [
        null
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_family": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Family"
        },
        "product_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "$ref": "#/components/schemas/ProductGender"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "placement": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductPlacement"
                },
                {
                    "type": "null"
                }
            ]
        },
        "zone": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Zone"
        },
        "styling_slot": {
            "$ref": "#/components/schemas/StylingSlot",
            "default": "unknown"
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        },
        "style_group_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Group Id"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "ingest_job_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ingest Job Id"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "back_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image Url"
        },
        "reference_images": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Reference Images"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "back_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "reference_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images Media"
        },
        "color_swatch_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls",
            "default": []
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "is_filler": {
            "type": "boolean",
            "title": "Is Filler"
        },
        "incomplete": {
            "type": "boolean",
            "title": "Incomplete"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "shot_status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductShootingStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_status_production_request_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Status Production Request Id"
        },
        "integration_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Integration Name"
        },
        "exports_completed": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Completed"
        },
        "exports_total": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Total"
        },
        "shots": {
            "items": {},
            "type": "array",
            "title": "Shots",
            "default": []
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "gender",
        "cover_image_url",
        "reference_images",
        "public",
        "enabled",
        "archived",
        "demo",
        "is_filler",
        "incomplete",
        "owner_id"
    ],
    "title": "ProductPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PATCH /api/v1/products/{id}/archived

Update Product Archive Status

Description

Update the archive status of a product.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
archived query boolean No
id path string No
organization_id query No

Responses

{
    "id": "ba5d584e-e6cc-4388-bae4-647a61214620",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "sku": null,
    "name": "string",
    "brand": null,
    "master_item_code": null,
    "barcode": null,
    "product_family": null,
    "product_type": null,
    "product_type_id": null,
    "product_wear": null,
    "product_wear_id": null,
    "gender": "MALE",
    "age_class": null,
    "placement": null,
    "zone": null,
    "styling_slot": "top",
    "type": null,
    "category": null,
    "sleeve_type": null,
    "neckline": null,
    "closure_type": null,
    "fit_type": null,
    "length_type": null,
    "pattern": null,
    "materials": null,
    "colour": null,
    "color_name": null,
    "color_code": null,
    "style_group_id": null,
    "season": null,
    "year": null,
    "style_code": null,
    "in_store_date": null,
    "theme": null,
    "brand_collection": null,
    "ingest_job_id": null,
    "description": null,
    "back_description": null,
    "ecommerce_description": null,
    "brand_metadata": null,
    "cover_image_url": null,
    "back_image_url": null,
    "reference_images": [
        "string"
    ],
    "cover_image_media": null,
    "back_image_media": null,
    "reference_images_media": null,
    "color_swatch_media": null,
    "data_image_urls": [
        "string"
    ],
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "is_filler": true,
    "incomplete": true,
    "deleted_at": null,
    "owner_id": "3881701a-0eb3-4f73-81d8-d130a3b4073e",
    "organization_id": null,
    "shot_status": null,
    "shot_status_production_request_id": null,
    "integration_name": null,
    "exports_completed": null,
    "exports_total": null,
    "shots": [
        null
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_family": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Family"
        },
        "product_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "$ref": "#/components/schemas/ProductGender"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "placement": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductPlacement"
                },
                {
                    "type": "null"
                }
            ]
        },
        "zone": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Zone"
        },
        "styling_slot": {
            "$ref": "#/components/schemas/StylingSlot",
            "default": "unknown"
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        },
        "style_group_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Group Id"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "ingest_job_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ingest Job Id"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "back_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image Url"
        },
        "reference_images": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Reference Images"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "back_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "reference_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images Media"
        },
        "color_swatch_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls",
            "default": []
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "is_filler": {
            "type": "boolean",
            "title": "Is Filler"
        },
        "incomplete": {
            "type": "boolean",
            "title": "Incomplete"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "shot_status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductShootingStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_status_production_request_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Status Production Request Id"
        },
        "integration_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Integration Name"
        },
        "exports_completed": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Completed"
        },
        "exports_total": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Total"
        },
        "shots": {
            "items": {},
            "type": "array",
            "title": "Shots",
            "default": []
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "gender",
        "cover_image_url",
        "reference_images",
        "public",
        "enabled",
        "archived",
        "demo",
        "is_filler",
        "incomplete",
        "owner_id"
    ],
    "title": "ProductPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/{product_id}/shots

Read Product Shots

Description

Get scalar ECOMMERCE shots for a specific Product.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No
product_id path string No
shot_type query string No
skip query integer 0 No
status query No

Responses

{
    "data": [
        {
            "id": "fd41c88d-776b-4663-aa5a-aae77d26c00c",
            "production_request_id": null,
            "shot_type": null,
            "pose_preset_id": null,
            "rework_available": 0,
            "rework_used": 0,
            "status": "PENDING",
            "current_revision_id": null,
            "download_status": "NOT_STARTED",
            "revisions": [
                {
                    "id": "def7f10f-2418-4d0b-9eb8-433ef14bc359",
                    "shot_id": "98307055-dbc8-4464-9d39-a1a89de1a9a7",
                    "version": 0,
                    "notes": null,
                    "shot_status": null,
                    "shot_revision_status": null,
                    "automatic_quality_assessment_status": null,
                    "post_prod_source": null,
                    "post_prod_fallback_reason": null,
                    "owner_id": null,
                    "owner": null,
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "previous_revision_id": null,
                    "images": [
                        {
                            "id": "60bb02c0-0800-474c-9c41-6895ba51364e",
                            "shot_revision_id": "7c3047b2-e7b2-4b78-85fa-ae808336c777",
                            "source_type": "PREDICTION",
                            "prediction_id": null,
                            "refine_id": null,
                            "image_url": null,
                            "sketch_image_url": null,
                            "image_media": null,
                            "sketch_image_media": null,
                            "notes": null,
                            "autogenerated": true,
                            "created_at": "2022-04-13T15:42:05.901Z",
                            "updated_at": "2022-04-13T15:42:05.901Z",
                            "effective_image_url": null
                        }
                    ],
                    "display_name": "string",
                    "effective_image_url": null,
                    "push_records": [
                        {
                            "id": "8f6aad5d-c432-48a0-af60-82bf9c6b2dc7",
                            "created_at": "2022-04-13T15:42:05.901Z",
                            "updated_at": "2022-04-13T15:42:05.901Z",
                            "integration_id": "190d3321-0a84-48ec-940c-4ed9bd7097eb",
                            "push_status": "PENDING",
                            "pushed_at": null,
                            "completed_at": null,
                            "error_message": null,
                            "failure_reason": null,
                            "integration_name": null
                        }
                    ],
                    "push_status": null
                }
            ],
            "content_defs": [
                {
                    "id": "1c325159-8ad3-4e92-b1d5-f62ee678c13d",
                    "label": null,
                    "description": "string",
                    "reference_media": null
                }
            ],
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z"
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ShotPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ShotsPublic",
    "description": "Collection of ShotPublic objects"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/{product_id}/production-requests

Read Product Production Requests

Description

Get all shooting production_requests for a specific product.

Retrieves all ProductionRequests where the product is the main subject. Does not include production_requests where the product only appears in the outfit.

Returns production_requests with all their shots and related data.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No
product_id path string No
skip query integer 0 No

Responses

{
    "data": [
        {
            "id": "fd9bd9d6-6965-40af-9a1d-069742c87005",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "shooting_id": "8a77196a-83c3-43d3-9b2f-a328d54a894d",
            "shooting_production_id": "df0b349e-f517-4dd3-8dc7-07c753bc383e",
            "production_kind": "MAIN",
            "production_archived": true,
            "shooting_type_key": null,
            "subject_id": null,
            "subject_name": null,
            "product_id": null,
            "product_name": null,
            "product_sku": null,
            "product_cover_image_url": null,
            "product_wear_id": null,
            "product_wear": null,
            "resolution_preset_id": null,
            "width": null,
            "height": null,
            "background_preset_id": null,
            "set_design_id": null,
            "set_design": null,
            "export_configuration_id": null,
            "readiness": "DRAFT",
            "shot_status": null,
            "lifecycle_stage": null,
            "download_status": "NOT_STARTED",
            "assignee_id": null,
            "assignee": null,
            "pose_presets": [
                {
                    "id": "85be6381-6233-4ed4-9495-f44b53670ea8",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "name": "string",
                    "prompt": null,
                    "shot_type_id": "0a279688-7616-4cec-be63-fdd81c908286",
                    "default_shot_type": null,
                    "owner_id": "ab9d4d8d-4510-46ef-a8c8-5be0af09acd2",
                    "organization_id": null,
                    "public": true,
                    "pose_image_url": null,
                    "pose_image_media": null,
                    "deleted_at": null
                }
            ],
            "generative_workflow_template_id": null,
            "use_subject_mannequin_double": null,
            "deleted_at": null,
            "shots": [
                {
                    "id": "db160328-6fcd-41e3-8872-5cc858b3fa81",
                    "production_request_id": null,
                    "shot_type": null,
                    "pose_preset_id": null,
                    "rework_available": 0,
                    "rework_used": 0,
                    "status": "PENDING",
                    "current_revision_id": null,
                    "download_status": null,
                    "revisions": [
                        {
                            "id": "0dfd95c5-2ab3-43ef-9105-7e0cb02b292d",
                            "shot_id": "7aed0fb9-65c3-490f-9473-5d93b6e96d33",
                            "version": 0,
                            "notes": null,
                            "shot_status": null,
                            "shot_revision_status": null,
                            "automatic_quality_assessment_status": null,
                            "post_prod_source": null,
                            "post_prod_fallback_reason": null,
                            "owner_id": null,
                            "owner": null,
                            "created_at": "2022-04-13T15:42:05.901Z",
                            "updated_at": "2022-04-13T15:42:05.901Z",
                            "previous_revision_id": null,
                            "images": [
                                {
                                    "id": "467e4fe3-17f5-4f4d-bc6d-e91127498d63",
                                    "shot_revision_id": "d9d7f6a3-9268-4219-8a4e-69820b5f99ef",
                                    "source_type": "PREDICTION",
                                    "prediction_id": null,
                                    "refine_id": null,
                                    "image_url": null,
                                    "sketch_image_url": null,
                                    "image_media": null,
                                    "sketch_image_media": null,
                                    "notes": null,
                                    "autogenerated": true,
                                    "created_at": "2022-04-13T15:42:05.901Z",
                                    "updated_at": "2022-04-13T15:42:05.901Z",
                                    "effective_image_url": null
                                }
                            ],
                            "display_name": "string",
                            "effective_image_url": null,
                            "push_records": [
                                {
                                    "id": "30599375-1b90-4051-ad13-15dd60a602f9",
                                    "created_at": "2022-04-13T15:42:05.901Z",
                                    "updated_at": "2022-04-13T15:42:05.901Z",
                                    "integration_id": "051e7d44-65e7-42f9-a650-f93f3c3ba0b8",
                                    "push_status": "PENDING",
                                    "pushed_at": null,
                                    "completed_at": null,
                                    "error_message": null,
                                    "failure_reason": null,
                                    "integration_name": null
                                }
                            ],
                            "push_status": null
                        }
                    ],
                    "content_defs": [
                        {
                            "id": "57b5811f-8dad-4ff5-8305-ad112fda7af0",
                            "label": null,
                            "description": "string",
                            "reference_media": null
                        }
                    ],
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z"
                }
            ],
            "outfit_proposals": [
                {
                    "id": "8123d0bd-c385-4aa3-b9ac-9aa563cc748d",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "production_request_id": "e5b1e209-9aa7-4427-9f79-34e20a4e0916",
                    "outfit_ref_imgs_urls": [
                        "string"
                    ],
                    "outfit_ref_images_media": null,
                    "outfit_instruction": null,
                    "outfit_product_ids": [
                        "2ad450f7-857f-4c20-999a-d4180d6c284d"
                    ],
                    "outfit_product_positions": {},
                    "outfit_products": [
                        {
                            "id": "5cf81c2c-8f03-4ac5-acea-c2bea2cb5b7c",
                            "created_at": "2022-04-13T15:42:05.901Z",
                            "updated_at": "2022-04-13T15:42:05.901Z",
                            "sku": null,
                            "name": "string",
                            "brand": null,
                            "master_item_code": null,
                            "barcode": null,
                            "product_family": null,
                            "product_type": null,
                            "product_type_id": null,
                            "product_wear": null,
                            "product_wear_id": null,
                            "gender": "MALE",
                            "age_class": null,
                            "placement": null,
                            "zone": null,
                            "styling_slot": "top",
                            "type": null,
                            "category": null,
                            "sleeve_type": null,
                            "neckline": null,
                            "closure_type": null,
                            "fit_type": null,
                            "length_type": null,
                            "pattern": null,
                            "materials": null,
                            "colour": null,
                            "color_name": null,
                            "color_code": null,
                            "style_group_id": null,
                            "season": null,
                            "year": null,
                            "style_code": null,
                            "in_store_date": null,
                            "theme": null,
                            "brand_collection": null,
                            "ingest_job_id": null,
                            "description": null,
                            "back_description": null,
                            "ecommerce_description": null,
                            "brand_metadata": null,
                            "cover_image_url": null,
                            "back_image_url": null,
                            "reference_images": [
                                "string"
                            ],
                            "cover_image_media": null,
                            "back_image_media": null,
                            "reference_images_media": null,
                            "color_swatch_media": null,
                            "data_image_urls": [
                                "string"
                            ],
                            "public": true,
                            "enabled": true,
                            "archived": true,
                            "demo": true,
                            "is_filler": true,
                            "incomplete": true,
                            "deleted_at": null,
                            "owner_id": "e05d379b-61a6-448b-82b0-53b2cc36039c",
                            "organization_id": null,
                            "shot_status": null,
                            "shot_status_production_request_id": null,
                            "integration_name": null,
                            "exports_completed": null,
                            "exports_total": null,
                            "shots": [
                                null
                            ]
                        }
                    ],
                    "generation_status": null,
                    "generation_error": null,
                    "retry_count": 0
                }
            ],
            "outfit_id": null,
            "outfit": null,
            "subject_ids": [
                "853c939c-8f97-487d-9f9f-9ccfbfde87f5"
            ],
            "product_ids": [
                "edc45cde-0237-4c4f-a0d1-6261d2ca5f33"
            ],
            "products": null,
            "content_defs": null,
            "reference_media": [
                {
                    "id": "45290119-128f-4133-84c3-f6c37bcaeda3",
                    "resource_type": "IMAGE",
                    "url": "string",
                    "content_hash": "string",
                    "extension": "string",
                    "file_size": 0,
                    "width": null,
                    "height": null,
                    "dominant_color": null,
                    "protected": true,
                    "alt_text": null,
                    "caption": null,
                    "color_profile": null,
                    "duration": null,
                    "aspect_ratio": null,
                    "orientation": null,
                    "created_at": "2022-04-13T15:42:05.901Z"
                }
            ],
            "reference_imgs_urls": [
                "string"
            ],
            "title": null,
            "outfit_ref_imgs_urls": [
                "string"
            ],
            "outfit_instruction": null,
            "outfit_product_ids": [
                "a7a1e695-334b-4537-aee6-a0b67aca9430"
            ],
            "outfit_product_positions": {}
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ProductionRequestPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ProductionRequestsPublic",
    "description": "Response model for paginated list of ProductionRequests."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/{product_id}/production-requests-summary

Read Product Production Requests Summary

Description

Lightweight version of read_product_production_requests.

Returns look-level data (product name, sku, cover image, outfit info, shot statuses with push status) without loading full revisions, images, or prediction/refine data.

When organization_id query param is provided, validates membership and checks access. Without organization_id, membership is resolved automatically if the product belongs to an organization the user is a member of.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No
product_id path string No
skip query integer 0 No

Responses

{
    "data": [
        {
            "id": "e97ad9b3-e521-4f28-8921-df8c558dbfb3",
            "shooting_id": "410d76e3-4869-45dc-81dc-5e8b8314b95f",
            "shooting_production_id": "4f28e420-f451-497e-8548-03ada525051c",
            "production_kind": "MAIN",
            "production_archived": true,
            "shooting_type_key": null,
            "title": null,
            "product_id": null,
            "product_name": null,
            "product_sku": null,
            "product_cover_image_url": null,
            "product_wear_id": null,
            "product_wear": null,
            "product_ids": [
                "10b8ae36-26af-4b42-b016-ab61d6f8e635"
            ],
            "products": [
                {
                    "id": "05ade3c4-af2f-41e1-8146-23fa92722628",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "sku": null,
                    "name": "string",
                    "brand": null,
                    "master_item_code": null,
                    "barcode": null,
                    "product_family": null,
                    "product_type": null,
                    "product_type_id": null,
                    "product_wear": null,
                    "product_wear_id": null,
                    "gender": "MALE",
                    "age_class": null,
                    "placement": null,
                    "zone": null,
                    "styling_slot": "top",
                    "type": null,
                    "category": null,
                    "sleeve_type": null,
                    "neckline": null,
                    "closure_type": null,
                    "fit_type": null,
                    "length_type": null,
                    "pattern": null,
                    "materials": null,
                    "colour": null,
                    "color_name": null,
                    "color_code": null,
                    "style_group_id": null,
                    "season": null,
                    "year": null,
                    "style_code": null,
                    "in_store_date": null,
                    "theme": null,
                    "brand_collection": null,
                    "ingest_job_id": null,
                    "description": null,
                    "back_description": null,
                    "ecommerce_description": null,
                    "brand_metadata": null,
                    "cover_image_url": null,
                    "back_image_url": null,
                    "reference_images": [
                        "string"
                    ],
                    "cover_image_media": null,
                    "back_image_media": null,
                    "reference_images_media": null,
                    "color_swatch_media": null,
                    "data_image_urls": [
                        "string"
                    ],
                    "public": true,
                    "enabled": true,
                    "archived": true,
                    "demo": true,
                    "is_filler": true,
                    "incomplete": true,
                    "deleted_at": null,
                    "owner_id": "c3a17e9e-aad7-49c7-bbb6-7012b9b494f2",
                    "organization_id": null,
                    "shot_status": null,
                    "shot_status_production_request_id": null,
                    "integration_name": null,
                    "exports_completed": null,
                    "exports_total": null,
                    "shots": [
                        null
                    ]
                }
            ],
            "reference_media": [
                {
                    "id": "6c3ae122-e447-48a2-96b0-40462174e5aa",
                    "resource_type": "IMAGE",
                    "url": "string",
                    "content_hash": "string",
                    "extension": "string",
                    "file_size": 0,
                    "width": null,
                    "height": null,
                    "dominant_color": null,
                    "protected": true,
                    "alt_text": null,
                    "caption": null,
                    "color_profile": null,
                    "duration": null,
                    "aspect_ratio": null,
                    "orientation": null,
                    "created_at": "2022-04-13T15:42:05.901Z"
                }
            ],
            "reference_imgs_urls": [
                "string"
            ],
            "readiness": "DRAFT",
            "shot_status": null,
            "lifecycle_stage": null,
            "download_status": "NOT_STARTED",
            "assignee_id": null,
            "assignee": null,
            "outfit_products_count": 0,
            "outfit_generation_status": null,
            "shots": [
                {
                    "id": "15e3c287-7d02-4c93-b774-fecbb1e2c61b",
                    "shot_type": null,
                    "status": "PENDING",
                    "current_revision_id": null,
                    "push_status": null,
                    "push_error_message": null,
                    "push_failure_reason": null,
                    "push_integration_name": null,
                    "download_status": null
                }
            ],
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z"
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ProductionRequestSummary"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ProductionRequestsSummaryPublic",
    "description": "Response model for paginated list of lightweight ProductionRequest summaries."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/{product_id}/related-production-requests

Read Product Related Production Requests

Description

Get all shooting production_requests where a Product is a source or appears in the outfit.

This includes production_requests where: - The Product is the scalar e-commerce Product or a direct CUSTOM Product - The product appears in the outfit (outfit_product_ids)

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No
product_id path string No
skip query integer 0 No

Responses

{
    "data": [
        {
            "id": "11b4133d-734b-45e8-a68f-4f7e0d5a7a10",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "shooting_id": "c96a290d-f858-4a97-9740-812835d10d46",
            "shooting_production_id": "f643a1c4-c20e-474b-9439-05b423d97afe",
            "production_kind": "MAIN",
            "production_archived": true,
            "shooting_type_key": null,
            "subject_id": null,
            "subject_name": null,
            "product_id": null,
            "product_name": null,
            "product_sku": null,
            "product_cover_image_url": null,
            "product_wear_id": null,
            "product_wear": null,
            "resolution_preset_id": null,
            "width": null,
            "height": null,
            "background_preset_id": null,
            "set_design_id": null,
            "set_design": null,
            "export_configuration_id": null,
            "readiness": "DRAFT",
            "shot_status": null,
            "lifecycle_stage": null,
            "download_status": "NOT_STARTED",
            "assignee_id": null,
            "assignee": null,
            "pose_presets": [
                {
                    "id": "1b60fa4b-c845-4970-a3f8-095ed7dafc35",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "name": "string",
                    "prompt": null,
                    "shot_type_id": "7f99ed54-62ea-4216-b085-fb38a1dad1de",
                    "default_shot_type": null,
                    "owner_id": "ef0fa85c-89fc-4318-a05f-c53a0254b9a1",
                    "organization_id": null,
                    "public": true,
                    "pose_image_url": null,
                    "pose_image_media": null,
                    "deleted_at": null
                }
            ],
            "generative_workflow_template_id": null,
            "use_subject_mannequin_double": null,
            "deleted_at": null,
            "shots": [
                {
                    "id": "767b139b-7bbb-4f0e-938d-275c92542f05",
                    "production_request_id": null,
                    "shot_type": null,
                    "pose_preset_id": null,
                    "rework_available": 0,
                    "rework_used": 0,
                    "status": "PENDING",
                    "current_revision_id": null,
                    "download_status": null,
                    "revisions": [
                        {
                            "id": "824ef465-65c5-4d13-ab31-89a4b233d128",
                            "shot_id": "84267789-c410-4816-afcf-6e7f77e33df6",
                            "version": 0,
                            "notes": null,
                            "shot_status": null,
                            "shot_revision_status": null,
                            "automatic_quality_assessment_status": null,
                            "post_prod_source": null,
                            "post_prod_fallback_reason": null,
                            "owner_id": null,
                            "owner": null,
                            "created_at": "2022-04-13T15:42:05.901Z",
                            "updated_at": "2022-04-13T15:42:05.901Z",
                            "previous_revision_id": null,
                            "images": [
                                {
                                    "id": "ab00055d-7a86-447b-b94f-b7d4b46f892d",
                                    "shot_revision_id": "150ac0c8-0cc0-49af-891c-3018cef4e52b",
                                    "source_type": "PREDICTION",
                                    "prediction_id": null,
                                    "refine_id": null,
                                    "image_url": null,
                                    "sketch_image_url": null,
                                    "image_media": null,
                                    "sketch_image_media": null,
                                    "notes": null,
                                    "autogenerated": true,
                                    "created_at": "2022-04-13T15:42:05.901Z",
                                    "updated_at": "2022-04-13T15:42:05.901Z",
                                    "effective_image_url": null
                                }
                            ],
                            "display_name": "string",
                            "effective_image_url": null,
                            "push_records": [
                                {
                                    "id": "bcbbeec0-f793-446e-becd-b83f17bb9956",
                                    "created_at": "2022-04-13T15:42:05.901Z",
                                    "updated_at": "2022-04-13T15:42:05.901Z",
                                    "integration_id": "5923995a-c5e3-4a6d-bc30-ef8e0a59997c",
                                    "push_status": "PENDING",
                                    "pushed_at": null,
                                    "completed_at": null,
                                    "error_message": null,
                                    "failure_reason": null,
                                    "integration_name": null
                                }
                            ],
                            "push_status": null
                        }
                    ],
                    "content_defs": [
                        {
                            "id": "0675885f-1d26-4c6c-8cd2-0512639ab78f",
                            "label": null,
                            "description": "string",
                            "reference_media": null
                        }
                    ],
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z"
                }
            ],
            "outfit_proposals": [
                {
                    "id": "920e0253-9a93-43db-af6e-92156b8e6f8a",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "production_request_id": "53b366dc-3607-476b-8c2c-eb9129ff1988",
                    "outfit_ref_imgs_urls": [
                        "string"
                    ],
                    "outfit_ref_images_media": null,
                    "outfit_instruction": null,
                    "outfit_product_ids": [
                        "1c3ac2e4-a1cf-4252-8a10-def8e93fdeab"
                    ],
                    "outfit_product_positions": {},
                    "outfit_products": [
                        {
                            "id": "bd934d46-0ee2-4b09-b2af-cca9ccd0b9e3",
                            "created_at": "2022-04-13T15:42:05.901Z",
                            "updated_at": "2022-04-13T15:42:05.901Z",
                            "sku": null,
                            "name": "string",
                            "brand": null,
                            "master_item_code": null,
                            "barcode": null,
                            "product_family": null,
                            "product_type": null,
                            "product_type_id": null,
                            "product_wear": null,
                            "product_wear_id": null,
                            "gender": "MALE",
                            "age_class": null,
                            "placement": null,
                            "zone": null,
                            "styling_slot": "top",
                            "type": null,
                            "category": null,
                            "sleeve_type": null,
                            "neckline": null,
                            "closure_type": null,
                            "fit_type": null,
                            "length_type": null,
                            "pattern": null,
                            "materials": null,
                            "colour": null,
                            "color_name": null,
                            "color_code": null,
                            "style_group_id": null,
                            "season": null,
                            "year": null,
                            "style_code": null,
                            "in_store_date": null,
                            "theme": null,
                            "brand_collection": null,
                            "ingest_job_id": null,
                            "description": null,
                            "back_description": null,
                            "ecommerce_description": null,
                            "brand_metadata": null,
                            "cover_image_url": null,
                            "back_image_url": null,
                            "reference_images": [
                                "string"
                            ],
                            "cover_image_media": null,
                            "back_image_media": null,
                            "reference_images_media": null,
                            "color_swatch_media": null,
                            "data_image_urls": [
                                "string"
                            ],
                            "public": true,
                            "enabled": true,
                            "archived": true,
                            "demo": true,
                            "is_filler": true,
                            "incomplete": true,
                            "deleted_at": null,
                            "owner_id": "e9e50f98-8416-4488-88df-3aef8af17186",
                            "organization_id": null,
                            "shot_status": null,
                            "shot_status_production_request_id": null,
                            "integration_name": null,
                            "exports_completed": null,
                            "exports_total": null,
                            "shots": [
                                null
                            ]
                        }
                    ],
                    "generation_status": null,
                    "generation_error": null,
                    "retry_count": 0
                }
            ],
            "outfit_id": null,
            "outfit": null,
            "subject_ids": [
                "d2565b30-f6cf-4848-be3b-856d9ce15959"
            ],
            "product_ids": [
                "23e191b8-a16d-49fa-82e2-7ea626a348f0"
            ],
            "products": null,
            "content_defs": null,
            "reference_media": [
                {
                    "id": "78c10e1c-6ec3-4f93-929c-0421dbd2f5d6",
                    "resource_type": "IMAGE",
                    "url": "string",
                    "content_hash": "string",
                    "extension": "string",
                    "file_size": 0,
                    "width": null,
                    "height": null,
                    "dominant_color": null,
                    "protected": true,
                    "alt_text": null,
                    "caption": null,
                    "color_profile": null,
                    "duration": null,
                    "aspect_ratio": null,
                    "orientation": null,
                    "created_at": "2022-04-13T15:42:05.901Z"
                }
            ],
            "reference_imgs_urls": [
                "string"
            ],
            "title": null,
            "outfit_ref_imgs_urls": [
                "string"
            ],
            "outfit_instruction": null,
            "outfit_product_ids": [
                "16165cdc-ef13-491d-8e4d-19b4f5987b8b"
            ],
            "outfit_product_positions": {}
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ProductionRequestPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ProductionRequestsPublic",
    "description": "Response model for paginated list of ProductionRequests."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/products/export-approved-shots/async

Start Export Approved Shots Async

Description

Start an async export of approved shot images.

Returns a task ID that can be polled for status. When complete, the task will contain a download URL.

This endpoint is recommended for large exports as it: - Doesn't timeout for large datasets - Provides progress tracking - Allows the user to navigate away and return later - Runs in a separate Celery worker process (non-blocking)

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "product_ids": null,
    "product_filters": null,
    "shooting_id": null,
    "production_request_id": null,
    "skip_already_exported": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "product_ids": {
            "anyOf": [
                {
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Ids",
            "description": "List of product IDs to export approved shots from"
        },
        "product_filters": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Filters",
            "description": "Product filters matching the read_products endpoint (archived, enabled, brand, brand_collection, demo, search, shooting_id, shot_statuses, gender, product_type, sort_by, sort_order, skip, limit)"
        },
        "shooting_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shooting Id",
            "description": "Shooting ID to export as a whole when used alone, or to filter shots when used with product_ids or product_filters."
        },
        "production_request_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Production Request Id",
            "description": "ProductionRequest ID to export approved shots from. Mutually exclusive with product_ids and product_filters."
        },
        "skip_already_exported": {
            "type": "boolean",
            "title": "Skip Already Exported",
            "description": "When true, skip approved current revisions that are downloading, ready for download, or already downloaded. When false, include those revisions in the ZIP.",
            "default": true
        }
    },
    "type": "object",
    "title": "ExportApprovedShotsRequest",
    "description": "Request model for exporting approved shot images as ZIP."
}

Responses

{
    "created_at": "2025-01-01T00:00:00Z",
    "download_urls": [],
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "owner_id": "123e4567-e89b-12d3-a456-426614174001",
    "processed_items": 45,
    "progress": 45,
    "started_at": "2025-01-01T00:00:00Z",
    "status": "PROCESSING",
    "task_type": "APPROVED_SHOTS",
    "total_items": 100,
    "updated_at": "2025-01-01T00:00:00Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "task_type": {
            "$ref": "#/components/schemas/ExportTaskType"
        },
        "status": {
            "$ref": "#/components/schemas/TaskStatus-Output"
        },
        "progress": {
            "type": "integer",
            "title": "Progress"
        },
        "total_items": {
            "type": "integer",
            "title": "Total Items"
        },
        "processed_items": {
            "type": "integer",
            "title": "Processed Items"
        },
        "download_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Download Url"
        },
        "download_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Download Urls"
        },
        "total_size_bytes": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Total Size Bytes"
        },
        "error_message": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Error Message"
        },
        "started_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Started At"
        },
        "completed_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Completed At"
        },
        "expires_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Expires At"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "owner_id",
        "task_type",
        "status",
        "progress",
        "total_items",
        "processed_items",
        "created_at",
        "updated_at"
    ],
    "title": "ExportTaskPublic",
    "description": "Public schema for export task responses.",
    "example": {
        "created_at": "2025-01-01T00:00:00Z",
        "download_urls": [],
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "owner_id": "123e4567-e89b-12d3-a456-426614174001",
        "processed_items": 45,
        "progress": 45,
        "started_at": "2025-01-01T00:00:00Z",
        "status": "PROCESSING",
        "task_type": "APPROVED_SHOTS",
        "total_items": 100,
        "updated_at": "2025-01-01T00:00:00Z"
    }
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/products/{product_id}/color-variants

List Color Variants

Description

List all color variant siblings of a product.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
product_id path string No

Responses

{
    "data": [
        {
            "id": "9b5ce492-b94f-4f0c-bb9a-d8fb2bac47c7",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "sku": null,
            "name": "string",
            "brand": null,
            "master_item_code": null,
            "barcode": null,
            "product_family": null,
            "product_type": null,
            "product_type_id": null,
            "product_wear": null,
            "product_wear_id": null,
            "gender": "MALE",
            "age_class": null,
            "placement": null,
            "zone": null,
            "styling_slot": "top",
            "type": null,
            "category": null,
            "sleeve_type": null,
            "neckline": null,
            "closure_type": null,
            "fit_type": null,
            "length_type": null,
            "pattern": null,
            "materials": null,
            "colour": null,
            "color_name": null,
            "color_code": null,
            "style_group_id": null,
            "season": null,
            "year": null,
            "style_code": null,
            "in_store_date": null,
            "theme": null,
            "brand_collection": null,
            "ingest_job_id": null,
            "description": null,
            "back_description": null,
            "ecommerce_description": null,
            "brand_metadata": null,
            "cover_image_url": null,
            "back_image_url": null,
            "reference_images": [
                "string"
            ],
            "cover_image_media": null,
            "back_image_media": null,
            "reference_images_media": null,
            "color_swatch_media": null,
            "data_image_urls": [
                "string"
            ],
            "public": true,
            "enabled": true,
            "archived": true,
            "demo": true,
            "is_filler": true,
            "incomplete": true,
            "deleted_at": null,
            "owner_id": "b4c5a205-cf52-40e1-b6d8-aa8f70ee7749",
            "organization_id": null,
            "shot_status": null,
            "shot_status_production_request_id": null,
            "integration_name": null,
            "exports_completed": null,
            "exports_total": null,
            "shots": [
                null
            ]
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ProductPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ColorVariantsPublic",
    "description": "List of color variant siblings."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/products/{product_id}/color-variants

Create Color Variant

Description

Create a new product as a color variant of an existing product.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
product_id path string No

Request body

{
    "cover_image": "https://example.com/image.jpg",
    "gender": "UNISEX",
    "materials": "100% Cotton",
    "name": "Black T-Shirt",
    "public": false
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 64
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductGender"
                },
                {
                    "type": "null"
                }
            ],
            "default": "UNISEX"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "type": "string",
            "maxLength": 255,
            "title": "Color Name"
        },
        "color_code": {
            "type": "string",
            "maxLength": 50,
            "title": "Color Code"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 100
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 3000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 5000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                }
            ],
            "title": "Cover Image",
            "description": "URL, base64 string, or MediaInput for cover image"
        },
        "back_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image",
            "description": "URL, base64 string, or MediaInput for back view image (optional)"
        },
        "reference_images": {
            "anyOf": [
                {
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "#/components/schemas/MediaInput"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images",
            "description": "List of reference image URLs, base64 strings, or MediaInputs"
        },
        "color_swatch": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Swatch",
            "description": "Color swatch image for style variants"
        },
        "data_images": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images",
            "description": "DEPRECATED: Use reference_images instead"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": false
        },
        "is_filler": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Is Filler",
            "description": "Mark as filler product. Auto-detected from SKU if not provided."
        },
        "incomplete": {
            "type": "boolean",
            "title": "Incomplete",
            "description": "Mark as incomplete, needs manual review",
            "default": false
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this product belongs to"
        }
    },
    "type": "object",
    "required": [
        "name",
        "color_name",
        "color_code",
        "cover_image"
    ],
    "title": "ColorVariantCreate",
    "description": "Product creation as a color variant — extends ProductCreate with required color fields.\n\nThis is a full product creation. All ProductCreate fields are available.\nThe backend links the new product to the parent via style_group_id.",
    "example": {
        "cover_image": "https://example.com/image.jpg",
        "gender": "UNISEX",
        "materials": "100% Cotton",
        "name": "Black T-Shirt",
        "public": false
    }
}

Responses

{
    "id": "133a3e78-808f-472a-99c8-bc34b90cf932",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "sku": null,
    "name": "string",
    "brand": null,
    "master_item_code": null,
    "barcode": null,
    "product_family": null,
    "product_type": null,
    "product_type_id": null,
    "product_wear": null,
    "product_wear_id": null,
    "gender": "MALE",
    "age_class": null,
    "placement": null,
    "zone": null,
    "styling_slot": "top",
    "type": null,
    "category": null,
    "sleeve_type": null,
    "neckline": null,
    "closure_type": null,
    "fit_type": null,
    "length_type": null,
    "pattern": null,
    "materials": null,
    "colour": null,
    "color_name": null,
    "color_code": null,
    "style_group_id": null,
    "season": null,
    "year": null,
    "style_code": null,
    "in_store_date": null,
    "theme": null,
    "brand_collection": null,
    "ingest_job_id": null,
    "description": null,
    "back_description": null,
    "ecommerce_description": null,
    "brand_metadata": null,
    "cover_image_url": null,
    "back_image_url": null,
    "reference_images": [
        "string"
    ],
    "cover_image_media": null,
    "back_image_media": null,
    "reference_images_media": null,
    "color_swatch_media": null,
    "data_image_urls": [
        "string"
    ],
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "is_filler": true,
    "incomplete": true,
    "deleted_at": null,
    "owner_id": "85c83786-6193-4fc8-8d0a-746dc64e185c",
    "organization_id": null,
    "shot_status": null,
    "shot_status_production_request_id": null,
    "integration_name": null,
    "exports_completed": null,
    "exports_total": null,
    "shots": [
        null
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "sku": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sku"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "master_item_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Master Item Code"
        },
        "barcode": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Barcode"
        },
        "product_family": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Family"
        },
        "product_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type"
        },
        "product_type_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Type Id"
        },
        "product_wear": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear"
        },
        "product_wear_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Product Wear Id"
        },
        "gender": {
            "$ref": "#/components/schemas/ProductGender"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "placement": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductPlacement"
                },
                {
                    "type": "null"
                }
            ]
        },
        "zone": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Zone"
        },
        "styling_slot": {
            "$ref": "#/components/schemas/StylingSlot",
            "default": "unknown"
        },
        "type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Type"
        },
        "category": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Category"
        },
        "sleeve_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Sleeve Type"
        },
        "neckline": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Neckline"
        },
        "closure_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Closure Type"
        },
        "fit_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Fit Type"
        },
        "length_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Length Type"
        },
        "pattern": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pattern"
        },
        "materials": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Materials"
        },
        "colour": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Colour"
        },
        "color_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Name"
        },
        "color_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Color Code"
        },
        "style_group_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Group Id"
        },
        "season": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Season"
        },
        "year": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Year"
        },
        "style_code": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Style Code"
        },
        "in_store_date": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "In Store Date"
        },
        "theme": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Theme"
        },
        "brand_collection": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Collection"
        },
        "ingest_job_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ingest Job Id"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "back_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Description"
        },
        "ecommerce_description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ecommerce Description"
        },
        "brand_metadata": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand Metadata"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "back_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Back Image Url"
        },
        "reference_images": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Reference Images"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "back_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "reference_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Images Media"
        },
        "color_swatch_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls",
            "default": []
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "is_filler": {
            "type": "boolean",
            "title": "Is Filler"
        },
        "incomplete": {
            "type": "boolean",
            "title": "Incomplete"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "shot_status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ProductShootingStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_status_production_request_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Status Production Request Id"
        },
        "integration_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Integration Name"
        },
        "exports_completed": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Completed"
        },
        "exports_total": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Exports Total"
        },
        "shots": {
            "items": {},
            "type": "array",
            "title": "Shots",
            "default": []
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "gender",
        "cover_image_url",
        "reference_images",
        "public",
        "enabled",
        "archived",
        "demo",
        "is_filler",
        "incomplete",
        "owner_id"
    ],
    "title": "ProductPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

brands


GET /api/v1/brands/

Read Brands

Description

Get all distinct brand names from products.

  • Admins: Returns all brands from all products
  • Regular users: Returns brands only from their own products

The brands are returned in alphabetical order, excluding null or empty values.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Responses

{
    "data": [
        "string"
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "BrandsPublic",
    "description": "Public schema for brands list response."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

brand-collections


GET /api/v1/brand-collections/

Read Brand Collections

Description

Get all distinct brand collection names from products.

  • Admins: Returns all brand collections from all products
  • Regular users: Returns brand collections only from their own products

The brand collections are returned in alphabetical order, excluding null or empty values.

Optionally filter by brand name to get brand collections for a specific brand only.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
brand query No Filter by brand name
organization_id query No

Responses

{
    "data": [
        "string"
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "BrandCollectionsPublic",
    "description": "Public schema for brand collections list response."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

seasons


GET /api/v1/seasons/

Read Seasons

Description

Get all distinct season names from products.

  • Admins: Returns all seasons from all products
  • Regular users: Returns seasons only from their own products

The seasons are returned in alphabetical order, excluding null or empty values.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Responses

{
    "data": [
        "string"
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "SeasonsPublic",
    "description": "Public schema for seasons list response."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

years


GET /api/v1/years/

Read Years

Description

Get all distinct years from products.

  • Admins: Returns all years from all products
  • Regular users: Returns years only from their own products

The years are returned in descending order (newest first), excluding null values.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No

Responses

{
    "data": [
        0
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "type": "integer"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "YearsPublic",
    "description": "Public schema for years list response."
}

Schemas

AgeClass

Type: string

app__models__base_task__TaskStatus

Type: string

BrandCollectionsPublic

Name Type Description
count integer
data Array<string>

BrandsPublic

Name Type Description
count integer
data Array<string>

BulkProductCollectionUpdate

Name Type Description
brand_collection
product_ids Array<string(uuid)>
season
year

ColorVariantCreate

Name Type Description
age_class
back_description
back_image URL, base64 string, or MediaInput for back view image (optional)
barcode
brand
brand_collection
brand_metadata
category
closure_type
color_code string
color_name string
color_swatch Color swatch image for style variants
colour
cover_image URL, base64 string, or MediaInput for cover image
data_images DEPRECATED: Use reference_images instead
description
ecommerce_description
fit_type
gender
in_store_date
incomplete boolean Mark as incomplete, needs manual review
is_filler Mark as filler product. Auto-detected from SKU if not provided.
length_type
master_item_code
materials
name string
neckline
organization_id Organization this product belongs to
pattern
product_type_id
product_wear_id
public boolean
reference_images List of reference image URLs, base64 strings, or MediaInputs
season
sku
sleeve_type
style_code
theme
type
year

ColorVariantsPublic

Name Type Description
count integer
data Array<ProductPublic>

ContentDefPublic

Name Type Description
description string
id string(uuid)
label
reference_media

DefaultShotTypes

Type: string

DownloadStatus

Type: string

ExportApprovedShotsRequest

Name Type Description
product_filters Product filters matching the read_products endpoint (archived, enabled, brand, brand_collection, demo, search, shooting_id, shot_statuses, gender, product_type, sort_by, sort_order, skip, limit)
product_ids List of product IDs to export approved shots from
production_request_id ProductionRequest ID to export approved shots from. Mutually exclusive with product_ids and product_filters.
shooting_id Shooting ID to export as a whole when used alone, or to filter shots when used with product_ids or product_filters.
skip_already_exported boolean When true, skip approved current revisions that are downloading, ready for download, or already downloaded. When false, include those revisions in the ZIP.

ExportTaskPublic

Name Type Description
completed_at
created_at string(date-time)
download_url
download_urls Array<string>
error_message
expires_at
id string(uuid)
owner_id string(uuid)
processed_items integer
progress integer
started_at
status TaskStatus-Output
task_type ExportTaskType
total_items integer
total_size_bytes
updated_at string(date-time)

ExportTasksPublic

Name Type Description
count integer
data Array<ExportTaskPublic>

ExportTaskType

Type: string

ExternalImagePushPublic

Name Type Description
completed_at
created_at string(date-time)
error_message
failure_reason
id string(uuid)
integration_id string(uuid)
integration_name
push_status PushStatus
pushed_at
updated_at string(date-time)

HTTPValidationError

Name Type Description
detail Array<ValidationError>

MediaInput

Name Type Description
alt_text
caption
color_profile
dominant_color
duration
height
media_resource_id
protected boolean
url
width

MediaResourcePublic

Name Type Description
alt_text
aspect_ratio
caption
color_profile
content_hash string
created_at string(date-time)
dominant_color
duration
extension string
file_size integer
height
id string(uuid)
orientation
protected boolean
resource_type MediaResourceType
url string
width

MediaResourceType

Type: string

Message

Name Type Description
message string

OutfitGenerationStatus

Type: string

PosePresetPublic

Name Type Description
created_at string(date-time)
default_shot_type
deleted_at
id string(uuid)
name string
organization_id
owner_id string(uuid)
pose_image_media
pose_image_url
prompt
public boolean
shot_type_id string(uuid)
updated_at string(date-time)

ProductCreate

Name Type Description
age_class
back_description
back_image URL, base64 string, or MediaInput for back view image (optional)
barcode
brand
brand_collection
brand_metadata
category
closure_type
color_code
color_name
color_swatch Color swatch image for style variants
colour
cover_image URL, base64 string, or MediaInput for cover image
data_images DEPRECATED: Use reference_images instead
description
ecommerce_description
fit_type
gender
in_store_date
incomplete boolean Mark as incomplete, needs manual review
is_filler Mark as filler product. Auto-detected from SKU if not provided.
length_type
master_item_code
materials
name string
neckline
organization_id Organization this product belongs to
pattern
product_type_id
product_wear_id
public boolean
reference_images List of reference image URLs, base64 strings, or MediaInputs
season
sku
sleeve_type
style_code
theme
type
year

ProductExistingSkusRequest

Name Type Description
skus Array<string>

ProductExistingSkusResponse

Name Type Description
existing_skus Array<string>

ProductGender

Type: string

ProductionKind

Type: string

ProductionRequestOutfitPublic

Name Type Description
created_at string(date-time)
generation_error
generation_status
id string(uuid)
outfit_instruction
outfit_product_ids Array<string(uuid)>
outfit_product_positions
outfit_products Array<ProductPublic>
outfit_ref_images_media
outfit_ref_imgs_urls Array<string>
production_request_id string(uuid)
retry_count integer
updated_at string(date-time)

ProductionRequestPublic

Name Type Description
assignee
assignee_id
background_preset_id
content_defs Array<ContentDefPublic>
created_at string(date-time)
deleted_at
download_status DownloadStatus
export_configuration_id
generative_workflow_template_id
height
id string(uuid)
lifecycle_stage
outfit
outfit_id
outfit_instruction Get outfit instruction from the selected outfit.
outfit_product_ids Array<string(uuid)> Get outfit product IDs from the selected outfit (supports both storage mechanisms).
outfit_product_positions Get per-product canvas positions from the selected outfit.
outfit_proposals Array<ProductionRequestOutfitPublic>
outfit_ref_imgs_urls Array<string> Get outfit reference image URLs from the selected outfit.
pose_presets Array<PosePresetPublic>
product_cover_image_url
product_id
product_ids Array<string(uuid)>
product_name
product_sku
product_wear
product_wear_id
production_archived boolean
production_kind ProductionKind
products Array<ProductPublic>
readiness ProductionRequestReadiness
reference_imgs_urls Array<string>
reference_media Array<MediaResourcePublic>
resolution_preset_id
set_design
set_design_id
shooting_id string(uuid)
shooting_production_id string(uuid)
shooting_type_key
shot_status
shots Array<ShotPublic>
subject_id
subject_ids Array<string(uuid)>
subject_name
title
updated_at string(date-time)
use_subject_mannequin_double
width

ProductionRequestReadiness

Type: string

ProductionRequestsPublic

Name Type Description
count integer
data Array<ProductionRequestPublic>

ProductionRequestsSummaryPublic

Name Type Description
count integer
data Array<ProductionRequestSummary>

ProductionRequestStatusKey

Type: string

ProductionRequestSummary

Name Type Description
assignee
assignee_id
created_at string(date-time)
download_status DownloadStatus
id string(uuid)
lifecycle_stage
outfit_generation_status
outfit_products_count integer
product_cover_image_url
product_id
product_ids Array<string(uuid)>
product_name
product_sku
product_wear
product_wear_id
production_archived boolean
production_kind ProductionKind
products Array<ProductPublic>
readiness ProductionRequestReadiness
reference_imgs_urls Array<string>
reference_media Array<MediaResourcePublic>
shooting_id string(uuid)
shooting_production_id string(uuid)
shooting_type_key
shot_status
shots Array<ShotSummary>
title
updated_at string(date-time)

ProductPlacement

Type: string

ProductPublic

Name Type Description
age_class
archived boolean
back_description
back_image_media
back_image_url
barcode
brand
brand_collection
brand_metadata
category
closure_type
color_code
color_name
color_swatch_media
colour
cover_image_media
cover_image_url
created_at string(date-time)
data_image_urls Array<string>
deleted_at
demo boolean
description
ecommerce_description
enabled boolean
exports_completed
exports_total
fit_type
gender ProductGender
id string(uuid)
in_store_date
incomplete boolean
ingest_job_id
integration_name
is_filler boolean
length_type
master_item_code
materials
name string
neckline
organization_id
owner_id string(uuid)
pattern
placement
product_family
product_type
product_type_id
product_wear
product_wear_id
public boolean
reference_images Array<string>
reference_images_media
season
shot_status
shot_status_production_request_id
shots Array<>
sku
sleeve_type
style_code
style_group_id
styling_slot StylingSlot
theme
type
updated_at string(date-time)
year
zone

ProductSearchFacets

Name Type Description
age_class
brands Array<string>
closure_type Array<string>
collections Array<string>
color_code Array<string>
color_name Array<string>
colour Array<string>
fit_type Array<string>
gender
length_type Array<string>
neckline Array<string>
pattern Array<string>
product_type
product_wear_id
seasons Array<string>
sleeve_type Array<string>
years Array<integer>

ProductSearchHitPublic

Name Type Description
barcode
brand
colour
master_item_code
name string
product_id string(uuid)
rank integer
sku

ProductSearchImageInput

Name Type Description
media_resource_id
url

ProductSearchPublic

Name Type Description
has_more boolean
results Array<ProductSearchHitPublic>

ProductSearchRequest

Name Type Description
exclude_product_ids Array<string(uuid)>
facets ProductSearchFacets
image
limit integer Maximum results returned for one search
query

ProductShootingStatus

Type: string

ProductsPublic

Name Type Description
count integer
created_at string(date-time)
data Array<ProductPublic>
id string(uuid)
updated_at string(date-time)

ProductSummaryRequest

Name Type Description
age_class
archived
brand
brand_collection
closure_type
color_code
color_name
colour
demo
enabled
fit_type
gender
incomplete
is_filler
is_public
length_type
neckline
pattern
product_type
product_wear_id
search
season
shooting_id
shot_statuses
sleeve_type
year

ProductSummaryResponse

Name Type Description
gender_counts
product_family_counts
product_type_counts
shot_status_counts
total integer

ProductUpdate

Name Type Description
age_class
back_description
back_image URL, base64 string, or MediaInput for back view image
barcode
brand
brand_collection
brand_metadata
category
closure_type
color_code
color_name
color_swatch Color swatch image for style variants
colour
cover_image URL, base64 string, or MediaInput for cover image
data_images DEPRECATED: Use reference_images instead
description
ecommerce_description
fit_type
gender
in_store_date
incomplete
is_filler Mark as filler product. Auto-detected from SKU only at creation; on update, left unchanged unless explicitly provided.
length_type
master_item_code
materials
name
neckline
organization_id Organization to transfer this product to
pattern
product_type_id
product_wear_id
public
reference_images List of reference image URLs, base64 strings, or MediaInputs to update
season
sku
sleeve_type
style_code
theme
type
year

PropertyValuesPublic

Name Type Description
count integer
data Array<string>
field string

PushFailureReason

Type: string

PushStatus

Type: string

QualityAssessmentStatus

Type: string

RevisionSource

Type: string

RoleName

Type: string

RolePublic

Name Type Description
description
id string(uuid)
name RoleName

SeasonsPublic

Name Type Description
count integer
data Array<string>

SetBaseImagePublic

Name Type Description
created_at string(date-time)
id string(uuid)
image_media
image_url
shot_type_id string(uuid)
subject_id string(uuid)
updated_at string(date-time)
variant_index integer

SetDesignPublic

Name Type Description
background_preset_id
base_images Array<SetBaseImagePublic>
created_at string(date-time)
deleted_at
description
id string(uuid)
is_draft boolean
name string
organization_id
owner_id string(uuid)
production_due_at
reference_images Array<SetReferenceImagePublic>
subject_portraits Array<SubjectPortraitPublic>
updated_at string(date-time)

SetReferenceImagePublic

Name Type Description
created_at string(date-time)
id string(uuid)
image_media
image_url
label
shot_type_id string(uuid)
updated_at string(date-time)

ShotPublic

Name Type Description
content_defs Array<ContentDefPublic>
created_at string(date-time)
current_revision_id
download_status DownloadStatus
id string(uuid)
pose_preset_id
production_request_id
revisions Array<ShotRevisionPublic>
rework_available integer
rework_used integer
shot_type
status ProductionRequestStatusKey
updated_at string(date-time)

ShotRevisionImagePublic

Name Type Description
autogenerated boolean
created_at string(date-time)
effective_image_url
id string(uuid)
image_media
image_url
notes
prediction_id
refine_id
shot_revision_id string(uuid)
sketch_image_media
sketch_image_url
source_type RevisionSource
updated_at string(date-time)

ShotRevisionPublic

Name Type Description
automatic_quality_assessment_status
created_at string(date-time)
display_name string
effective_image_url
id string(uuid)
images Array<ShotRevisionImagePublic>
notes
owner
owner_id
post_prod_fallback_reason
post_prod_source
previous_revision_id
push_records Array<ExternalImagePushPublic>
push_status Aggregate push status across all integrations. Returns: None (no pushes), PENDING, IN_PROGRESS, AWAITING_CONFIRMATION, COMPLETED, or FAILED Priority: FAILED > IN_PROGRESS > AWAITING_CONFIRMATION > PENDING > COMPLETED
shot_id string(uuid)
shot_revision_status
shot_status ProductionRequestStatusKey
updated_at string(date-time)
version integer

ShotRevisionStatus

Type: string

ShotsPublic

Name Type Description
count integer
data Array<ShotPublic>

ShotStatusFilter

Type: string

ShotSummary

Name Type Description
current_revision_id
download_status DownloadStatus
id string(uuid)
push_error_message
push_failure_reason
push_integration_name
push_status
shot_type
status ProductionRequestStatusKey

ShotTypeFraming

Type: string

ShotTypePublic

Name Type Description
core_focus boolean
created_at string(date-time)
default_shot_type
deleted_at
file_naming_convention
framing
id string(uuid)
margins
margins_key
name string
organization_id
owner_id
prompt
prompt_builder_section
public boolean
reference_image
reference_image_url
requires_subject boolean
shot_type_prompt_instruction
shot_type_ref_image_url
updated_at string(date-time)
view_angle ViewAngle

StylingSlot

Type: string

SubjectPortraitPublic

Name Type Description
created_at string(date-time)
id string(uuid)
image_media
subject_id string(uuid)
updated_at string(date-time)

TaskStatus-Output

Type: string

UserSummary

Name Type Description
email string()
full_name
id string(uuid)
role

ValidationError

Name Type Description
ctx
input
loc Array<>
msg string
type string

ViewAngle

Type: string

YearsPublic

Name Type Description
count integer
data Array<integer>

Security schemes

Name Type Scheme Description
OAuth2PasswordBearer oauth2