Canto product_custom_attributes API

The product_custom_attributes API from Canto — 2 operation(s) for product_custom_attributes.

OpenAPI Specification

canto-product-custom-attributes-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Canto PIM bulk_products_catalogs product_custom_attributes API
  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 \n<b>Key Capabilities</b><br />\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 \n<b>API Design</b>\n- The PIM API adheres to <b>RESTful principles</b>, supporting standard HTTP methods (GET, POST, PUT, PATCH, DELETE).\n- JSON is the default payload format for both requests and responses.\n\n<b>HTTP Status Code Conventions</b><br />\nBelow are general HTTP codes applicable across most endpoints:<br />\n- <b>200, 201, 204</b> – Successful operations (retrieval, creation, update, deletion).\n- <b>400</b> – Bad request. Input payloads did not conform to the expected schema or required parameters were missing.\n- <b>401 / 403</b> – Authentication or authorization failed.\n- <b>404</b> – The route or resource was not found.\n- <b>409</b> – Conflict in resource state (e.g., duplicate product identifier).\n- <b>429</b> - Too many requests. See Rate Limits below.\n- <b>500</b> – An unexpected server error occurred.\n- <b>502 / 503 / 504</b> – Infrastructure issues such as load balancer, service unavailability, or timeouts.\n\n<b>API Rate Limits</b><br />\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\n<b>PIM API Rate Limit:</b> 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
security:
- bearerAuth: []
tags:
- name: product_custom_attributes
paths:
  /product_custom_attributes:
    get:
      tags:
      - product_custom_attributes
      summary: Get Product Custom Attributes
      description: '    Retrieve all custom attributes defined in the Product Hub

        '
      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

        '
      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.

        '
      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

        '
      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

        '
      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: {}
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: AccessToken
x-original-swagger-version: '2.0'