{"openapi":"3.0.1","info":{"title":"Canto PIM","description":"\n[Canto APIs](https://api.canto.com) enable seamless synchronization between the PIM + DAM and external systems that rely on accurate, up-to-date product content. \nThe API outlined here provides programmatic access to Canto’s Product Hub (PIM). The Product Hub API allows authorized systems to create, retrieve, update, and manage rich product data for use across digital channels, e-commerce platforms, and other target or source systems. \n \nKey Capabilities
\nThe Canto Product Hub API enables full product data management:\n1. Product Record Management: Create, read, update, and delete product entries including structured metadata, taxonomy, categories, and references.\n2. Attribute & Schema Configuration: Access and manage custom product attributes and classification structures\n3. Webhooks: Trigger updates or publish product datasets to downstream systems and integration pipelines.\n \nAPI Design\n- The PIM API adheres to RESTful principles, supporting standard HTTP methods (GET, POST, PUT, PATCH, DELETE).\n- JSON is the default payload format for both requests and responses.\n\nHTTP Status Code Conventions
\nBelow are general HTTP codes applicable across most endpoints:
\n- 200, 201, 204 – Successful operations (retrieval, creation, update, deletion).\n- 400 – Bad request. Input payloads did not conform to the expected schema or required parameters were missing.\n- 401 / 403 – Authentication or authorization failed.\n- 404 – The route or resource was not found.\n- 409 – Conflict in resource state (e.g., duplicate product identifier).\n- 429 - Too many requests. See Rate Limits below.\n- 500 – An unexpected server error occurred.\n- 502 / 503 / 504 – Infrastructure issues such as load balancer, service unavailability, or timeouts.\n\nAPI Rate Limits
\nRate limits are how many API calls you can make in a given time frame. If your call exceeds the pre-defined rate limit, you will run into a “429” http error-code. After which, you will need to wait until you can make another API call.\n\nPIM API Rate Limit: 5 requests/second\n","version":"v1.0.1"},"servers":[{"url":"https://{tenantSubdomain}.{region}/api/v1/pim/","variables":{"tenantSubdomain":{"default":"demo"},"region":{"enum":["canto.com","canto.global","canto.de","au.canto.com","ca.canto.com"],"default":"canto.com"}}}],"tags":[{"name":"import_settings","description":" API endpoints for configuring how CSV imports should be processed.\n This includes:\n - Mapping CSV headers to product attributes\n - Configuring how product variations should be handled\n - Setting up category and type assignments\n"},{"name":"imports","description":" API endpoint for importing products from a CSV file.\n Supports multipart form data uploads with import configuration.\n"},{"name":"product_channel_templates","description":"Product Channel Templates define the structure and configuration for importing and exporting product data into and out of Canto PIM.\n"},{"name":"product_channel_template_products","description":"Manage products associated with product channel templates.\n"},{"name":"bulk_products_channel_templates","description":"Perform bulk products operation on a Product Channel Template\n \nThese endpoints allow you to add or remove products that are associated with a specific channel template in bulk.\n"},{"name":"bulk_products_catalogs","description":"Perform bulk products operation on a Product Catalog\n \nThese endpoints allow you to add or remove products that are associated with a specific product catalog in bulk.\n"},{"name":"product_share_links","description":"Product Share Links allow you to create shareable links for products that can be accessed\noutside the PIM system. These links can have custom names and optionally expire.\n"},{"name":"webhooks","description":"Webhooks are used to notify your application when certain events occur within the system.\nThey can be configured to send a POST request to a specified URL when a specific event happens.\nAvailable resources and the events they support:\n- product\n - created\n - updated\n - deleted\n- variant\n - created\n - updated\n - deleted\n- import\n - started\n - completed\n - failed\n\nYou can validate the payload using the +X-Webhook-Signature+ header. It's a SHA256 hash of the payload, signed with the secret key.\n"},{"name":"filter","description":" API endpoints for filtering product attributes.\n Allows filtering and retrieving product attributes based on various criteria including:\n - Exact value matches\n - Partial text matches\n - Multiple value matches\n - Negative matches\n - Product type filtering\n - Product channel template filtering\n"}],"paths":{"/dimensions":{"get":{"tags":["dimensions"],"summary":"Get Dimensions","description":" Retrieve a list of all dimensions\n","operationId":"get_api_v1_dimensions","responses":{"200":{"description":"Successfully fetched Dimensions","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"type":"object","properties":{"dimensions":{"type":"array","description":"Array of Dimensions","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["dimensions"],"summary":"Create Dimension","description":" Create a new product dimension\n","operationId":"post_api_v1_dimensions","requestBody":{"content":{"application/json":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Dimension Name"}}}},"multipart/form-data":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Dimension Name"}}}}},"required":true},"responses":{"201":{"description":"Successfully created Dimension","content":{"*/*":{"schema":{"$ref":"#/components/schemas/dimension"}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating your Dimension","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/dimensions/{id}":{"get":{"tags":["dimensions"],"summary":"Get Dimension","description":" Fetch a specific dimension by ID\n","operationId":"get_api_v1_dimensions_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Dimension","content":{"*/*":{"schema":{"$ref":"#/components/schemas/dimension"}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Dimension ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"put":{"tags":["dimensions"],"summary":"Update Dimension","description":" Update an existing dimension\n","operationId":"put_api_v1_dimensions_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dimension Name"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dimension Name"}}}}}},"responses":{"200":{"description":"Successfully updated Dimension","content":{"*/*":{"schema":{"$ref":"#/components/schemas/dimension"}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Dimension ID not found","content":{}},"422":{"description":"There was an error updating your Dimension","content":{}},"500":{"description":"Something went wrong","content":{}}}},"patch":{"tags":["dimensions"],"summary":"Update Dimension","description":" Update specific fields of an existing dimension\n","operationId":"patch_api_v1_dimensions_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dimension Name"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dimension Name"}}}}}},"responses":{"200":{"description":"Successfully updated Dimension","content":{"*/*":{"schema":{"$ref":"#/components/schemas/dimension"}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Dimension ID not found","content":{}},"422":{"description":"There was an error updating your Dimension","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/import_settings":{"post":{"tags":["import_settings"],"summary":"Configure import mappings and variation formats","description":" Creates or retrieves channel template and format settings based on provided mappings.\n\n This endpoint helps configure how CSV data will be imported by:\n 1. Mapping CSV headers to product attributes\n 2. Defining how variations should be grouped\n 3. Specifying dimension and option columns\n\n Returns IDs needed for the actual import process.\n","operationId":"post_api_v1_import_settings","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"custom_attribute_mappings[header_name]":{"type":"number","description":"Key is CSV header, value is product custom attribute ID"},"variation_formatting[group_by][columns]":{"type":"array","description":"Column headers to group by","items":{"type":"string"}},"variation_formatting[group_by][parent_key]":{"type":"string","description":"Column header for parent SKU"},"variation_formatting[group_by][child_key]":{"type":"string","description":"Column header for child SKU reference"},"variation_formatting[dimensions][primary][dimension]":{"type":"string","description":"Dimension column header"},"variation_formatting[dimensions][primary][dimension_option]":{"type":"string","description":"Dimension option column header"},"variation_formatting[dimensions][secondary][dimension]":{"type":"string","description":"Dimension column header"},"variation_formatting[dimensions][secondary][dimension_option]":{"type":"string","description":"Dimension option column header"},"variation_formatting[dimensions][tertiary][dimension]":{"type":"string","description":"Dimension column header"},"variation_formatting[dimensions][tertiary][dimension_option]":{"type":"string","description":"Dimension option column header"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"custom_attribute_mappings[header_name]":{"type":"number","description":"Key is CSV header, value is product custom attribute ID"},"variation_formatting[group_by][columns]":{"type":"array","description":"Column headers to group by","items":{"type":"string"}},"variation_formatting[group_by][parent_key]":{"type":"string","description":"Column header for parent SKU"},"variation_formatting[group_by][child_key]":{"type":"string","description":"Column header for child SKU reference"},"variation_formatting[dimensions][primary][dimension]":{"type":"string","description":"Dimension column header"},"variation_formatting[dimensions][primary][dimension_option]":{"type":"string","description":"Dimension option column header"},"variation_formatting[dimensions][secondary][dimension]":{"type":"string","description":"Dimension column header"},"variation_formatting[dimensions][secondary][dimension_option]":{"type":"string","description":"Dimension option column header"},"variation_formatting[dimensions][tertiary][dimension]":{"type":"string","description":"Dimension column header"},"variation_formatting[dimensions][tertiary][dimension_option]":{"type":"string","description":"Dimension option column header"}}}}}},"responses":{"200":{"description":"Template and format IDs for use in import","content":{"*/*":{"schema":{"required":["channel_format_id","channel_template_id"],"type":"object","properties":{"channel_template_id":{"type":"number","description":"ID of the configured channel template"},"channel_format_id":{"type":"number","description":"ID of the configured format"}},"additionalProperties":false}}}},"404":{"description":"Template or format not found","content":{}},"422":{"description":"Invalid mapping configuration","content":{}},"500":{"description":"Internal server error","content":{}}}}},"/imports":{"post":{"tags":["imports"],"summary":"Import products from CSV","description":" Creates a new product import job from a CSV file.\n\n The CSV file should be uploaded as multipart form data along with\n the channel template and channel format IDs for processing the import.\n","operationId":"post_api_v1_imports","requestBody":{"content":{"application/json":{"schema":{"required":["channel_format_id","channel_template_id","file"],"type":"object","properties":{"file":{"type":"string","description":"The CSV file to import (multipart form data)"},"channel_template_id":{"type":"string","description":"Channel template ID that contains the custom attribute mappings"},"channel_format_id":{"type":"string","description":"Channel format ID that contains the variation format settings"},"product_type_id":{"type":"string","description":"Product type ID to assign to imported products"},"product_category_id":{"type":"string","description":"Product category ID to assign to imported products"},"product_category_header":{"type":"string","description":"Product category header in CSV to use to dynamically assign the product category (max 255 chars)"},"product_category_id_header":{"type":"string","description":"Product category ID header in CSV to use to dynamically assign the product category (max 255 chars)"}}}},"multipart/form-data":{"schema":{"required":["channel_format_id","channel_template_id","file"],"type":"object","properties":{"file":{"type":"string","description":"The CSV file to import (multipart form data)"},"channel_template_id":{"type":"string","description":"Channel template ID that contains the custom attribute mappings"},"channel_format_id":{"type":"string","description":"Channel format ID that contains the variation format settings"},"product_type_id":{"type":"string","description":"Product type ID to assign to imported products"},"product_category_id":{"type":"string","description":"Product category ID to assign to imported products"},"product_category_header":{"type":"string","description":"Product category header in CSV to use to dynamically assign the product category (max 255 chars)"},"product_category_id_header":{"type":"string","description":"Product category ID header in CSV to use to dynamically assign the product category (max 255 chars)"}}}}},"required":true},"responses":{"400":{"description":"Missing required parameters or invalid file format","content":{}},"404":{"description":"Template or format not found","content":{}},"422":{"description":"Invalid import configuration","content":{}}}}},"/product_catalogs":{"get":{"tags":["product_catalogs"],"summary":"Get Product Catalogs","description":" Retrieve a list of all product catalogs\n","operationId":"get_api_v1_product_catalogs","responses":{"200":{"description":"Successfully fetched Product Catalogs","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"required":["product_catalogs"],"type":"object","properties":{"product_catalogs":{"type":"array","description":"Array of Product Catalogs","items":{"type":"string"}}},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["product_catalogs"],"summary":"Create Product Catalog","description":" Create a new product catalog\n","operationId":"post_api_v1_product_catalogs","requestBody":{"content":{"application/json":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Product Catalog Name"},"summary":{"type":"string","description":"Product Catalog Summary"}}}},"multipart/form-data":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Product Catalog Name"},"summary":{"type":"string","description":"Product Catalog Summary"}}}}},"required":true},"responses":{"200":{"description":"Successfully created Product Catalog","content":{"*/*":{"schema":{"$ref":"#/components/schemas/catalog"}}}},"400":{"description":"The request parameters were invalid. References to `nil` means empty string or `null` value","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating your Product Catalog","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_catalogs/{id}":{"get":{"tags":["product_catalogs"],"summary":"Get Product Catalog","description":" Fetch a specific product catalog by ID\n","operationId":"get_api_v1_product_catalogs_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Product Catalog","content":{"*/*":{"schema":{"$ref":"#/components/schemas/catalog"}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Catalog ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"put":{"tags":["product_catalogs"],"summary":"Update Product Catalog","description":" Completely update an existing product catalog\n","operationId":"put_api_v1_product_catalogs_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Catalog Name"},"summary":{"type":"string","description":"Product Catalog Summary"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Catalog Name"},"summary":{"type":"string","description":"Product Catalog Summary"}}}}}},"responses":{"200":{"description":"Successfully updated Product Catalog","content":{"*/*":{"schema":{"$ref":"#/components/schemas/catalog"}}}},"400":{"description":"The request parameters were invalid. References to `nil` means empty string or `null` value","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Catalog ID not found","content":{}},"422":{"description":"There was an error updating your Product Catalog","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["product_catalogs"],"summary":"Delete Product Catalog","description":" Delete a specific product catalog\n","operationId":"delete_api_v1_product_catalogs_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"Successfully Deleted Product Catalog","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Catalog ID not found","content":{}},"422":{"description":"There was an error throwing your Product Catalog in the trash","content":{}},"500":{"description":"Something went wrong","content":{}}}},"patch":{"tags":["product_catalogs"],"summary":"Update Product Catalog","description":" Update specifics of a product catalog\n","operationId":"patch_api_v1_product_catalogs_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Catalog Name"},"summary":{"type":"string","description":"Product Catalog Summary"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Catalog Name"},"summary":{"type":"string","description":"Product Catalog Summary"}}}}}},"responses":{"200":{"description":"Successfully updated Product Catalog","content":{"*/*":{"schema":{"$ref":"#/components/schemas/catalog"}}}},"400":{"description":"The request parameters were invalid. References to `nil` means empty string or `null` value","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Catalog ID not found","content":{}},"422":{"description":"There was an error updating your Product Catalog","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_channel_templates":{"get":{"tags":["product_channel_templates"],"summary":"Get Product Channel Templates","description":" Retrieve a list of product channel templates with optional filtering\n","operationId":"get_api_v1_product_channel_templates","parameters":[{"name":"product_channel_id","in":"query","description":"Product Channel ID","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"Type of Product Channel. E.g. \"import\" or \"export\"","required":false,"schema":{"type":"string","enum":["import","export"]}},{"name":"preset_name","in":"query","description":"If you only want to fetch preset templates, include this parameter. This parameter will override the type parameter and return only preset templates associated to the preset with the passed name","required":false,"schema":{"type":"string","enum":["Shopify"]}}],"responses":{"200":{"description":"Successfully fetched Product Channel Templates","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"$ref":"#/components/schemas/product_channel_templates_response"},"example":{"product_channel_templates":[{"id":1,"name":"First Export Template","product_channel_id":1,"file_name_export_format":"Product_Image_[name]_[sku]_[attribute_1].jpg","image_export_size":"500px","created_at":"2021-01-01T00:00:00.000Z","updated_at":"2021-01-01T00:00:00.000Z"},{"id":2,"name":"Import Template","product_channel_id":2,"file_name_export_format":null,"image_export_size":null,"created_at":"2021-01-01T00:00:00.000Z","updated_at":"2021-01-01T00:00:00.000Z"},{"id":3,"name":"Shopify Template","product_channel_id":1,"file_name_export_format":null,"image_export_size":null,"created_at":"2021-01-01T00:00:00.000Z","updated_at":"2021-01-01T00:00:00.000Z"}]}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["product_channel_templates"],"summary":"Create Product Channel Template","description":" Create a new product channel template\n","operationId":"post_api_v1_product_channel_templates","requestBody":{"content":{"application/json":{"schema":{"required":["name","product_channel_id"],"type":"object","properties":{"name":{"type":"string","description":"Product Channel Template Name"},"product_channel_id":{"type":"number","description":"Product Channel ID"},"custom_attribute_mappings":{"type":"array","description":"Mapping of Channel Template Headers to Product Custom Attributes","items":{"$ref":"#/components/schemas/custom_attribute_mapping"}}}},"example":{"name":"New Template","product_channel_id":10,"custom_attribute_mappings":[{"name":"Name","product_custom_attribute_id":17,"required":false},{"name":"SKU","product_custom_attribute_id":18,"required":true},{"name":"Image","product_custom_attribute_id":49,"required":false},{"name":"Description","product_custom_attribute_id":25,"required":false}]}}},"required":true},"responses":{"201":{"description":"Successfully created Product Channel Template","content":{"*/*":{"schema":{"$ref":"#/components/schemas/product_channel_template"},"example":{"id":8,"name":"New Template","product_channel_id":10,"file_name_export_format":null,"image_export_size":null,"created_at":"2024-12-11T17:45:22.123Z","updated_at":"2024-12-11T17:45:22.123Z","custom_attribute_mappings":[{"name":"Name","product_custom_attribute_id":17,"required":false},{"name":"SKU","product_custom_attribute_id":18,"required":true},{"name":"Image","product_custom_attribute_id":49,"required":false},{"name":"Description","product_custom_attribute_id":25,"required":false}]}}}},"400":{"description":"Invalid request parameters","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating your Product Channel Template. E.g. invalid custom attribute mapping configuration","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_channel_templates/{product_channel_template_id}":{"get":{"tags":["product_channel_templates"],"summary":"Get Product Channel Template","description":" Retrieve a specific product channel template by ID\n","operationId":"get_api_v1_product_channel_templates_id","parameters":[{"name":"product_channel_template_id","in":"path","description":"Product Channel Template ID","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Product Channel Template","content":{"*/*":{"schema":{"$ref":"#/components/schemas/product_channel_template"},"example":{"id":7,"name":"Export","product_channel_id":10,"file_name_export_format":null,"image_export_size":null,"created_at":"2024-12-11T14:14:34.189Z","updated_at":"2024-12-11T14:14:34.189Z","custom_attribute_mappings":[{"name":"Name","product_custom_attribute_id":17,"required":true},{"name":"SKU","product_custom_attribute_id":18,"required":true},{"name":"Image","product_custom_attribute_id":49,"required":false},{"name":"Unmapped Attribute","product_custom_attribute_id":null,"required":false}]}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Channel Template not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"put":{"tags":["product_channel_templates"],"summary":"Update Product Channel Template","description":" Update an existing product channel template\n","operationId":"put_api_v1_product_channel_templates_id","parameters":[{"name":"product_channel_template_id","in":"path","description":"Product Channel Template ID","required":true,"schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Channel Template Name"},"custom_attribute_mappings":{"type":"array","description":"Mapping of Channel Template Headers to Product Custom Attributes","items":{"$ref":"#/components/schemas/custom_attribute_mapping"}}}},"example":{"name":"Updated Template","custom_attribute_mappings":[{"name":"Updated Name","product_custom_attribute_id":17,"required":true},{"name":"Updated SKU","product_custom_attribute_id":18,"required":true},{"name":"Updated Image","product_custom_attribute_id":49,"required":false},{"name":"Updated Description","product_custom_attribute_id":25,"required":false}]}}}},"responses":{"200":{"description":"Successfully updated Product Channel Template","content":{"*/*":{"schema":{"$ref":"#/components/schemas/product_channel_template"},"example":{"id":7,"name":"Updated Template","product_channel_id":10,"file_name_export_format":"Product_[name]_[sku].jpg","image_export_size":null,"created_at":"2024-12-11T14:14:34.189Z","updated_at":"2024-12-11T16:30:15.456Z","custom_attribute_mappings":[{"name":"Updated Name","product_custom_attribute_id":17,"required":true},{"name":"Updated SKU","product_custom_attribute_id":18,"required":true},{"name":"Updated Image","product_custom_attribute_id":49,"required":false},{"name":"Updated Description","product_custom_attribute_id":25,"required":false}]}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Channel Template not found","content":{}},"422":{"description":"There was an error updating your Product Channel Template. E.g. invalid custom attribute mapping configuration","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["product_channel_templates"],"summary":"Destroy Product Channel Template","description":" Delete an existing product channel template\n","operationId":"delete_api_v1_product_channel_templates_id","parameters":[{"name":"product_channel_template_id","in":"path","description":"Product Channel Template ID","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"Successfully deleted Product Channel Template","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Channel Template ID not found","content":{}},"422":{"description":"There was an error deleting the Product Channel Template","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_channel_templates/{product_channel_template_id}/products":{"get":{"tags":["product_channel_template_products"],"summary":"Get Product Channel Template Products","description":" List products in a specific product channel template\n","operationId":"get_api_v1_product_channel_templates_product_channel_template_id_products","parameters":[{"name":"product_channel_template_id","in":"path","description":"Product Channel Template ID","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Products","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"type":"object","properties":{"products":{"type":"array","description":"Array of Products in this Channel Template","items":{"type":"object","properties":{"id":{"type":"integer","description":"Product ID"},"product_category_id":{"type":"integer","description":"Product category ID"},"product_type_id":{"type":"integer","description":"Product type ID"},"has_variants":{"type":"boolean","description":"Whether the product has variants"},"dimension1_id":{"type":"integer","nullable":true,"description":"First dimension ID"},"dimension2_id":{"type":"integer","nullable":true,"description":"Second dimension ID"},"dimension3_id":{"type":"integer","nullable":true,"description":"Third dimension ID"},"created_at":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp"},"user_id":{"type":"string","description":"User ID associated with the product"},"product_custom_attributes":{"type":"array","description":"Array of general custom attributes for the product","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Custom attribute ID"},"product_attribute_group_id":{"type":"integer","nullable":true,"description":"Attribute group ID"}}}},"variants":{"type":"array","description":"Array of product variants","items":{"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","description":"Dimension options for the variant","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}}}}}}}}}},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Channel Template ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["product_channel_template_products"],"summary":"Add a single Product to a Channel Template","description":" Add a single Product to a Channel Template. If you wish to add multiple products, use the bulk endpoint instead.\n","operationId":"post_api_v1_product_channel_templates_product_channel_template_id_products","parameters":[{"name":"product_channel_template_id","in":"path","description":"Product Channel Template ID","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["product_id"],"type":"object","properties":{"product_id":{"type":"integer","description":"Product ID to add to the channel template","example":1}}}}},"required":true},"responses":{"200":{"description":"Successfully added the product to the channel template","content":{"*/*":{"schema":{"type":"object","properties":{"id":{"type":"integer","description":"Product ID"},"product_category_id":{"type":"integer","description":"Product category ID"},"product_type_id":{"type":"integer","description":"Product type ID"},"has_variants":{"type":"boolean","description":"Whether the product has variants"},"dimension1_id":{"type":"integer","nullable":true,"description":"First dimension ID"},"dimension2_id":{"type":"integer","nullable":true,"description":"Second dimension ID"},"dimension3_id":{"type":"integer","nullable":true,"description":"Third dimension ID"},"created_at":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp"},"user_id":{"type":"string","description":"User ID associated with the product"},"product_custom_attributes":{"type":"array","description":"Array of general custom attributes for the product","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Custom attribute ID"},"product_attribute_group_id":{"type":"integer","nullable":true,"description":"Attribute group ID"},"variants":{"type":"array","description":"Array of product variants","items":{"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","description":"Dimension options for the variant","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}}}}}}}}}},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product or Channel Template ID not found","content":{}},"422":{"description":"There was an error adding the product to the channel template","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_channel_templates/{product_channel_template_id}/products/{id}":{"get":{"tags":["product_channel_template_products"],"summary":"Get Product Channel Template Product","description":" Retrieve a specific product from a product channel template\n","operationId":"get_api_v1_product_channel_templates_product_channel_template_id_products_id","parameters":[{"name":"product_channel_template_id","in":"path","description":"Product Channel Template ID","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","description":"Product ID","required":true,"schema":{"type":"number"}},{"name":"include_share_link","in":"query","description":"Include Share Link URL in response TODO: still defining","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Successfully fetched Product from Channel Template","content":{"*/*":{"schema":{"type":"object","properties":{"id":{"type":"integer","example":1},"product_category_id":{"type":"integer","example":1},"product_type_id":{"type":"integer","example":1},"has_variants":{"type":"boolean","example":true},"dimension1_id":{"type":"integer","example":1},"dimension2_id":{"type":"integer","example":2},"dimension3_id":{"type":"integer","example":3},"created_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"user_id":{"type":"string","example":"123e4567e89b12d3a456"},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string","nullable":true},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true},"asset_ids":{"type":"array","items":{"type":"string"}}}},"example":[{"name":"name","value":"Product 1","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"SKU1","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"10.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}]},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"secondary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"tertiary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true}}},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true}}}}}},"example":[{"id":5,"dimension_options":{"primary":{"name":"Color","value":"Red","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Size","value":"Small","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Product 1 - Red/Small","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"1-red-small","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"11.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1}]},{"id":6,"dimension_options":{"primary":{"name":"Color","value":"Blue","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Size","value":"Large","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Product 1 - Blue/Large","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"1-blue-large","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"12.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1}]}]},"product_assets":{"type":"array","items":{"type":"object","properties":{"asset_id":{"type":"string"},"product_ids":{"type":"array","items":{"type":"integer"}}}},"example":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1,2,3,4,5]}]}}}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Channel Template or Product ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["product_channel_template_products"],"summary":"Remove a single Product from a Channel Template","description":" Remove a single Product from a Channel Template. If you wish to remove multiple products, use the bulk endpoint instead.\n","operationId":"delete_api_v1_product_channel_templates_product_channel_template_id_products_id","parameters":[{"name":"product_channel_template_id","in":"path","description":"Product Channel Template ID","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","description":"Product ID","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"Successfully removed product from the channel template","content":{}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product or Channel Template ID not found","content":{}},"422":{"description":"There was an error removing product from the channel template","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_channel_templates/{product_channel_template_id}/export":{"post":{"tags":["product_channel_templates"],"summary":"Export Product Channel Template","description":" Export products from a specific product channel template.\n","operationId":"post_api_v1_product_channel_templates_product_channel_template_id_export","parameters":[{"name":"product_channel_template_id","in":"path","description":"Product Channel Template ID","required":true,"schema":{"type":"number"}}],"responses":{"201":{"description":"Your channel tempalte export is being processed.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Your channel template export is being processed. You will receive an email when it is complete"}},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Channel Template ID not found","content":{}},"422":{"description":"A channel template export is already in the works. Please try again later.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"A channel template export is already in the works. Please try again later."}},"additionalProperties":false}}}},"500":{"description":"Something went wrong","content":{}}}}},"/bulk/products/channel_templates":{"post":{"tags":["bulk_products_channel_templates"],"summary":"Perform bulk products operation on a Product Channel Template","description":" Perform bulk products operation on a Product Channel Template\n","operationId":"post_api_v1_bulk_products_channel_templates","requestBody":{"content":{"application/json":{"schema":{"required":["operation","product_channel_template_id","product_ids"],"type":"object","properties":{"operation":{"type":"string","description":"The operation to perform","enum":["add","remove"],"example":"add"},"product_channel_template_id":{"type":"integer","description":"Product Channel Template ID","example":1},"product_ids":{"type":"array","description":"Array of Product IDs to add to or remove from the template","items":{"type":"integer"},"example":[1,2,3,4,5]}}},"example":{"operation":"add","product_channel_template_id":1,"product_ids":[1,2,3,4,5]}}},"required":true},"responses":{"200":{"description":"Bulk products operation on Product Channel Template successful","content":{"*/*":{"schema":{"required":["products"],"type":"object","properties":{"products":{"type":"array","description":"Array of Products","items":{"type":"object","properties":{"id":{"type":"integer","description":"Product ID"},"product_category_id":{"type":"integer","description":"Product category ID"},"product_type_id":{"type":"integer","description":"Product type ID"},"has_variants":{"type":"boolean","description":"Whether the product has variants"},"dimension1_id":{"type":"integer","nullable":true,"description":"First dimension ID"},"dimension2_id":{"type":"integer","nullable":true,"description":"Second dimension ID"},"dimension3_id":{"type":"integer","nullable":true,"description":"Third dimension ID"},"created_at":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp"},"user_id":{"type":"string","description":"User ID associated with the product"},"product_custom_attributes":{"type":"array","description":"Array of custom attributes for the product","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Custom attribute ID"},"product_attribute_group_id":{"type":"integer","nullable":true,"description":"Attribute group ID"}}}},"variants":{"type":"array","description":"Array of product variants","items":{"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","description":"Dimension options for the variant","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}}},"product_custom_attributes":{"type":"array","description":"Array of custom attributes for the variant","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Custom attribute ID"},"product_attribute_group_id":{"type":"integer","nullable":true,"description":"Attribute group ID"}}}}},"additionalProperties":false},"additionalProperties":false}}}}},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Channel Template ID not found","content":{}},"422":{"description":"There was an error with your bulk products operation on the channel template","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/bulk/products/product_catalogs":{"post":{"tags":["bulk_products_catalogs"],"summary":"Perform bulk products operation on a Product Catalog","description":" Perform bulk products operation on a Product Catalog\n","operationId":"post_api_v1_bulk_products_catalogs","requestBody":{"content":{"application/json":{"schema":{"required":["operation","product_catalog_id","product_ids"],"type":"object","properties":{"operation":{"type":"string","description":"The operation to perform","enum":["add","remove"],"example":"add"},"product_catalog_id":{"type":"integer","description":"Product Catalog ID","example":1},"product_ids":{"type":"array","description":"Array of Product IDs to add to or remove from the catalog","items":{"type":"integer"},"example":[1,2,3,4,5]}}},"example":{"operation":"add","product_catalog_id":1,"product_ids":[1,2,3,4,5]}}},"required":true},"responses":{"200":{"description":"Bulk products operation on Product Catalog successful","content":{"*/*":{"schema":{"required":["products"],"type":"object","properties":{"products":{"type":"array","description":"Array of Products","items":{"type":"object","properties":{"id":{"type":"integer","description":"Product ID"},"product_category_id":{"type":"integer","description":"Product category ID"},"product_type_id":{"type":"integer","description":"Product type ID"},"has_variants":{"type":"boolean","description":"Whether the product has variants"},"dimension1_id":{"type":"integer","nullable":true,"description":"First dimension ID"},"dimension2_id":{"type":"integer","nullable":true,"description":"Second dimension ID"},"dimension3_id":{"type":"integer","nullable":true,"description":"Third dimension ID"},"created_at":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp"},"user_id":{"type":"string","description":"User ID associated with the product"},"product_custom_attributes":{"type":"array","description":"Array of custom attributes for the product","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Custom attribute ID"},"product_attribute_group_id":{"type":"integer","nullable":true,"description":"Attribute group ID"}}}},"variants":{"type":"array","description":"Array of product variants","items":{"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","description":"Dimension options for the variant","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}}},"product_custom_attributes":{"type":"array","description":"Array of custom attributes for the variant","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Custom attribute ID"},"product_attribute_group_id":{"type":"integer","nullable":true,"description":"Attribute group ID"}}}}},"additionalProperties":false},"additionalProperties":false}}}}},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Catalog ID not found","content":{}},"422":{"description":"There was an error with your bulk products operation on the catalog","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_categories":{"get":{"tags":["product_categories"],"summary":"Get Product Categories","description":" List all available product categories\n","operationId":"get_api_v1_product_categories","responses":{"200":{"description":"Successfully fetched Product Categories","content":{"*/*":{"schema":{"required":["product_categories"],"type":"object","properties":{"product_categories":{"type":"array","description":"Array of Product Categories","items":{"type":"string"}}},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_categories/{id}":{"get":{"tags":["product_categories"],"summary":"Get Product Category","description":" Get details for a specific product category\n","operationId":"get_api_v1_product_categories_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Product Category","content":{"*/*":{"schema":{"$ref":"#/components/schemas/category"}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Category ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_custom_attributes":{"get":{"tags":["product_custom_attributes"],"summary":"Get Product Custom Attributes","description":" Retrieve all custom attributes defined in the Product Hub\n","operationId":"get_api_v1_product_custom_attributes","parameters":[{"name":"data_type","in":"query","description":"If set, only product custom attributes with the passed value for `data_type` will be returned","schema":{"type":"string","enum":["text","number","date","image"]}}],"responses":{"200":{"description":"Successfully fetched Custom attributes","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"required":["product_custom_attributes"],"type":"object","properties":{"product_custom_attributes":{"type":"array","description":"Array of Product Custom Attributes","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["product_custom_attributes"],"summary":"Create Product Custom Attribute","description":" Create a new custom attribute\n","operationId":"post_api_v1_product_custom_attributes","requestBody":{"content":{"application/json":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Product Custom Attribute Name"}}}},"multipart/form-data":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Product Custom Attribute Name"}}}}},"required":true},"responses":{"200":{"description":"Successfully created Product Custom Attribute","content":{"*/*":{"schema":{"required":["data_type","id","name","position","product_attribute_group_id"],"type":"object","properties":{"id":{"type":"number","description":"Product Custom Attribute ID"},"name":{"type":"string","description":"Product Custom Attribute Name"},"data_type":{"type":"string","description":"Product Custom Attribute Data type","enum":["text","number","date","image"]},"product_attribute_group_id":{"type":"number","description":"Product Custom Attribute Group ID"},"position":{"type":"number","description":"Product Custom Attribute position within its group"}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating your Type","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_custom_attributes/{id}":{"get":{"tags":["product_custom_attributes"],"summary":"Get Product Custom Attribute","description":" Get a specific custom attribute by ID.\n","operationId":"get_api_v1_product_custom_attributes_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Product Custom Attribute","content":{"*/*":{"schema":{"required":["data_type","id","position","product_attribute_group_id"],"type":"object","properties":{"id":{"type":"number","description":"Product Custom Attribute ID"},"name":{"type":"string","description":"Product Custom Attribute Name"},"data_type":{"type":"string","description":"Product Custom Attribute Data type","enum":["text","number","date","image"]},"product_attribute_group_id":{"type":"number","description":"Product Custom Attribute Group ID"},"position":{"type":"number","description":"Product Custom Attribute position within its group"}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Custom Attribute ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"put":{"tags":["product_custom_attributes"],"summary":"Update Product Custom Attribute","description":" Update a custom attribute\n","operationId":"put_api_v1_product_custom_attributes_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Custom Attribute Name"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Custom Attribute Name"}}}}}},"responses":{"200":{"description":"Successfully updated Product Custom Attribute","content":{"*/*":{"schema":{"required":["data_type","id","position","product_attribute_group_id"],"type":"object","properties":{"id":{"type":"number","description":"Product Custom Attribute ID"},"name":{"type":"string","description":"Product Custom Attribute Name"},"data_type":{"type":"string","description":"Product Custom Attribute Data type","enum":["text","number","date","image"]},"product_attribute_group_id":{"type":"number","description":"Product Custom Attribute Group ID"},"position":{"type":"number","description":"Product Custom Attribute position within its group"}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Custom Attribute ID not found","content":{}},"422":{"description":"There was an error updating your Product Custom Attribute","content":{}},"500":{"description":"Something went wrong","content":{}}}},"patch":{"tags":["product_custom_attributes"],"summary":"Update Product Custom Attribute","description":" Update a custom attribute\n","operationId":"patch_api_v1_product_custom_attributes_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Custom Attribute Name"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Custom Attribute Name"}}}}}},"responses":{"200":{"description":"Successfully updated Product Custom Attribute","content":{"*/*":{"schema":{"required":["data_type","id","position","product_attribute_group_id"],"type":"object","properties":{"id":{"type":"number","description":"Product Custom Attribute ID"},"name":{"type":"string","description":"Product Custom Attribute Name"},"data_type":{"type":"string","description":"Product Custom Attribute Data type","enum":["text","number","date","image"]},"product_attribute_group_id":{"type":"number","description":"Product Custom Attribute Group ID"},"position":{"type":"number","description":"Product Custom Attribute position within its group"}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Custom Attribute ID not found","content":{}},"422":{"description":"There was an error updating your Product Custom Attribute","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_share_links":{"get":{"tags":["product_share_links"],"summary":"Get Product Share Links","description":" List all shareable links created for product pages\n","operationId":"get_api_v1_product_share_links","responses":{"200":{"description":"List of product Share Links","content":{"*/*":{"schema":{"required":["product_share_links"],"type":"object","properties":{"product_share_links":{"type":"array","description":"Array of Product Share Links","items":{"type":"string"}}},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["product_share_links"],"summary":"Create Product Share Link","description":" Generate a new share link for a product.\n","operationId":"post_api_v1_product_share_links","requestBody":{"content":{"application/json":{"schema":{"required":["product_id"],"type":"object","properties":{"product_id":{"type":"number","description":"ID of the Product to share"},"custom_name":{"type":"string","description":"Optional custom name for the Share Link"},"expiration_date":{"type":"string","description":"Optional expiration date for the Share Link"}}}},"multipart/form-data":{"schema":{"required":["product_id"],"type":"object","properties":{"product_id":{"type":"number","description":"ID of the Product to share"},"custom_name":{"type":"string","description":"Optional custom name for the Share Link"},"expiration_date":{"type":"string","description":"Optional expiration date for the Share Link"}}}}},"required":true},"responses":{"201":{"description":"Successfully created Share Link","content":{"*/*":{"schema":{"$ref":"#/components/schemas/product_share_link_properties"}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating the Share Link","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_share_links/{id}":{"get":{"tags":["product_share_links"],"summary":"Get Product Share Link","description":" Get details of a specific share link.\n","operationId":"get_api_v1_product_share_links_id","parameters":[{"name":"id","in":"path","description":"Share Link ID","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Share Link details","content":{"*/*":{"schema":{"$ref":"#/components/schemas/product_share_link_properties"}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Share Link ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["product_share_links"],"summary":"Delete Product Share Link","description":" Remove a product share link\n","operationId":"delete_api_v1_product_share_links_id","parameters":[{"name":"id","in":"path","description":"Share Link ID","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"Share Link successfully deleted","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Share Link ID not found","content":{}},"422":{"description":"There was an error deleting the Share Link","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_types":{"get":{"tags":["product_types"],"summary":"Get Types","description":" Retrieve all available product Types\n","operationId":"get_api_v1_product_types","responses":{"200":{"description":"Successfully fetched Types","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"type":"object","properties":{"product_types":{"type":"array","description":"Array of Product Types","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["product_types"],"summary":"Create Type","description":" Create a new Product Type\n","operationId":"post_api_v1_product_types","requestBody":{"content":{"application/json":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Product Type Name"}}}},"multipart/form-data":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Product Type Name"}}}}},"required":true},"responses":{"201":{"description":"Successfully created Type","content":{"*/*":{"schema":{"required":["id","name","product_custom_attributes"],"type":"object","properties":{"id":{"type":"number","description":"Product Type ID"},"name":{"type":"string","description":"Product Type Name"},"product_custom_attributes":{"type":"array","description":"Array of Non-Image Custom Attributes associated with this Type","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating your Type","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_types/{id}":{"get":{"tags":["product_types"],"summary":"Get Type","description":" Get details about a specific product Type\n","operationId":"get_api_v1_product_types_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Type","content":{"*/*":{"schema":{"required":["id","product_custom_attributes"],"type":"object","properties":{"id":{"type":"number","description":"Product Type ID"},"name":{"type":"string","description":"Product Type Name"},"product_custom_attributes":{"type":"array","description":"Array of Non-Image Custom Attributes associated with this Type","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Type ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"put":{"tags":["product_types"],"summary":"Update Type","description":" Fully update a product Type\n","operationId":"put_api_v1_product_types_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Type Name"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Type Name"}}}}}},"responses":{"200":{"description":"Successfully updated Type","content":{"*/*":{"schema":{"required":["id","product_custom_attributes"],"type":"object","properties":{"id":{"type":"number","description":"Product Type ID"},"name":{"type":"string","description":"Product Type Name"},"product_custom_attributes":{"type":"array","description":"Array of Non-Image Custom Attributes associated with this Type","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Type ID not found","content":{}},"422":{"description":"There was an error updating your Type","content":{}},"500":{"description":"Something went wrong","content":{}}}},"patch":{"tags":["product_types"],"summary":"Update Type","description":" Patch a product Type\n","operationId":"patch_api_v1_product_types_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Type Name"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Product Type Name"}}}}}},"responses":{"200":{"description":"Successfully updated Type","content":{"*/*":{"schema":{"required":["id","product_custom_attributes"],"type":"object","properties":{"id":{"type":"number","description":"Product Type ID"},"name":{"type":"string","description":"Product Type Name"},"product_custom_attributes":{"type":"array","description":"Array of Non-Image Custom Attributes associated with this Type","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Type ID not found","content":{}},"422":{"description":"There was an error updating your Type","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/products":{"get":{"tags":["products"],"summary":"Get Products","description":" List all products in the catalog\n","operationId":"get_api_v1_products","responses":{"200":{"description":"Successfully fetched Products","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"required":["products"],"type":"object","properties":{"products":{"type":"array","description":"Array of Products","items":{"type":"object","properties":{"id":{"type":"integer","description":"Product ID"},"product_category_id":{"type":"integer","description":"Product category ID"},"product_type_id":{"type":"integer","description":"Product type ID"},"has_variants":{"type":"boolean","description":"Whether the product has variants"},"dimension1_id":{"type":"integer","nullable":true,"description":"First dimension ID"},"dimension2_id":{"type":"integer","nullable":true,"description":"Second dimension ID"},"dimension3_id":{"type":"integer","nullable":true,"description":"Third dimension ID"},"created_at":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Last update timestamp"},"user_id":{"type":"string","description":"User ID associated with the product"},"product_custom_attributes":{"type":"array","description":"Array of custom attributes for the product","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Custom attribute ID"},"product_attribute_group_id":{"type":"integer","nullable":true,"description":"Attribute group ID"}}}},"variants":{"type":"array","description":"Array of product variants","items":{"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","description":"Dimension options for the variant","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}}},"product_custom_attributes":{"type":"array","description":"Array of custom attributes for the variant","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Custom attribute ID"},"product_attribute_group_id":{"type":"integer","nullable":true,"description":"Attribute group ID"}}}}}}}}}}},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["products"],"summary":"Create Product","description":" Add a new product\n","operationId":"post_api_v1_products","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"product_category_id":{"type":"number","description":"Product Category ID"},"product_type_id":{"type":"number","description":"Product Type ID"},"has_variants":{"type":"boolean","description":"Whether there are variants associated with this product"},"dimension1_id":{"type":"number","description":"Primary Dimension ID"},"dimension2_id":{"type":"number","description":"Secondary Dimension ID"},"dimension3_id":{"type":"number","description":"Tertiary Dimension ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"object","properties":{"product_custom_attribute_id":{"type":"number"},"value":{"type":"string"}}}}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"product_category_id":{"type":"number","description":"Product Category ID"},"product_type_id":{"type":"number","description":"Product Type ID"},"has_variants":{"type":"boolean","description":"Whether there are variants associated with this product"},"dimension1_id":{"type":"number","description":"Primary Dimension ID"},"dimension2_id":{"type":"number","description":"Secondary Dimension ID"},"dimension3_id":{"type":"number","description":"Tertiary Dimension ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"string"}}}}}}},"responses":{"201":{"description":"Successfully created Product","content":{"*/*":{"schema":{"type":"object","properties":{"id":{"type":"integer","example":1},"product_category_id":{"type":"integer","example":1},"product_type_id":{"type":"integer","example":1},"has_variants":{"type":"boolean","example":true},"dimension1_id":{"type":"integer","example":1},"dimension2_id":{"type":"integer","example":2},"dimension3_id":{"type":"integer","example":3},"created_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"user_id":{"type":"string","example":"123e4567e89b12d3a456"},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string","nullable":true},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true},"asset_ids":{"type":"array","items":{"type":"string"}}}},"example":[{"name":"name","value":"Product 1","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"SKU1","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"10.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}]},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"secondary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"tertiary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true}}},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string","nullable":true},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true},"asset_ids":{"type":"array","items":{"type":"string"}}}}}}},"example":[{"id":3,"dimension_options":{"primary":{"name":"Color","value":"Blue","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Size","value":"Large","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Product 1 - Blue/Large","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"1-blue-large","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"12.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1}]}]},"product_assets":{"type":"array","items":{"type":"object","properties":{"asset_id":{"type":"string"},"product_ids":{"type":"array","items":{"type":"integer"}}}},"example":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1,2,3,4,5]}]}}}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating your Product","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/products/{id}":{"get":{"tags":["products"],"summary":"Get Product","description":" Retrieve details for a specific product by ID\n","operationId":"get_api_v1_products_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Product","content":{"*/*":{"schema":{"type":"object","properties":{"id":{"type":"integer","example":1},"product_category_id":{"type":"integer","example":1},"product_type_id":{"type":"integer","example":1},"has_variants":{"type":"boolean","example":true},"dimension1_id":{"type":"integer","example":1},"dimension2_id":{"type":"integer","example":2},"dimension3_id":{"type":"integer","example":3},"created_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"user_id":{"type":"string","example":"123e4567e89b12d3a456"},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string","nullable":true},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true},"asset_ids":{"type":"array","items":{"type":"string"}}}},"example":[{"name":"name","value":"Product 1","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"SKU1","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"10.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}]},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"secondary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"tertiary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true}}},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true}}}}}},"example":[{"id":5,"dimension_options":{"primary":{"name":"Color","value":"Red","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Size","value":"Small","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Product 1 - Red/Small","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"1-red-small","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"11.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1}]},{"id":6,"dimension_options":{"primary":{"name":"Color","value":"Blue","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Size","value":"Large","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Product 1 - Blue/Large","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"1-blue-large","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"12.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1}]}]},"product_assets":{"type":"array","items":{"type":"object","properties":{"asset_id":{"type":"string"},"product_ids":{"type":"array","items":{"type":"integer"}}}},"example":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1,2,3,4,5]}]}}}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID not found or invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"put":{"tags":["products"],"summary":"Update Product","description":" Update a product\n","operationId":"put_api_v1_products_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"product_category_id":{"type":"number","description":"Product Category ID"},"product_type_id":{"type":"number","description":"Product Type ID"},"has_variants":{"type":"boolean","description":"Whether there are variants associated with this product"},"dimension1_id":{"type":"number","description":"Primary Dimension ID"},"dimension2_id":{"type":"number","description":"Secondary Dimension ID"},"dimension3_id":{"type":"number","description":"Tertiary Dimension ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"object","properties":{"product_custom_attribute_id":{"type":"number"},"value":{"type":"string"}}}}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"product_category_id":{"type":"number","description":"Product Category ID"},"product_type_id":{"type":"number","description":"Product Type ID"},"has_variants":{"type":"boolean","description":"Whether there are variants associated with this product"},"dimension1_id":{"type":"number","description":"Primary Dimension ID"},"dimension2_id":{"type":"number","description":"Secondary Dimension ID"},"dimension3_id":{"type":"number","description":"Tertiary Dimension ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Successfully updated Product","content":{"*/*":{"schema":{"type":"object","properties":{"id":{"type":"integer","example":1},"product_category_id":{"type":"integer","example":1},"product_type_id":{"type":"integer","example":1},"has_variants":{"type":"boolean","example":true},"dimension1_id":{"type":"integer","example":1},"dimension2_id":{"type":"integer","example":2},"dimension3_id":{"type":"integer","example":3},"created_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"user_id":{"type":"string","example":"123e4567e89b12d3a456"},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string","nullable":true},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true},"asset_ids":{"type":"array","items":{"type":"string"}}}},"example":[{"name":"name","value":"Product 1","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"SKU1","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"10.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}]},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"secondary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"tertiary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true}}},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string","nullable":true},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true},"asset_ids":{"type":"array","items":{"type":"string"}}}}}}},"example":[{"id":3,"dimension_options":{"primary":{"name":"Color","value":"Blue","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Size","value":"Large","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Product 1 - Blue/Large","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"1-blue-large","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"12.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1}]}]},"product_assets":{"type":"array","items":{"type":"object","properties":{"asset_id":{"type":"string"},"product_ids":{"type":"array","items":{"type":"integer"}}}},"example":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1,2,3,4,5]}]}}}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID not found or invalid","content":{}},"422":{"description":"There was an error updating your Product","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["products"],"summary":"Delete Product","description":" Delete a product from the catalog\n","operationId":"delete_api_v1_products_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"Successfully deleted Product","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID not found","content":{}},"422":{"description":"There was an error throwing your Product in the trash or it's already in the trash","content":{}},"500":{"description":"Something went wrong","content":{}}}},"patch":{"tags":["products"],"summary":"Update Product","description":" Update a product\n","operationId":"patch_api_v1_products_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"product_category_id":{"type":"number","description":"Product Category ID"},"product_type_id":{"type":"number","description":"Product Type ID"},"has_variants":{"type":"boolean","description":"Whether there are variants associated with this product"},"dimension1_id":{"type":"number","description":"Primary Dimension ID"},"dimension2_id":{"type":"number","description":"Secondary Dimension ID"},"dimension3_id":{"type":"number","description":"Tertiary Dimension ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"object","properties":{"product_custom_attribute_id":{"type":"number"},"value":{"type":"string"}}}}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"product_category_id":{"type":"number","description":"Product Category ID"},"product_type_id":{"type":"number","description":"Product Type ID"},"has_variants":{"type":"boolean","description":"Whether there are variants associated with this product"},"dimension1_id":{"type":"number","description":"Primary Dimension ID"},"dimension2_id":{"type":"number","description":"Secondary Dimension ID"},"dimension3_id":{"type":"number","description":"Tertiary Dimension ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Successfully updated Product","content":{"*/*":{"schema":{"type":"object","properties":{"id":{"type":"integer","example":1},"product_category_id":{"type":"integer","example":1},"product_type_id":{"type":"integer","example":1},"has_variants":{"type":"boolean","example":true},"dimension1_id":{"type":"integer","example":1},"dimension2_id":{"type":"integer","example":2},"dimension3_id":{"type":"integer","example":3},"created_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2021-08-01T00:00:00.000Z"},"user_id":{"type":"string","example":"123e4567e89b12d3a456"},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string","nullable":true},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true},"asset_ids":{"type":"array","items":{"type":"string"}}}},"example":[{"name":"name","value":"Product 1","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"SKU1","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"10.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}]},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"secondary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true},"tertiary":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"dimension_id":{"type":"integer"},"dimension_option_id":{"type":"integer"}},"nullable":true}}},"product_custom_attributes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string","nullable":true},"data_type":{"type":"string"},"product_custom_attribute_id":{"type":"integer"},"product_attribute_group_id":{"type":"integer","nullable":true},"asset_ids":{"type":"array","items":{"type":"string"}}}}}}},"example":[{"id":3,"dimension_options":{"primary":{"name":"Color","value":"Blue","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Size","value":"Large","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Product 1 - Blue/Large","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":null},{"name":"sku","value":"1-blue-large","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":null},{"name":"Price","value":"12.00","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1}]}]},"product_assets":{"type":"array","items":{"type":"object","properties":{"asset_id":{"type":"string"},"product_ids":{"type":"array","items":{"type":"integer"}}}},"example":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1,2,3,4,5]}]}}}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID not found or invalid","content":{}},"422":{"description":"There was an error updating your Product","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/products/{product_id}/variants":{"get":{"tags":["variants"],"summary":"Get Product Variants","description":" List all product variants\n","operationId":"get_api_v1_products_product_id_variants","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Product Variants","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"required":["product_assets","variants"],"type":"object","properties":{"variants":{"type":"array","description":"Array of Product Variants","items":{"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}}},"product_custom_attributes":{"type":"array","description":"Array of product custom attributes","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute"},"product_custom_attribute_id":{"type":"integer","description":"Product custom attribute ID"},"product_attribute_group_id":{"type":"integer","description":"Product attribute group ID"}}}}}}},"product_assets":{"type":"array","description":"Array of product assets","items":{"type":"object","properties":{"asset_id":{"type":"string","description":"Asset ID"},"product_ids":{"type":"array","description":"Array of product IDs","items":{"type":"integer"}}}}}},"example":{"variants":[{"id":1,"dimension_options":{"primary":{"name":"Size","value":"Small","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Color","value":"Red","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Red Small Shirt","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":1},{"name":"sku","value":"RS-S","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":1}]},{"id":2,"dimension_options":{"primary":{"name":"Size","value":"Large","dimension_id":1,"dimension_option_id":3},"secondary":{"name":"Color","value":"Blue","dimension_id":2,"dimension_option_id":4},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Blue Large Shirt","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":1},{"name":"sku","value":"BL-L","data_type":"text","product_custom_attribute_id":4,"product_attribute_group_id":1}]}],"product_assets":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1,2]}]},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["variants"],"summary":"Create Product Variant","description":" Create a new product variant\n","operationId":"post_api_v1_products_product_id_variants","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["dimension_options[primary][dimension_option_id]"],"type":"object","properties":{"dimension_options[primary][dimension_option_id]":{"type":"number","description":"Primary Dimension Option ID"},"dimension_options[primary][dimension_id]":{"type":"number","description":"Primary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_id]":{"type":"number","description":"Secondary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_option_id]":{"type":"number","description":"Secondary Dimension Option ID"},"dimension_options[tertiary][dimension_id]":{"type":"number","description":"Tertiary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[tertiary][dimension_option_id]":{"type":"number","description":"Tertiary Dimension Option ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"object","properties":{"product_custom_attribute_id":{"type":"string","description":"Attribute name"},"value":{"type":"string","description":"Attribute value"}}}}}}},"multipart/form-data":{"schema":{"required":["dimension_options[primary][dimension_option_id]"],"type":"object","properties":{"dimension_options[primary][dimension_option_id]":{"type":"number","description":"Primary Dimension Option ID"},"dimension_options[primary][dimension_id]":{"type":"number","description":"Primary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_id]":{"type":"number","description":"Secondary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_option_id]":{"type":"number","description":"Secondary Dimension Option ID"},"dimension_options[tertiary][dimension_id]":{"type":"number","description":"Tertiary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[tertiary][dimension_option_id]":{"type":"number","description":"Tertiary Dimension Option ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"string"}}}}}},"required":true},"responses":{"200":{"description":"Successfully created Product Variant","content":{"*/*":{"schema":{"required":["dimension_options","id","product_assets","product_custom_attributes"],"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}},"additionalProperties":false},"product_custom_attributes":{"type":"array","description":"Array of product custom attributes","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","nullable":true,"description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute (e.g. text, image)"},"product_custom_attribute_id":{"type":"integer","description":"Product custom attribute ID"},"product_attribute_group_id":{"type":"integer","description":"Product attribute group ID"},"asset_ids":{"type":"array","description":"Array of asset IDs (for image/asset type attributes)","items":{"type":"string"}}}}},"product_assets":{"type":"array","description":"Array of product assets","items":{"type":"object","properties":{"asset_id":{"type":"string","description":"Asset ID"},"product_ids":{"type":"array","description":"Array of product IDs","items":{"type":"integer"}}}}}},"example":{"id":1,"dimension_options":{"primary":{"name":"Size","value":"Small","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Color","value":"Red","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Red Small Shirt","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":1},{"name":"sku","value":"RS-S","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":1},{"name":"Description","value":"This is a red small shirt","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":2},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}],"product_assets":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1]},{"asset_id":"f47ac10b58cc4372a5","product_ids":[1]}]},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid. References to `nil` means empty string or `null` value","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"Product Variant validation failed","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/products/{product_id}/variants/{id}":{"get":{"tags":["variants"],"summary":"Get Product Variant","description":" Fetch details of a specific variant\n","operationId":"get_api_v1_products_product_id_variants_id","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Product ","content":{"*/*":{"schema":{"required":["dimension_options","id","product_assets","product_custom_attributes"],"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}},"additionalProperties":false},"product_custom_attributes":{"type":"array","description":"Array of product custom attributes","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","nullable":true,"description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute (e.g. text, image)"},"product_custom_attribute_id":{"type":"integer","description":"Product custom attribute ID"},"product_attribute_group_id":{"type":"integer","description":"Product attribute group ID"},"asset_ids":{"type":"array","description":"Array of asset IDs (for image/asset type attributes)","items":{"type":"string"}}}}},"product_assets":{"type":"array","description":"Array of product assets","items":{"type":"object","properties":{"asset_id":{"type":"string","description":"Asset ID"},"product_ids":{"type":"array","description":"Array of product IDs","items":{"type":"integer"}}}}}},"example":{"id":1,"dimension_options":{"primary":{"name":"Size","value":"Small","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Color","value":"Red","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Red Small Shirt","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":1},{"name":"sku","value":"RS-S","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":1},{"name":"Description","value":"This is a red small shirt","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":2},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}],"product_assets":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1]},{"asset_id":"f47ac10b58cc4372a5","product_ids":[1]}]},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Variant ID not found or invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"put":{"tags":["variants"],"summary":"Update Product Variant","description":" Update a product variant\n","operationId":"put_api_v1_products_product_id_variants_id","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["dimension_options[primary][dimension_option_id]"],"type":"object","properties":{"dimension_options[primary][dimension_option_id]":{"type":"number","description":"Primary Dimension Option ID"},"dimension_options[primary][dimension_id]":{"type":"number","description":"Primary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_id]":{"type":"number","description":"Secondary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_option_id]":{"type":"number","description":"Secondary Dimension Option ID"},"dimension_options[tertiary][dimension_id]":{"type":"number","description":"Tertiary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[tertiary][dimension_option_id]":{"type":"number","description":"Tertiary Dimension Option ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"object","properties":{"product_custom_attribute_id":{"type":"number"},"value":{"type":"string"},"data_type":{"type":"string"}}}}}}},"multipart/form-data":{"schema":{"required":["dimension_options[primary][dimension_option_id]"],"type":"object","properties":{"dimension_options[primary][dimension_option_id]":{"type":"number","description":"Primary Dimension Option ID"},"dimension_options[primary][dimension_id]":{"type":"number","description":"Primary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_id]":{"type":"number","description":"Secondary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_option_id]":{"type":"number","description":"Secondary Dimension Option ID"},"dimension_options[tertiary][dimension_id]":{"type":"number","description":"Tertiary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[tertiary][dimension_option_id]":{"type":"number","description":"Tertiary Dimension Option ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"object","properties":{"product_custom_attribute_id":{"type":"number"},"value":{"type":"string"},"data_type":{"type":"string"}}}}}}}},"required":true},"responses":{"200":{"description":"Successfully updated Product Variant","content":{"*/*":{"schema":{"required":["dimension_options","id","product_assets","product_custom_attributes"],"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}},"additionalProperties":false},"product_custom_attributes":{"type":"array","description":"Array of product custom attributes","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","nullable":true,"description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute (e.g. text, image)"},"product_custom_attribute_id":{"type":"integer","description":"Product custom attribute ID"},"product_attribute_group_id":{"type":"integer","description":"Product attribute group ID"},"asset_ids":{"type":"array","description":"Array of asset IDs (for image/asset type attributes)","items":{"type":"string"}}}}},"product_assets":{"type":"array","description":"Array of product assets","items":{"type":"object","properties":{"asset_id":{"type":"string","description":"Asset ID"},"product_ids":{"type":"array","description":"Array of product IDs","items":{"type":"integer"}}}}}},"example":{"id":1,"dimension_options":{"primary":{"name":"Size","value":"Small","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Color","value":"Red","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Red Small Shirt","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":1},{"name":"sku","value":"RS-S","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":1},{"name":"Description","value":"This is a red small shirt","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":2},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}],"product_assets":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1]},{"asset_id":"f47ac10b58cc4372a5","product_ids":[1]}]},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Variant ID not found or invalid","content":{}},"422":{"description":"Product Variant validation failed","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["variants"],"summary":"Delete Product Variant","description":" Remove a product variant\n","operationId":"delete_api_v1_products_product_id_variants_id","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"Successfully Deleted Product Variant","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Variant ID not found or invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"patch":{"tags":["variants"],"summary":"Update Product Variant","description":" Update a product variant\n","operationId":"patch_api_v1_products_product_id_variants_id","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["dimension_options[primary][dimension_option_id]"],"type":"object","properties":{"dimension_options[primary][dimension_option_id]":{"type":"number","description":"Primary Dimension Option ID"},"dimension_options[primary][dimension_id]":{"type":"number","description":"Primary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_id]":{"type":"number","description":"Secondary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_option_id]":{"type":"number","description":"Secondary Dimension Option ID"},"dimension_options[tertiary][dimension_id]":{"type":"number","description":"Tertiary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[tertiary][dimension_option_id]":{"type":"number","description":"Tertiary Dimension Option ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"object","properties":{"product_custom_attribute_id":{"type":"number"},"value":{"type":"string"},"data_type":{"type":"string"}}}}}}},"multipart/form-data":{"schema":{"required":["dimension_options[primary][dimension_option_id]"],"type":"object","properties":{"dimension_options[primary][dimension_option_id]":{"type":"number","description":"Primary Dimension Option ID"},"dimension_options[primary][dimension_id]":{"type":"number","description":"Primary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_id]":{"type":"number","description":"Secondary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[secondary][dimension_option_id]":{"type":"number","description":"Secondary Dimension Option ID"},"dimension_options[tertiary][dimension_id]":{"type":"number","description":"Tertiary Dimension ID (optional, will be inferred from dimension_option_id)"},"dimension_options[tertiary][dimension_option_id]":{"type":"number","description":"Tertiary Dimension Option ID"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data","items":{"type":"object","properties":{"product_custom_attribute_id":{"type":"number"},"value":{"type":"string"},"data_type":{"type":"string"}}}}}}}},"required":true},"responses":{"200":{"description":"Successfully updated Product Variant","content":{"*/*":{"schema":{"required":["dimension_options","id","product_assets","product_custom_attributes"],"type":"object","properties":{"id":{"type":"integer","description":"Variant ID"},"dimension_options":{"type":"object","properties":{"primary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"secondary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}},"tertiary":{"type":"object","nullable":true,"properties":{"name":{"type":"string","description":"Dimension name"},"value":{"type":"string","description":"Dimension value"},"dimension_id":{"type":"integer","description":"Dimension ID"},"dimension_option_id":{"type":"integer","description":"Dimension option ID"}}}},"additionalProperties":false},"product_custom_attributes":{"type":"array","description":"Array of product custom attributes","items":{"type":"object","properties":{"name":{"type":"string","description":"Attribute name"},"value":{"type":"string","nullable":true,"description":"Attribute value"},"data_type":{"type":"string","description":"Data type of the attribute (e.g. text, image)"},"product_custom_attribute_id":{"type":"integer","description":"Product custom attribute ID"},"product_attribute_group_id":{"type":"integer","description":"Product attribute group ID"},"asset_ids":{"type":"array","description":"Array of asset IDs (for image/asset type attributes)","items":{"type":"string"}}}}},"product_assets":{"type":"array","description":"Array of product assets","items":{"type":"object","properties":{"asset_id":{"type":"string","description":"Asset ID"},"product_ids":{"type":"array","description":"Array of product IDs","items":{"type":"integer"}}}}}},"example":{"id":1,"dimension_options":{"primary":{"name":"Size","value":"Small","dimension_id":1,"dimension_option_id":1},"secondary":{"name":"Color","value":"Red","dimension_id":2,"dimension_option_id":2},"tertiary":null},"product_custom_attributes":[{"name":"name","value":"Red Small Shirt","data_type":"text","product_custom_attribute_id":1,"product_attribute_group_id":1},{"name":"sku","value":"RS-S","data_type":"text","product_custom_attribute_id":2,"product_attribute_group_id":1},{"name":"Description","value":"This is a red small shirt","data_type":"text","product_custom_attribute_id":3,"product_attribute_group_id":2},{"name":"An Image","value":null,"data_type":"image","asset_ids":["abc123","def234"],"product_custom_attribute_id":4,"product_attribute_group_id":2}],"product_assets":[{"asset_id":"e29b41d4a7166655440000","product_ids":[1]},{"asset_id":"f47ac10b58cc4372a5","product_ids":[1]}]},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Variant ID not found or invalid","content":{}},"422":{"description":"Product Variant validation failed","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/webhooks/{webhook_id}/events":{"get":{"tags":["webhook_events"],"summary":"Get Webhook Events","description":" Retrieve all webhook event logs\n","operationId":"get_api_v1_webhooks_webhook_id_events","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Webhook Events","content":{"*/*":{"schema":{"required":["webhook_events"],"type":"object","properties":{"webhook_events":{"type":"array","description":"Array of Webhook Events","items":{"type":"string"}}},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/webhooks/{webhook_id}/events/purge":{"delete":{"tags":["webhook_events"],"summary":"Purge Webhook Events","description":" Clear webhook event history\n","operationId":"delete_api_v1_webhooks_webhook_id_events_purge","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"Successfully purged all Webhook Events","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/webhooks":{"get":{"tags":["webhooks"],"summary":"Get Webhooks","description":" List all registered webhooks\n","operationId":"get_api_v1_webhooks","responses":{"200":{"description":"List of webhooks","content":{"*/*":{"schema":{"required":["webhooks"],"type":"object","properties":{"webhooks":{"type":"array","description":"Array of Webhooks","items":{"type":"string"}}},"additionalProperties":false}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["webhooks"],"summary":"Create Webhook","description":" Register a new webhook\n","operationId":"post_api_v1_webhooks","requestBody":{"content":{"application/json":{"schema":{"required":["event","resource","url"],"type":"object","properties":{"url":{"type":"string","description":"Webhook URL endpoint (including protocol e.g., https://)"},"resource":{"type":"string","description":"Resource type to monitor","enum":["product","variant","import"]},"event":{"type":"string","description":"Event to monitor (specific to resource)","enum":["created","updated","deleted","started","completed","failed"]},"active":{"type":"boolean","description":"Whether webhook is actively sending or disabled"},"secret":{"type":"string","description":"Your secret token for webhook authentication"}}}},"multipart/form-data":{"schema":{"required":["event","resource","url"],"type":"object","properties":{"url":{"type":"string","description":"Webhook URL endpoint (including protocol e.g., https://)"},"resource":{"type":"string","description":"Resource type to monitor","enum":["product","variant","import"]},"event":{"type":"string","description":"Event to monitor (specific to resource)","enum":["created","updated","deleted","started","completed","failed"]},"active":{"type":"boolean","description":"Whether webhook is actively sending or disabled"},"secret":{"type":"string","description":"Your secret token for webhook authentication"}}}}},"required":true},"responses":{"201":{"description":"Successfully created Webhook","content":{"*/*":{"schema":{"required":["active","event","id","resource","secret","url"],"type":"object","properties":{"id":{"type":"number","description":"Webhook ID"},"url":{"type":"string","description":"Webhook URL endpoint (including protocol e.g., https://)"},"resource":{"type":"string","description":"Resource type to monitor","enum":["product","variant","import"]},"event":{"type":"string","description":"Event to monitor (specific to resource)","enum":["created","updated","deleted","started","completed","failed"]},"active":{"type":"boolean","description":"Whether webhook is actively sending or disabled"},"secret":{"type":"string","description":"Secret key that you provided or one we generated (store this securely, there's no way to retrieve it again)"}},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid. References to `nil` means empty string or `null` value","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating your Webhook","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/webhooks/{id}":{"get":{"tags":["webhooks"],"summary":"Get Webhook","description":" Get details of a specific webhook\n","operationId":"get_api_v1_webhooks_id","parameters":[{"name":"id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Webhook details","content":{"*/*":{"schema":{"$ref":"#/components/schemas/webhook_properties"}}}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Webhook ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"put":{"tags":["webhooks"],"summary":"Update Webhook","description":" Fully update a webhook\n","operationId":"put_api_v1_webhooks_id","parameters":[{"name":"id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Webhook URL endpoint (including protocol e.g., https://)"},"resource":{"type":"string","description":"Resource type to monitor","enum":["product","variant","import"]},"event":{"type":"string","description":"Event to monitor (specific to resource)","enum":["created","updated","deleted","started","completed","failed"]},"active":{"type":"boolean","description":"Whether webhook is actively sending or disabled"},"secret":{"type":"string","description":"Your secret token for webhook authentication"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Webhook URL endpoint (including protocol e.g., https://)"},"resource":{"type":"string","description":"Resource type to monitor","enum":["product","variant","import"]},"event":{"type":"string","description":"Event to monitor (specific to resource)","enum":["created","updated","deleted","started","completed","failed"]},"active":{"type":"boolean","description":"Whether webhook is actively sending or disabled"},"secret":{"type":"string","description":"Your secret token for webhook authentication"}}}}}},"responses":{"200":{"description":"Updated webhook","content":{"*/*":{"schema":{"$ref":"#/components/schemas/webhook_properties"}}}},"400":{"description":"The request parameters were invalid. References to `nil` means empty string or `null` value","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Webhook ID not found","content":{}},"422":{"description":"There was an error creating your Webhook","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["webhooks"],"summary":"Delete Webhook","description":" Remove a webhook\n","operationId":"delete_api_v1_webhooks_id","parameters":[{"name":"id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"number"}}],"responses":{"204":{"description":"Webhook successfully deleted","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Webhook ID not found","content":{}},"422":{"description":"There was an error deleting your Webhook","content":{}},"500":{"description":"Something went wrong","content":{}}}},"patch":{"tags":["webhooks"],"summary":"Update Webhook","description":" Partially update webhook details\n","operationId":"patch_api_v1_webhooks_id","parameters":[{"name":"id","in":"path","description":"Webhook ID","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Webhook URL endpoint (including protocol e.g., https://)"},"resource":{"type":"string","description":"Resource type to monitor","enum":["product","variant","import"]},"event":{"type":"string","description":"Event to monitor (specific to resource)","enum":["created","updated","deleted","started","completed","failed"]},"active":{"type":"boolean","description":"Whether webhook is actively sending or disabled"},"secret":{"type":"string","description":"Your secret token for webhook authentication"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Webhook URL endpoint (including protocol e.g., https://)"},"resource":{"type":"string","description":"Resource type to monitor","enum":["product","variant","import"]},"event":{"type":"string","description":"Event to monitor (specific to resource)","enum":["created","updated","deleted","started","completed","failed"]},"active":{"type":"boolean","description":"Whether webhook is actively sending or disabled"},"secret":{"type":"string","description":"Your secret token for webhook authentication"}}}}}},"responses":{"200":{"description":"Updated webhook","content":{"*/*":{"schema":{"$ref":"#/components/schemas/webhook_properties"}}}},"400":{"description":"The request parameters were invalid. References to `nil` means empty string or `null` value","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Webhook ID not found","content":{}},"422":{"description":"There was an error creating your Webhook","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/dimensions/{dimension_id}/options/{id}":{"put":{"tags":["options"],"summary":"Update Dimension Option","description":" Update the value of an option within a dimension\n","operationId":"put_api_v1_dimensions_dimension_id_options_id","parameters":[{"name":"dimension_id","in":"path","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}}}}}},"responses":{"200":{"description":"Successfully updated Dimension Option","content":{"*/*":{"schema":{"required":["id"],"type":"object","properties":{"id":{"type":"number","description":"Dimension Option ID"},"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Dimension or Option ID not found","content":{}},"422":{"description":"There was an error updating your Dimension Option","content":{}},"500":{"description":"Something went wrong","content":{}}}},"patch":{"tags":["options"],"summary":"Update Dimension Option","description":" Update the value of an option within a dimension\n","operationId":"patch_api_v1_dimensions_dimension_id_options_id","parameters":[{"name":"dimension_id","in":"path","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}}}}}},"responses":{"200":{"description":"Successfully updated Dimension Option","content":{"*/*":{"schema":{"required":["id"],"type":"object","properties":{"id":{"type":"number","description":"Dimension Option ID"},"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Dimension or Option ID not found","content":{}},"422":{"description":"There was an error updating your Dimension Option","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/dimensions/{dimension_id}/options":{"post":{"tags":["options"],"summary":"Create Dimension Option","description":" Add a new option to a dimension\n","operationId":"post_api_v1_dimensions_dimension_id_options","parameters":[{"name":"dimension_id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}}}},"multipart/form-data":{"schema":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}}}}},"required":true},"responses":{"200":{"description":"Successfully created Dimension Option","content":{"*/*":{"schema":{"required":["id","name"],"type":"object","properties":{"id":{"type":"number","description":"Dimension Option ID"},"name":{"type":"string","description":"Dimension Option Name"},"position":{"type":"string","description":"Dimension Option Position"}},"additionalProperties":false}}}},"400":{"description":"The request was invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"422":{"description":"There was an error creating your Dimension Option","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_attributes/filter":{"post":{"tags":["filter"],"summary":"Filtering product attributes","description":" Apply filters to queries based on select Product Attributes\n","operationId":"post_api_v1_product_attributes_filter","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filter[product_type_ids]":{"type":"array","description":"Filter by product type IDs","items":{"type":"string"}},"filter[product_channel_template_ids]":{"type":"array","description":"Filter by product channel template IDs","items":{"type":"string"}},"filter[has_variants]":{"type":"boolean","description":"Filter products by variant status"}}}},"multipart/form-data":{"schema":{"type":"object","properties":{"filter[product_type_ids]":{"type":"array","description":"Filter by product type IDs","items":{"type":"string"}},"filter[product_channel_template_ids]":{"type":"array","description":"Filter by product channel template IDs","items":{"type":"string"}},"filter[has_variants]":{"type":"boolean","description":"Filter products by variant status"}}}}}},"responses":{"200":{"description":"ok","content":{}}}}},"/product_catalogs/{product_catalog_id}/products":{"get":{"tags":["product_catalog_products"],"summary":"Get Product Catalog Products","description":" Retrieve all products within a specific catalog\n","operationId":"get_api_v1_product_catalogs_product_catalog_id_products","parameters":[{"name":"product_catalog_id","in":"path","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched Products","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"type":"object","properties":{"products":{"type":"array","description":"Array of Products in this Catalog, paginated","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Catalog ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"post":{"tags":["product_catalog_products"],"summary":"Add Product to Product Catalog","description":" Add a single product to a specific catalog\n","operationId":"post_api_v1_product_catalogs_product_catalog_id_products","parameters":[{"name":"product_catalog_id","in":"path","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["product_id"],"type":"object","properties":{"product_id":{"type":"integer","description":"Product ID to add to the catalog","example":1}}},"example":{"product_id":1}}},"required":true},"responses":{"200":{"description":"Successfully added the product to the catalog","headers":{"page-items":{"description":"Number of items per page","schema":{"type":"integer"}},"link":{"description":"Standard link header defined in RFC 8228. Contains links for first, last, next, and prev pages with respective `rel` attributes","schema":{"type":"string"}},"current-page":{"description":"Current page number","schema":{"type":"integer"}},"total-count":{"description":"Total number of items","schema":{"type":"integer"}},"total-pages":{"description":"Total number of pages","schema":{"type":"integer"}}},"content":{"*/*":{"schema":{"type":"object","properties":{"products":{"type":"array","description":"Array of Products in this Catalog, paginated","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product or Product Catalog ID not found","content":{}},"422":{"description":"There was an error adding the product to the catalog","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/product_catalogs/{product_catalog_id}/products/{id}":{"get":{"tags":["product_catalog_products"],"summary":"Get Product Catalog Product","description":" Get a specific product from a catalog by ID\n","operationId":"get_api_v1_product_catalogs_product_catalog_id_products_id","parameters":[{"name":"product_catalog_id","in":"path","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","required":true,"schema":{"type":"number"}},{"name":"include_share_link","in":"query","description":"Include Share Link URL in response TODO: still defining","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Successfully fetched Product","content":{"*/*":{"schema":{"required":["created_at","id","product_assets","product_custom_attributes","updated_at","user_id","variants"],"type":"object","properties":{"id":{"type":"number","description":"Product ID"},"product_category_id":{"type":"number","description":"Product Category ID"},"product_type_id":{"type":"number","description":"Product Type ID"},"has_variants":{"type":"boolean","description":"Whether there are variants associated with this product"},"dimension1_id":{"type":"number","description":"Primary Dimension ID"},"dimension2_id":{"type":"number","description":"Secondary Dimension ID"},"dimension3_id":{"type":"number","description":"Tertiary Dimension ID"},"created_at":{"type":"string","description":"Created At"},"updated_at":{"type":"string","description":"Updated At"},"user_id":{"type":"string","description":"User ID of the Product creator"},"product_custom_attributes":{"type":"array","description":"Array of product attributes' data. On Products Index, this is only General Attributes data","items":{"type":"string"}},"variants":{"type":"array","description":"Array of Product's Variants","items":{"type":"string"}},"product_assets":{"type":"array","description":"Array of product assets","items":{"type":"string"}}},"additionalProperties":false}}}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product Catalog or Product ID not found","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["product_catalog_products"],"summary":"Remove Product from Product Catalog","description":" Remove a specific product from a catalog by ID\n","operationId":"delete_api_v1_product_catalogs_product_catalog_id_products_id","parameters":[{"name":"product_catalog_id","in":"path","required":true,"schema":{"type":"number"}},{"name":"id","in":"path","required":true,"description":"Product ID","schema":{"type":"number"}}],"responses":{"204":{"description":"Successfully removed the product from the catalog","content":{}},"400":{"description":"The request parameters were invalid","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product or Product Catalog ID not found","content":{}},"422":{"description":"There was an error removing the product from the catalog","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/products/{product_id}/assets":{"post":{"tags":["products"],"summary":"Add Assets to Product","description":"Add between 1 and 50 assets to a product","operationId":"post_api_v1_products_product_id_assets","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["asset_ids"],"properties":{"asset_ids":{"type":"array","description":"Array of Asset ID Strings","minItems":1,"maxItems":50,"items":{"type":"string"}}}}}}},"responses":{"201":{"description":"Successfully added assets to product","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID was not found or invalid","content":{}},"422":{"description":"At least 1 and no more than 50 Asset IDs are required","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["products"],"summary":"Remove Multiple Assets from Product","description":"Remove at least 1 and no more than 50 assets from a product","operationId":"delete_api_v1_products_product_id_assets","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"asset_ids","in":"query","required":true,"schema":{"type":"string"},"description":"Comma-separated list of Asset IDs (e.g., ?asset_ids=1,2,3)"}],"responses":{"204":{"description":"Successfully removed assets from product","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID was not found or invalid","content":{}},"422":{"description":"At least 1 and no more than 50 Asset IDs are required","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/products/{product_id}/variants/{variant_id}/assets":{"post":{"tags":["variants"],"summary":"Add Assets to Variant","description":"Add between 1 and 50 assets to a variant","operationId":"post_api_v1_products_product_id_variants_variant_id_assets","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["asset_ids"],"properties":{"asset_ids":{"type":"array","description":"Array of Asset ID Strings","minItems":1,"maxItems":50,"items":{"type":"string"}}}}}}},"responses":{"201":{"description":"Successfully added assets to variant","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID or Variant ID was not found or invalid","content":{}},"422":{"description":"At least 1 and no more than 50 Asset IDs are required","content":{}},"500":{"description":"Something went wrong","content":{}}}},"delete":{"tags":["variants"],"summary":"Remove Multiple Assets from Variant","description":"Remove at least 1 and no more than 50 assets from a variant","operationId":"delete_api_v1_products_product_id_variants_variant_id_assets","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"asset_ids","in":"query","required":true,"schema":{"type":"string"},"description":"Comma-separated list of Asset IDs (e.g., ?asset_ids=1,2,3)"}],"responses":{"204":{"description":"Successfully removed assets from variant","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID or Variant ID was not found or invalid","content":{}},"422":{"description":"At least 1 and no more than 50 Asset IDs are required","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/products/{product_id}/assets/{id}":{"delete":{"tags":["products"],"summary":"Remove Single Asset from a Product","description":"Remove a single asset from a product","operationId":"delete_api_v1_products_product_id_assets_id","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Asset ID"}],"responses":{"204":{"description":"Successfully removed asset from product","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID was not found or invalid","content":{}},"422":{"description":"No matching assets found","content":{}},"500":{"description":"Something went wrong","content":{}}}}},"/products/{product_id}/variants/{variant_id}/assets/{id}":{"delete":{"tags":["variants"],"summary":"Remove Single Asset from a Variant","description":"Remove a single asset from a variant","operationId":"delete_api_v1_products_product_id_variants_variant_id_assets_id","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Asset ID"}],"responses":{"204":{"description":"Successfully removed asset from variant","content":{}},"401":{"description":"User is not permitted to use the API or Authentication is invalid","content":{}},"404":{"description":"Product ID was not found or invalid","content":{}},"422":{"description":"No matching assets found","content":{}},"500":{"description":"Something went wrong","content":{}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"AccessToken"}},"schemas":{"dimension":{"required":["dimension_options","id","name"],"type":"object","properties":{"id":{"type":"number","description":"Dimension ID"},"name":{"type":"string","description":"Dimension Name"},"dimension_options":{"type":"array","description":"Array of this dimension's Options","items":{"type":"string"}}},"additionalProperties":false},"catalog":{"required":["banner_asset_id","created_at","id","product_attribute_view_id","product_channel_id","updated_at","user_id"],"type":"object","properties":{"id":{"type":"number","description":"Product Catalog ID"},"name":{"type":"string","description":"Product Catalog Name"},"summary":{"type":"string","description":"Product Catalog Summary"},"product_attribute_view_id":{"type":"number","description":"ID Of Product Attribute View associated with this Catalog"},"created_at":{"type":"string","description":"Product Catalog Created At"},"updated_at":{"type":"string","description":"Product Catalog Updated At"},"banner_asset_id":{"type":"string","description":"ID of Banner Asset of this Catalog Banner"},"user_id":{"type":"string","description":"ID of User who created this Catalog"},"product_channel_id":{"type":"number","description":"ID of Product Channel associated with this Catalog for exports"}},"additionalProperties":false},"category":{"required":["descendants","id","name"],"type":"object","properties":{"id":{"type":"number","description":"Product Category ID"},"name":{"type":"string","description":"Product Category Name"},"descendants":{"type":"array","description":"Array of categories within this category","items":{"type":"string"}}},"additionalProperties":false},"product_share_link_properties":{"required":["custom_name","expiration_date","id","identifier","product_id","url","user_id"],"type":"object","properties":{"id":{"type":"number","description":"Share Link ID"},"product_id":{"type":"number","description":"ID of the shared Product"},"identifier":{"type":"string","description":"Unique identifier for the Share Link"},"custom_name":{"type":"string","description":"Custom name for the Share Link"},"expiration_date":{"type":"string","description":"Expiration date for the Share Link"},"url":{"type":"string","description":"Generated shareable URL"},"user_id":{"type":"number","description":"ID of the user who created the Share Link"}},"additionalProperties":false},"webhook_properties":{"required":["active","event","id","resource","url"],"type":"object","properties":{"id":{"type":"number","description":"Webhook ID"},"url":{"type":"string","description":"Webhook URL endpoint (including protocol e.g., https://)"},"resource":{"type":"string","description":"Resource type to monitor","enum":["product","variant","import"]},"event":{"type":"string","description":"Event to monitor (specific to resource)","enum":["created","updated","deleted","started","completed","failed"]},"active":{"type":"boolean","description":"Whether webhook is actively sending or disabled"}},"additionalProperties":false},"product_channel_template_summary":{"required":["id","name","product_channel_id","created_at","updated_at"],"type":"object","properties":{"id":{"type":"number","description":"Product Channel Template ID"},"name":{"type":"string","description":"Product Channel Template Name"},"product_channel_id":{"type":"number","description":"Associated Product Channel ID"},"file_name_export_format":{"type":"string","nullable":true,"description":"Export file name format template"},"image_export_size":{"type":"string","nullable":true,"description":"Export image size"},"created_at":{"type":"string","format":"date-time","description":"Product Channel Template creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Product Channel Template last update timestamp"}},"additionalProperties":false},"product_channel_template":{"required":["id","name","product_channel_id","created_at","updated_at"],"type":"object","properties":{"id":{"type":"number","description":"Product Channel Template ID"},"name":{"type":"string","description":"Product Channel Template Name"},"product_channel_id":{"type":"number","description":"Associated Product Channel ID"},"file_name_export_format":{"type":"string","nullable":true,"description":"Export file name format template"},"image_export_size":{"type":"string","nullable":true,"description":"Export image size"},"created_at":{"type":"string","format":"date-time","description":"Product Channel Template creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Product Channel Template last update timestamp"},"custom_attribute_mappings":{"type":"array","description":"Array of custom attribute mappings for this template","items":{"$ref":"#/components/schemas/custom_attribute_mapping"},"example":[{"name":"Name","product_custom_attribute_id":17,"required":false},{"name":"SKU","product_custom_attribute_id":18,"required":true},{"name":"Image","product_custom_attribute_id":49,"required":false},{"name":"Unmapped Attribute","product_custom_attribute_id":null,"required":false}]}},"additionalProperties":false},"custom_attribute_mapping":{"required":["name","product_custom_attribute_id"],"type":"object","properties":{"name":{"type":"string","description":"Name of the custom attribute mapping"},"product_custom_attribute_id":{"type":"number","nullable":true,"description":"ID of the associated product custom attribute"},"required":{"type":"boolean","description":"Whether this attribute mapping is required"}},"additionalProperties":false},"product_channel_templates_response":{"required":["product_channel_templates"],"type":"object","properties":{"product_channel_templates":{"type":"array","description":"Array of Product Channel Templates","items":{"$ref":"#/components/schemas/product_channel_template_summary"}}},"additionalProperties":false}}},"security":[{"bearerAuth":[]}],"x-original-swagger-version":"2.0"}