VTEX · Capability

VTex Catalog API — Collection Beta

VTex Catalog API — Collection Beta. 8 operations. Lead operation: VTex Create Collection. Self-contained Naftiko capability covering one Vtex business surface.

Run with Naftiko VtexCollection Beta

What You Can Do

POST
Postcreatecollection — VTex Create Collection
/v1/api/catalog/pvt/collection
GET
Getallinactivecollections — VTex Get all inactive collections
/v1/api/catalog/pvt/collection/inactive
GET
Getimportfileexample — VTex Import collection file example
/v1/api/catalog/pvt/collection/stockkeepingunit/importfileexample
GET
Getproductsfromacollection — VTex Get products from a collection
/v1/api/catalog/pvt/collection/{collectionid}/products
POST
Postremoveproductsbyimportfile — VTex Remove products from collection by imported file
/v1/api/catalog/pvt/collection/{collectionid}/stockkeepingunit/importexclude
POST
Postaddproductsbyimportfile — VTex Add products to collection by imported file
/v1/api/catalog/pvt/collection/{collectionid}/stockkeepingunit/importinsert
GET
Getallcollections — VTex Get all collections
/v1/api/catalog-system/pvt/collection/search
GET
Getcollectionsbyseachterms — VTex Get Collections by search terms
/v1/api/catalog-system/pvt/collection/search/{searchterms}

MCP Tools

vtex-create-collection

VTex Create Collection

vtex-get-all-inactive-collections

VTex Get all inactive collections

read-only idempotent
vtex-import-collection-file-example

VTex Import collection file example

read-only idempotent
vtex-get-products-collection

VTex Get products from a collection

read-only idempotent
vtex-remove-products-collection-imported

VTex Remove products from collection by imported file

vtex-add-products-collection-imported

VTex Add products to collection by imported file

vtex-get-all-collections

VTex Get all collections

read-only idempotent
vtex-get-collections-search-terms

VTex Get Collections by search terms

read-only idempotent

Capability Spec

catalog-collection-beta.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: VTex Catalog API — Collection Beta
  description: 'VTex Catalog API — Collection Beta. 8 operations. Lead operation: VTex Create Collection. Self-contained Naftiko
    capability covering one Vtex business surface.'
  tags:
  - Vtex
  - Collection Beta
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    VTEX_API_KEY: VTEX_API_KEY
capability:
  consumes:
  - type: http
    namespace: catalog-collection-beta
    baseUri: https://{accountName}.{environment}.com.br
    description: VTex Catalog API — Collection Beta business capability. Self-contained, no shared references.
    resources:
    - name: api-catalog-pvt-collection
      path: /api/catalog/pvt/collection/
      operations:
      - name: postcreatecollection
        method: POST
        description: VTex Create Collection
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-catalog-pvt-collection-inactive
      path: /api/catalog/pvt/collection/inactive
      operations:
      - name: getallinactivecollections
        method: GET
        description: VTex Get all inactive collections
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-catalog-pvt-collection-stockkeepingunit-importfileexample
      path: /api/catalog/pvt/collection/stockkeepingunit/importfileexample
      operations:
      - name: getimportfileexample
        method: GET
        description: VTex Import collection file example
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-catalog-pvt-collection-collectionId-products
      path: /api/catalog/pvt/collection/{collectionId}/products
      operations:
      - name: getproductsfromacollection
        method: GET
        description: VTex Get products from a collection
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collectionId
          in: path
          type: integer
          description: Collection's unique identifier.
          required: true
        - name: page
          in: query
          type: integer
          description: Page number.
        - name: pageSize
          in: query
          type: integer
          description: Number of the items of the page.
        - name: Filter
          in: query
          type: string
          description: Filter used to refine the collection's products.
        - name: Active
          in: query
          type: boolean
          description: Defines if the status of the product is active or not.
        - name: Visible
          in: query
          type: boolean
          description: Defines if the product is visible on the store or not.
        - name: CategoryId
          in: query
          type: integer
          description: Product's category unique identifier.
        - name: BrandId
          in: query
          type: integer
          description: Product's brand unique identifier.
        - name: SupplierId
          in: query
          type: integer
          description: Product's supplier unique identifier.
        - name: SalesChannelId
          in: query
          type: integer
          description: Product's trade policy unique identifier.
        - name: ReleaseFrom
          in: query
          type: string
          description: Product past release date.
        - name: ReleaseTo
          in: query
          type: string
          description: Product future release date.
        - name: SpecificationProduct
          in: query
          type: string
          description: Product specification field Value. You must also fill in `SpecificationFieldId` to use this parameter.
        - name: SpecificationFieldId
          in: query
          type: integer
          description: Product specification field unique identifier.
    - name: api-catalog-pvt-collection-collectionId-stockkeepingunit-importexclude
      path: /api/catalog/pvt/collection/{collectionId}/stockkeepingunit/importexclude
      operations:
      - name: postremoveproductsbyimportfile
        method: POST
        description: VTex Remove products from collection by imported file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collectionId
          in: path
          type: integer
          description: Collection's unique identifier.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-catalog-pvt-collection-collectionId-stockkeepingunit-importinsert
      path: /api/catalog/pvt/collection/{collectionId}/stockkeepingunit/importinsert
      operations:
      - name: postaddproductsbyimportfile
        method: POST
        description: VTex Add products to collection by imported file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collectionId
          in: path
          type: integer
          description: Collection's unique identifier.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-catalog_system-pvt-collection-search
      path: /api/catalog_system/pvt/collection/search
      operations:
      - name: getallcollections
        method: GET
        description: VTex Get all collections
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number.
          required: true
        - name: pageSize
          in: query
          type: integer
          description: Number of the items of the page.
          required: true
        - name: orderByAsc
          in: query
          type: boolean
          description: Defines if the items of the page are in ascending order.
          required: true
    - name: api-catalog_system-pvt-collection-search-searchTerms
      path: /api/catalog_system/pvt/collection/search/{searchTerms}
      operations:
      - name: getcollectionsbyseachterms
        method: GET
        description: VTex Get Collections by search terms
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: searchTerms
          in: path
          type: string
          description: String that will search for a collection related to it.
          required: true
        - name: page
          in: query
          type: integer
          description: Page number.
        - name: pageSize
          in: query
          type: integer
          description: Number of the items of the page.
        - name: orderByAsc
          in: query
          type: boolean
          description: Defines if the items of the page are in ascending order.
    authentication:
      type: apikey
      key: X-VTEX-API-AppKey
      value: '{{env.VTEX_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: catalog-collection-beta-rest
    port: 8080
    description: REST adapter for VTex Catalog API — Collection Beta. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/api/catalog/pvt/collection
      name: api-catalog-pvt-collection
      description: REST surface for api-catalog-pvt-collection.
      operations:
      - method: POST
        name: postcreatecollection
        description: VTex Create Collection
        call: catalog-collection-beta.postcreatecollection
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/catalog/pvt/collection/inactive
      name: api-catalog-pvt-collection-inactive
      description: REST surface for api-catalog-pvt-collection-inactive.
      operations:
      - method: GET
        name: getallinactivecollections
        description: VTex Get all inactive collections
        call: catalog-collection-beta.getallinactivecollections
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/catalog/pvt/collection/stockkeepingunit/importfileexample
      name: api-catalog-pvt-collection-stockkeepingunit-importfileexample
      description: REST surface for api-catalog-pvt-collection-stockkeepingunit-importfileexample.
      operations:
      - method: GET
        name: getimportfileexample
        description: VTex Import collection file example
        call: catalog-collection-beta.getimportfileexample
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/catalog/pvt/collection/{collectionid}/products
      name: api-catalog-pvt-collection-collectionid-products
      description: REST surface for api-catalog-pvt-collection-collectionId-products.
      operations:
      - method: GET
        name: getproductsfromacollection
        description: VTex Get products from a collection
        call: catalog-collection-beta.getproductsfromacollection
        with:
          collectionId: rest.collectionId
          page: rest.page
          pageSize: rest.pageSize
          Filter: rest.Filter
          Active: rest.Active
          Visible: rest.Visible
          CategoryId: rest.CategoryId
          BrandId: rest.BrandId
          SupplierId: rest.SupplierId
          SalesChannelId: rest.SalesChannelId
          ReleaseFrom: rest.ReleaseFrom
          ReleaseTo: rest.ReleaseTo
          SpecificationProduct: rest.SpecificationProduct
          SpecificationFieldId: rest.SpecificationFieldId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/catalog/pvt/collection/{collectionid}/stockkeepingunit/importexclude
      name: api-catalog-pvt-collection-collectionid-stockkeepingunit-importexclude
      description: REST surface for api-catalog-pvt-collection-collectionId-stockkeepingunit-importexclude.
      operations:
      - method: POST
        name: postremoveproductsbyimportfile
        description: VTex Remove products from collection by imported file
        call: catalog-collection-beta.postremoveproductsbyimportfile
        with:
          collectionId: rest.collectionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/catalog/pvt/collection/{collectionid}/stockkeepingunit/importinsert
      name: api-catalog-pvt-collection-collectionid-stockkeepingunit-importinsert
      description: REST surface for api-catalog-pvt-collection-collectionId-stockkeepingunit-importinsert.
      operations:
      - method: POST
        name: postaddproductsbyimportfile
        description: VTex Add products to collection by imported file
        call: catalog-collection-beta.postaddproductsbyimportfile
        with:
          collectionId: rest.collectionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/catalog-system/pvt/collection/search
      name: api-catalog-system-pvt-collection-search
      description: REST surface for api-catalog_system-pvt-collection-search.
      operations:
      - method: GET
        name: getallcollections
        description: VTex Get all collections
        call: catalog-collection-beta.getallcollections
        with:
          page: rest.page
          pageSize: rest.pageSize
          orderByAsc: rest.orderByAsc
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/catalog-system/pvt/collection/search/{searchterms}
      name: api-catalog-system-pvt-collection-search-searchterms
      description: REST surface for api-catalog_system-pvt-collection-search-searchTerms.
      operations:
      - method: GET
        name: getcollectionsbyseachterms
        description: VTex Get Collections by search terms
        call: catalog-collection-beta.getcollectionsbyseachterms
        with:
          searchTerms: rest.searchTerms
          page: rest.page
          pageSize: rest.pageSize
          orderByAsc: rest.orderByAsc
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: catalog-collection-beta-mcp
    port: 9090
    transport: http
    description: MCP adapter for VTex Catalog API — Collection Beta. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: vtex-create-collection
      description: VTex Create Collection
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: catalog-collection-beta.postcreatecollection
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-get-all-inactive-collections
      description: VTex Get all inactive collections
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: catalog-collection-beta.getallinactivecollections
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-import-collection-file-example
      description: VTex Import collection file example
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: catalog-collection-beta.getimportfileexample
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-get-products-collection
      description: VTex Get products from a collection
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: catalog-collection-beta.getproductsfromacollection
      with:
        collectionId: tools.collectionId
        page: tools.page
        pageSize: tools.pageSize
        Filter: tools.Filter
        Active: tools.Active
        Visible: tools.Visible
        CategoryId: tools.CategoryId
        BrandId: tools.BrandId
        SupplierId: tools.SupplierId
        SalesChannelId: tools.SalesChannelId
        ReleaseFrom: tools.ReleaseFrom
        ReleaseTo: tools.ReleaseTo
        SpecificationProduct: tools.SpecificationProduct
        SpecificationFieldId: tools.SpecificationFieldId
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-remove-products-collection-imported
      description: VTex Remove products from collection by imported file
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: catalog-collection-beta.postremoveproductsbyimportfile
      with:
        collectionId: tools.collectionId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-add-products-collection-imported
      description: VTex Add products to collection by imported file
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: catalog-collection-beta.postaddproductsbyimportfile
      with:
        collectionId: tools.collectionId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-get-all-collections
      description: VTex Get all collections
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: catalog-collection-beta.getallcollections
      with:
        page: tools.page
        pageSize: tools.pageSize
        orderByAsc: tools.orderByAsc
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-get-collections-search-terms
      description: VTex Get Collections by search terms
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: catalog-collection-beta.getcollectionsbyseachterms
      with:
        searchTerms: tools.searchTerms
        page: tools.page
        pageSize: tools.pageSize
        orderByAsc: tools.orderByAsc
      outputParameters:
      - type: object
        mapping: $.