ShipBob subpackage_products API

The subpackage_products API from ShipBob — 11 operation(s) for subpackage_products.

OpenAPI Specification

shipbob-subpackage-products-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: API Reference subpackage_billing subpackage_products API
  version: 1.0.0
servers:
- url: https://api.shipbob.com
- url: https://sandbox-api.shipbob.com
tags:
- name: subpackage_products
paths:
  /2026-01/product:
    post:
      operationId: create-product
      summary: Create Product
      description: Creates a new product with one or more variants. Requires a product name and at least one variant with a unique SKU.
      tags:
      - subpackage_products
      parameters:
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModelV5'
      requestBody:
        description: The product to add
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Products.CreateProductRequestModelV5'
    get:
      operationId: get-products
      summary: Get Products
      description: Retrieves a paginated list of products. Supports filtering by search term, barcode, SKU, status, and other criteria.
      tags:
      - subpackage_products
      parameters:
      - name: Search
        in: query
        description: 'Search Products by name, sku, inventory id or product Id.

          '
        required: false
        schema:
          type: string
      - name: Barcode
        in: query
        description: 'Barcode Associated with variant

          '
        required: false
        schema:
          type: string
      - name: Barcodes
        in: query
        description: 'Barcodes Associated with variant

          '
        required: false
        schema:
          type: string
      - name: CategoryIds
        in: query
        description: 'List of Category Ids associated with product

          '
        required: false
        schema:
          type: string
      - name: ChannelIds
        in: query
        description: 'Looks for Products variants by their channel IDs

          '
        required: false
        schema:
          type: string
      - name: HasDigitalVariants
        in: query
        description: 'Looks for Products with/without digital variants

          '
        required: false
        schema:
          type: string
      - name: HasVariants
        in: query
        description: 'Looks for Products with/without variants

          '
        required: false
        schema:
          type: string
      - name: InventoryId
        in: query
        description: 'Looks for variants by its associated inventory id

          '
        required: false
        schema:
          type: string
      - name: IsInventorySyncEnabled
        in: query
        description: 'Looks for Products variants by their IsInventorySyncEnabled is true

          '
        required: false
        schema:
          type: string
      - name: LastUpdatedTimestamp
        in: query
        description: 'Looks for Products that have been updated since the given date

          '
        required: false
        schema:
          type: string
      - name: LegacyIds
        in: query
        description: 'Looks for Products with by Legacy Product Id(s)

          '
        required: false
        schema:
          type: string
      - name: Name
        in: query
        description: 'Looks for Products/Variants by name

          '
        required: false
        schema:
          type: string
      - name: OnHand
        in: query
        description: 'Looks for Products with inventory

          '
        required: false
        schema:
          type: string
      - name: PlatformIds
        in: query
        description: 'Looks for Products variants by their external Platform IDs

          '
        required: false
        schema:
          type: string
      - name: ProductId
        in: query
        description: 'Looks for Products with an assigned Id

          '
        required: false
        schema:
          type: string
      - name: ProductType
        in: query
        description: 'Looks for Products by type

          '
        required: false
        schema:
          type: string
      - name: ReviewsPending
        in: query
        description: 'Looks for Products by ReviewsPending

          '
        required: false
        schema:
          type: string
      - name: SalesChannel
        in: query
        description: "Looks for Products variants assigned to a platform/sales channel \n"
        required: false
        schema:
          type: string
      - name: SellerSKU
        in: query
        description: 'Looks for Products that match the provided Seller query

          '
        required: false
        schema:
          type: string
      - name: SKU
        in: query
        description: 'Looks for Products that match the provided Sku query

          '
        required: false
        schema:
          type: string
      - name: TaxonomyIds
        in: query
        description: 'Looks for Products variants by their taxonomy id or any descendants of the taxonomies sent separated by comma

          '
        required: false
        schema:
          type: string
      - name: VariantId
        in: query
        description: 'Looks for products that contain a variant with the given ID

          '
        required: false
        schema:
          type: string
      - name: VariantStatus
        in: query
        description: 'Looks for Products with variants that contain provided status

          '
        required: false
        schema:
          type: string
      - name: PageSize
        in: query
        description: '1-250

          '
        required: false
        schema:
          type: string
      - name: SortBy
        in: query
        description: 'Id, Name, Category, TotalOnHandQty

          '
        required: false
        schema:
          type: string
      - name: SortOrder
        in: query
        description: 'ASC,DESC

          '
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModelV5PagedResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Product.Bad.Request.Object'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Product.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails'
  /2026-01/product/{productId}:
    get:
      operationId: get-product
      summary: Get Product
      description: Retrieves a product with all its variants and details.
      tags:
      - subpackage_products
      parameters:
      - name: productId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModelV5'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Product.ProductId.Bad.Request.Object'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Product.ProductId.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails'
    patch:
      operationId: update-product
      summary: Update Product
      description: Updates a product. Supports partial updates - only the fields provided will be updated. When updating variants through this endpoint, you must include the variant ID.
      tags:
      - subpackage_products
      parameters:
      - name: productId
        in: path
        description: 'The product identifier

          '
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModelV5'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Products.UpdateProductRequestModelV5'
    delete:
      operationId: delete-product-bundle
      summary: Delete Product Bundle
      description: Deletes a bundle product by ID. Delete operation not allowed for non-bundles.
      tags:
      - subpackage_products
      parameters:
      - name: productId
        in: path
        description: 'The product identifier

          '
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products_deleteProductBundle_Response_200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Delete.Api.V5.Product.ProductId.Bad.Request.Object'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Delete.Api.V5.Product.ProductId.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails'
  /2026-01/product/{productId}/variants:
    get:
      operationId: get-product-variants
      summary: Get Product Variants
      description: Retrieves all variants for a specific product.
      tags:
      - subpackage_products
      parameters:
      - name: productId
        in: path
        description: 'The product id

          '
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.VariantViewModelV5Array'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Product.ProductId.Variants.Bad.Request.Object'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Product.ProductId.Variants.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails'
    post:
      operationId: add-product-variants
      summary: Add Product Variants
      description: Adds new variants to an existing product. The request body must be an array of variant objects, each requiring a unique SKU.
      tags:
      - subpackage_products
      parameters:
      - name: productId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModelV5'
      requestBody:
        description: The product variants to add to product
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Products.CreateProductVariantRequestModelV5Array'
    patch:
      operationId: update-product-variants
      summary: Update Product Variants
      description: Updates one or more product variants. The request body must be an array of variant objects. Each variant must include the variant ID, and only the fields provided will be updated.
      tags:
      - subpackage_products
      parameters:
      - name: productId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.VariantViewModelV5Array'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Products.UpdateProductVariantModelV5'
  /2026-01/variant/{variantId}:merge:
    post:
      operationId: merge-variants
      summary: Merge Variants
      description: Merges multiple product variants into a target variant. Provide an array of variant IDs to merge into the target variant specified in the path. Inventory from the merged variants will be consolidated into the target variant.
      tags:
      - subpackage_products
      parameters:
      - name: variantId
        in: path
        description: 'The ID of the variant to use as the merge target

          '
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModelV5'
      requestBody:
        description: The variants that should be merged to the target variant
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Products.MergeVariantRequestModelArray'
  /2026-01/product/{productId}:moveVariants:
    post:
      operationId: move-variants-between-products
      summary: Move Variants Between Products
      description: Moves variants from their current product to the target product specified in the path. Provide an array of variant IDs to move.
      tags:
      - subpackage_products
      parameters:
      - name: productId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Post.Api.V5.Product.ProductId.MoveVariants.Bad.Request.Object'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Post.Api.V5.Product.ProductId.MoveVariants.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails'
      requestBody:
        description: Migration definition
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Products.MigrateVariantRequestModel'
  /2026-01/product:moveVariants:
    post:
      operationId: move-variants-to-new-product
      summary: Move Variants to New Product
      description: Creates a new product and moves existing variants from their current products into it. Provide the new product details and variant IDs.
      tags:
      - subpackage_products
      parameters:
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Post.Api.V5.Product.MoveVariants.Bad.Request.Object'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Post.Api.V5.Product.MoveVariants.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails'
      requestBody:
        description: Migration definition
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Products.MigrateVariantRequestModel'
  /2026-01/packaging-requirement:
    get:
      operationId: get-packaging-requirement
      summary: Get Packaging Requirement
      description: Retrieves all available packaging requirements that can be assigned to a product.
      tags:
      - subpackage_products
      parameters:
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.PackagingRequirementViewModelArray'
  /2026-01/taxonomy:
    get:
      operationId: get-taxonomies
      summary: Get Taxonomies
      description: Retrieves all available product taxonomies for categorizing products.
      tags:
      - subpackage_products
      parameters:
      - name: search
        in: query
        description: ''
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.TaxonomyViewModelArray'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Taxonomy.Unauthorized.OneOf.ProblemDetails.HttpValidationProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Taxonomy.Forbidden.OneOf.ProblemDetails.HttpValidationProblemDetails'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Server Error
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/taxonomy/{id}:
    get:
      operationId: get-taxonomy-by-id
      summary: Get Taxonomy by ID
      description: Retrieves a specific taxonomy node and its details by taxonomy ID.
      tags:
      - subpackage_products
      parameters:
      - name: id
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int32
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.TaxonomyViewModel'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Taxonomy.Id.Unauthorized.OneOf.ProblemDetails.HttpValidationProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Taxonomy.Id.Forbidden.OneOf.ProblemDetails.HttpValidationProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Taxonomy.Id.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Server Error
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/taxonomy/{id}/parent:
    get:
      operationId: get-taxonomy-parent
      summary: Get Taxonomy Parent
      description: Retrieves the parent taxonomy node for a given taxonomy ID.
      tags:
      - subpackage_products
      parameters:
      - name: id
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int32
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.TaxonomyViewModel'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Taxonomy.Id.Parent.Unauthorized.OneOf.ProblemDetails.HttpValidationProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Taxonomy.Id.Parent.Forbidden.OneOf.ProblemDetails.HttpValidationProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.Get.Api.V5.Taxonomy.Id.Parent.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Server Error
          content:
            application/json:
              schema:
                description: Any type
  /2026-01/variant/{variantId}:convertToBundle:
    post:
      operationId: convert-variant-to-bundle
      summary: Convert Variant to Bundle
      description: Converts an existing product variant into a bundle product. Provide the bundle definition specifying which variants and quantities make up the bundle.
      tags:
      - subpackage_products
      parameters:
      - name: variantId
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: int64
      - name: Authorization
        in: header
        description: Authentication using Personal Access Token (PAT) token or OAuth2
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products.ProductViewModelV5'
      requestBody:
        description: The variant request that is to be converted to bundle
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Products.ConvertVariantToBundleRequest'
components:
  schemas:
    Products.BaseSerialScanModel:
      type: object
      properties:
        exact_character_length:
          type:
          - integer
          - 'null'
        is_enabled:
          type: boolean
        prefix:
          type:
          - string
          - 'null'
        suffix:
          type:
          - string
          - 'null'
      title: Products.BaseSerialScanModel
    Products.UpdateProductVariantModelV5:
      type: object
      properties:
        additional_hazmat_attributes:
          $ref: '#/components/schemas/Products.BaseAdditionalHazmatAttributesModel'
        bundle_definition:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Products.BaseBundleDefinitionModel'
        channel_metadata:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ProductsBaseProductVariantModelChannelMetadataItems'
        customs:
          $ref: '#/components/schemas/Products.BaseCustomsModel'
        dimension:
          $ref: '#/components/schemas/Products.BaseDimensionModel'
        fulfillment_settings:
          $ref: '#/components/schemas/Products.BaseFulfillmentSettingsModel'
        gtin:
          type:
          - string
          - 'null'
        is_digital:
          type: boolean
        lot_information:
          $ref: '#/components/schemas/Products.BaseLotInformationModel'
        name:
          type:
          - string
          - 'null'
        packaging_material_type_id:
          type:
          - integer
          - 'null'
        packaging_requirement_id:
          type:
          - integer
          - 'null'
        return_preferences:
          $ref: '#/components/schemas/Products.BaseReturnPreferencesModel'
        reviews_pending:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Products.ReviewsPendingType'
        sku:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/Products.VariantStatus'
        upc:
          type:
          - string
          - 'null'
        weight:
          type: number
          format: double
        barcodes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Products.BarcodeModel'
        id:
          type: integer
          format: int64
      title: Products.UpdateProductVariantModelV5
    Products.Get.Api.V5.Taxonomy.Id.Parent.Unauthorized.OneOf.ProblemDetails.HttpValidationProblemDetails:
      oneOf:
      - $ref: '#/components/schemas/Products.ProblemDetails'
      - $ref: '#/components/schemas/Products.HttpValidationProblemDetails'
      title: Products.Get.Api.V5.Taxonomy.Id.Parent.Unauthorized.OneOf.ProblemDetails.HttpValidationProblemDetails
    Products.ReturnPreferencesViewModel:
      type: object
      properties:
        backup_action:
          $ref: '#/components/schemas/Products.EnumViewModel'
          description: Backup action to take if primary action cannot be completed
        instructions:
          type:
          - string
          - 'null'
          description: Special instructions for handling returned items
        primary_action:
          $ref: '#/components/schemas/Products.EnumViewModel'
          description: Primary action to take when product is returned by customer (e.g., 'Restock', 'Dispose', 'Return to Sender')
        return_to_sender_backup_action:
          $ref: '#/components/schemas/Products.EnumViewModel'
          description: Backup action for undeliverable packages if primary action cannot be completed
        return_to_sender_primary_action:
          $ref: '#/components/schemas/Products.EnumViewModel'
          description: Primary action for undeliverable packages that are returned to sender
      title: Products.ReturnPreferencesViewModel
    ProductsBaseProductRequestModelTypeId:
      type: string
      enum:
      - '1'
      - '2'
      description: The product type ID (1 = Regular, 2 = Bundle)
      title: ProductsBaseProductRequestModelTypeId
    Products.UpdateProductRequestModelV5:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
          description: The name of the product
        taxonomy_id:
          type:
          - integer
          - 'null'
          description: The taxonomy ID for categorizing the product
        type_id:
          $ref: '#/components/schemas/ProductsBaseProductRequestModelTypeId'
          description: The product type ID (1 = Regular, 2 = Bundle)
        id:
          type: integer
          format: int64
          description: Unique reference ID for the product
        variants:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Products.UpdateProductVariantRequestModelV5'
          description: List of variants to update. Each variant must include an ID. Only provided fields will be updated.
      title: Products.UpdateProductRequestModelV5
    Products.Delete.Api.V5.Product.ProductId.Bad.Request.Object:
      type: object
      additionalProperties:
        type: array
        items:
          type: string
      title: Products.Delete.Api.V5.Product.ProductId.Bad.Request.Object
    ProductsProductViewModelVariantsItems:
      oneOf:
      - $ref: '#/components/schemas/Products.VariantViewModel'
      - $ref: '#/components/schemas/Products.VariantInternalViewModel'
      title: ProductsProductViewModelVariantsItems
    Products.Get.Api.V5.Product.ProductId.Variants.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails:
      oneOf:
      - $ref: '#/components/schemas/Products.ProblemDetails'
      - $ref: '#/components/schemas/Products.HttpValidationProblemDetails'
      title: Products.Get.Api.V5.Product.ProductId.Variants.Not.Found.OneOf.ProblemDetails.HttpValidationProblemDetails
    Products.ShopifyChannelMetadataViewModel:
      type: object
      properties:
        channel_id:
          type: integer
          format: int64
        channel_name:
          type:
          - string
          - 'null'
        currency:
          type:
          - string
          - 'null'
        id:
          type: integer
          format: int64
        is_inventory_sync_enabled:
          type: boolean
        legacy_product_id:
          type:
          - integer
          - 'null'
          format: int64
        platform:
          type:
          - string
          - 'null'
        platform_identifier:
          type:
          - string
          - 'null'
        platform_inventory_item_id:
          type:
          - string
          - 'null'
        price:
          type: number
          format: double
        seller_sku:


# --- truncated at 32 KB (108 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shipbob/refs/heads/main/openapi/shipbob-subpackage-products-api-openapi.yml