VTEX · Capability

VTex Logistics API — Inventory

VTex Logistics API — Inventory. 9 operations. Lead operation: VTex List inventory with dispatched reservations. Self-contained Naftiko capability covering one Vtex business surface.

Run with Naftiko VtexInventory

What You Can Do

GET
Getinventorywithdispatchedreservations — VTex List inventory with dispatched reservations
/v1/api/logistics/pvt/inventory/items/{itemid}/warehouses/{warehouseid}/dispatched
GET
Inventoryperdock — VTex List inventory per dock
/v1/api/logistics/pvt/inventory/items/{skuid}/docks/{dockid}
GET
Inventoryperdockandwarehouse — VTex List inventory per dock and warehouse
/v1/api/logistics/pvt/inventory/items/{skuid}/docks/{dockid}/warehouses/{warehouseid}
GET
Inventoryperwarehouse — VTex List inventory per warehouse
/v1/api/logistics/pvt/inventory/items/{skuid}/warehouses/{warehouseid}
GET
Getsupplylots — VTex List supply lots
/v1/api/logistics/pvt/inventory/items/{skuid}/warehouses/{warehouseid}/supplylots
PUT
Savesupplylot — VTex Save supply lot
/v1/api/logistics/pvt/inventory/items/{skuid}/warehouses/{warehouseid}/supplylots/{supplylotid}
POST
Transfersupplylot — VTex Transfer supply lot
/v1/api/logistics/pvt/inventory/items/{skuid}/warehouses/{warehouseid}/supplylots/{supplylotid}/transfer
GET
Inventorybysku — VTex List inventory by SKU
/v1/api/logistics/pvt/inventory/skus/{skuid}
PUT
Updateinventorybyskuandwarehouse — VTex Update inventory by SKU and warehouse
/v1/api/logistics/pvt/inventory/skus/{skuid}/warehouses/{warehouseid}

MCP Tools

vtex-list-inventory-dispatched-reservations

VTex List inventory with dispatched reservations

read-only idempotent
vtex-list-inventory-per-dock

VTex List inventory per dock

read-only idempotent
vtex-list-inventory-per-dock-2

VTex List inventory per dock and warehouse

read-only idempotent
vtex-list-inventory-per-warehouse

VTex List inventory per warehouse

read-only idempotent
vtex-list-supply-lots

VTex List supply lots

read-only idempotent
vtex-save-supply-lot

VTex Save supply lot

idempotent
vtex-transfer-supply-lot

VTex Transfer supply lot

vtex-list-inventory-sku

VTex List inventory by SKU

read-only idempotent
vtex-update-inventory-sku-and

VTex Update inventory by SKU and warehouse

idempotent

Capability Spec

logistics-inventory.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: VTex Logistics API — Inventory
  description: 'VTex Logistics API — Inventory. 9 operations. Lead operation: VTex List inventory with dispatched reservations.
    Self-contained Naftiko capability covering one Vtex business surface.'
  tags:
  - Vtex
  - Inventory
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    VTEX_API_KEY: VTEX_API_KEY
capability:
  consumes:
  - type: http
    namespace: logistics-inventory
    baseUri: https://{accountName}.{environment}.com.br
    description: VTex Logistics API — Inventory business capability. Self-contained, no shared references.
    resources:
    - name: api-logistics-pvt-inventory-items-itemId-warehouses-warehouseId-dispatched
      path: /api/logistics/pvt/inventory/items/{itemId}/warehouses/{warehouseId}/dispatched
      operations:
      - name: getinventorywithdispatchedreservations
        method: GET
        description: VTex List inventory with dispatched reservations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: itemId
          in: path
          type: string
          description: SKU unique identifier called SKU ID. This field is an equivalent to `skuId`.
          required: true
        - name: warehouseId
          in: path
          type: string
          description: Warehouse ID is the unique identifier of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).
          required: true
    - name: api-logistics-pvt-inventory-items-skuId-docks-dockId
      path: /api/logistics/pvt/inventory/items/{skuId}/docks/{dockId}
      operations:
      - name: inventoryperdock
        method: GET
        description: VTex List inventory per dock
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: skuId
          in: path
          type: string
          description: Every SKU has a unique identifier called SKU ID.
          required: true
        - name: dockId
          in: path
          type: string
          description: Dock ID is the unique identifier of the [loading dock](https://help.vtex.com/en/tutorial/loading-dock--5DY8xHEjOLYDVL41Urd5qj).
          required: true
    - name: api-logistics-pvt-inventory-items-skuId-docks-dockId-warehouses-warehouseId
      path: /api/logistics/pvt/inventory/items/{skuId}/docks/{dockId}/warehouses/{warehouseId}
      operations:
      - name: inventoryperdockandwarehouse
        method: GET
        description: VTex List inventory per dock and warehouse
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: skuId
          in: path
          type: string
          required: true
        - name: dockId
          in: path
          type: string
          required: true
        - name: warehouseId
          in: path
          type: string
          required: true
    - name: api-logistics-pvt-inventory-items-skuId-warehouses-warehouseId
      path: /api/logistics/pvt/inventory/items/{skuId}/warehouses/{warehouseId}
      operations:
      - name: inventoryperwarehouse
        method: GET
        description: VTex List inventory per warehouse
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: skuId
          in: path
          type: string
          description: Every SKU has a unique identifier called SKU ID.
          required: true
        - name: warehouseId
          in: path
          type: string
          description: Warehouse ID is the unique identifier of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb).
          required: true
    - name: api-logistics-pvt-inventory-items-skuId-warehouses-warehouseId-supplyLots
      path: /api/logistics/pvt/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots
      operations:
      - name: getsupplylots
        method: GET
        description: VTex List supply lots
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: skuId
          in: path
          type: string
          description: ID of the SKU.
          required: true
        - name: warehouseId
          in: path
          type: string
          description: ID of the warehouse where the SKU is located.
          required: true
    - name: api-logistics-pvt-inventory-items-skuId-warehouses-warehouseId-supplyLots-supply
      path: /api/logistics/pvt/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}
      operations:
      - name: savesupplylot
        method: PUT
        description: VTex Save supply lot
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: skuId
          in: path
          type: string
          description: ID of the SKU whose availability is being scheduled.
          required: true
        - name: warehouseId
          in: path
          type: string
          description: ID of the warehouse where the SKU will arrive.
          required: true
        - name: supplyLotId
          in: path
          type: string
          description: ID of the Supply Lot in which the SKU's scheduling should be considered.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-logistics-pvt-inventory-items-skuId-warehouses-warehouseId-supplyLots-supply
      path: /api/logistics/pvt/inventory/items/{skuId}/warehouses/{warehouseId}/supplyLots/{supplyLotId}/transfer
      operations:
      - name: transfersupplylot
        method: POST
        description: VTex Transfer supply lot
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: skuId
          in: path
          type: string
          description: ID of the SKU.
          required: true
        - name: warehouseId
          in: path
          type: string
          description: ID of the warehouse where the SKU is located.
          required: true
        - name: supplyLotId
          in: path
          type: string
          description: ID of the Supply Lot in which the SKU is currently located and from where it will be transfered.
          required: true
    - name: api-logistics-pvt-inventory-skus-skuId
      path: /api/logistics/pvt/inventory/skus/{skuId}
      operations:
      - name: inventorybysku
        method: GET
        description: VTex List inventory by SKU
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: skuId
          in: path
          type: string
          description: Every SKU has a unique identifier called SKU ID.
          required: true
    - name: api-logistics-pvt-inventory-skus-skuId-warehouses-warehouseId
      path: /api/logistics/pvt/inventory/skus/{skuId}/warehouses/{warehouseId}
      operations:
      - name: updateinventorybyskuandwarehouse
        method: PUT
        description: VTex Update inventory by SKU and warehouse
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.
          required: true
        - name: Content-Type
          in: header
          type: string
          description: Type of the content being sent.
          required: true
        - name: skuId
          in: path
          type: string
          description: SKU ID is the unique identifier of the SKU you wish to update.
          required: true
        - name: warehouseId
          in: path
          type: string
          description: Warehouse ID is the unique identifier of the [warehouse](https://help.vtex.com/en/tutorial/warehouse--6oIxvsVDTtGpO7y6zwhGpb)
            associated with the SKU you wish t
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: apikey
      key: X-VTEX-API-AppKey
      value: '{{env.VTEX_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: logistics-inventory-rest
    port: 8080
    description: REST adapter for VTex Logistics API — Inventory. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/api/logistics/pvt/inventory/items/{itemid}/warehouses/{warehouseid}/dispatched
      name: api-logistics-pvt-inventory-items-itemid-warehouses-warehouseid-dispatched
      description: REST surface for api-logistics-pvt-inventory-items-itemId-warehouses-warehouseId-dispatched.
      operations:
      - method: GET
        name: getinventorywithdispatchedreservations
        description: VTex List inventory with dispatched reservations
        call: logistics-inventory.getinventorywithdispatchedreservations
        with:
          Content-Type: rest.Content-Type
          Accept: rest.Accept
          itemId: rest.itemId
          warehouseId: rest.warehouseId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/logistics/pvt/inventory/items/{skuid}/docks/{dockid}
      name: api-logistics-pvt-inventory-items-skuid-docks-dockid
      description: REST surface for api-logistics-pvt-inventory-items-skuId-docks-dockId.
      operations:
      - method: GET
        name: inventoryperdock
        description: VTex List inventory per dock
        call: logistics-inventory.inventoryperdock
        with:
          Content-Type: rest.Content-Type
          Accept: rest.Accept
          skuId: rest.skuId
          dockId: rest.dockId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/logistics/pvt/inventory/items/{skuid}/docks/{dockid}/warehouses/{warehouseid}
      name: api-logistics-pvt-inventory-items-skuid-docks-dockid-warehouses-warehouseid
      description: REST surface for api-logistics-pvt-inventory-items-skuId-docks-dockId-warehouses-warehouseId.
      operations:
      - method: GET
        name: inventoryperdockandwarehouse
        description: VTex List inventory per dock and warehouse
        call: logistics-inventory.inventoryperdockandwarehouse
        with:
          Content-Type: rest.Content-Type
          Accept: rest.Accept
          skuId: rest.skuId
          dockId: rest.dockId
          warehouseId: rest.warehouseId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/logistics/pvt/inventory/items/{skuid}/warehouses/{warehouseid}
      name: api-logistics-pvt-inventory-items-skuid-warehouses-warehouseid
      description: REST surface for api-logistics-pvt-inventory-items-skuId-warehouses-warehouseId.
      operations:
      - method: GET
        name: inventoryperwarehouse
        description: VTex List inventory per warehouse
        call: logistics-inventory.inventoryperwarehouse
        with:
          Content-Type: rest.Content-Type
          Accept: rest.Accept
          skuId: rest.skuId
          warehouseId: rest.warehouseId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/logistics/pvt/inventory/items/{skuid}/warehouses/{warehouseid}/supplylots
      name: api-logistics-pvt-inventory-items-skuid-warehouses-warehouseid-supplylots
      description: REST surface for api-logistics-pvt-inventory-items-skuId-warehouses-warehouseId-supplyLots.
      operations:
      - method: GET
        name: getsupplylots
        description: VTex List supply lots
        call: logistics-inventory.getsupplylots
        with:
          Accept: rest.Accept
          Content-Type: rest.Content-Type
          skuId: rest.skuId
          warehouseId: rest.warehouseId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/logistics/pvt/inventory/items/{skuid}/warehouses/{warehouseid}/supplylots/{supplylotid}
      name: api-logistics-pvt-inventory-items-skuid-warehouses-warehouseid-supplylots-supply
      description: REST surface for api-logistics-pvt-inventory-items-skuId-warehouses-warehouseId-supplyLots-supply.
      operations:
      - method: PUT
        name: savesupplylot
        description: VTex Save supply lot
        call: logistics-inventory.savesupplylot
        with:
          Accept: rest.Accept
          Content-Type: rest.Content-Type
          skuId: rest.skuId
          warehouseId: rest.warehouseId
          supplyLotId: rest.supplyLotId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/logistics/pvt/inventory/items/{skuid}/warehouses/{warehouseid}/supplylots/{supplylotid}/transfer
      name: api-logistics-pvt-inventory-items-skuid-warehouses-warehouseid-supplylots-supply
      description: REST surface for api-logistics-pvt-inventory-items-skuId-warehouses-warehouseId-supplyLots-supply.
      operations:
      - method: POST
        name: transfersupplylot
        description: VTex Transfer supply lot
        call: logistics-inventory.transfersupplylot
        with:
          Accept: rest.Accept
          Content-Type: rest.Content-Type
          skuId: rest.skuId
          warehouseId: rest.warehouseId
          supplyLotId: rest.supplyLotId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/logistics/pvt/inventory/skus/{skuid}
      name: api-logistics-pvt-inventory-skus-skuid
      description: REST surface for api-logistics-pvt-inventory-skus-skuId.
      operations:
      - method: GET
        name: inventorybysku
        description: VTex List inventory by SKU
        call: logistics-inventory.inventorybysku
        with:
          Content-Type: rest.Content-Type
          Accept: rest.Accept
          skuId: rest.skuId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/logistics/pvt/inventory/skus/{skuid}/warehouses/{warehouseid}
      name: api-logistics-pvt-inventory-skus-skuid-warehouses-warehouseid
      description: REST surface for api-logistics-pvt-inventory-skus-skuId-warehouses-warehouseId.
      operations:
      - method: PUT
        name: updateinventorybyskuandwarehouse
        description: VTex Update inventory by SKU and warehouse
        call: logistics-inventory.updateinventorybyskuandwarehouse
        with:
          Accept: rest.Accept
          Content-Type: rest.Content-Type
          skuId: rest.skuId
          warehouseId: rest.warehouseId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: logistics-inventory-mcp
    port: 9090
    transport: http
    description: MCP adapter for VTex Logistics API — Inventory. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: vtex-list-inventory-dispatched-reservations
      description: VTex List inventory with dispatched reservations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: logistics-inventory.getinventorywithdispatchedreservations
      with:
        Content-Type: tools.Content-Type
        Accept: tools.Accept
        itemId: tools.itemId
        warehouseId: tools.warehouseId
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-list-inventory-per-dock
      description: VTex List inventory per dock
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: logistics-inventory.inventoryperdock
      with:
        Content-Type: tools.Content-Type
        Accept: tools.Accept
        skuId: tools.skuId
        dockId: tools.dockId
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-list-inventory-per-dock-2
      description: VTex List inventory per dock and warehouse
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: logistics-inventory.inventoryperdockandwarehouse
      with:
        Content-Type: tools.Content-Type
        Accept: tools.Accept
        skuId: tools.skuId
        dockId: tools.dockId
        warehouseId: tools.warehouseId
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-list-inventory-per-warehouse
      description: VTex List inventory per warehouse
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: logistics-inventory.inventoryperwarehouse
      with:
        Content-Type: tools.Content-Type
        Accept: tools.Accept
        skuId: tools.skuId
        warehouseId: tools.warehouseId
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-list-supply-lots
      description: VTex List supply lots
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: logistics-inventory.getsupplylots
      with:
        Accept: tools.Accept
        Content-Type: tools.Content-Type
        skuId: tools.skuId
        warehouseId: tools.warehouseId
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-save-supply-lot
      description: VTex Save supply lot
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: logistics-inventory.savesupplylot
      with:
        Accept: tools.Accept
        Content-Type: tools.Content-Type
        skuId: tools.skuId
        warehouseId: tools.warehouseId
        supplyLotId: tools.supplyLotId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-transfer-supply-lot
      description: VTex Transfer supply lot
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: logistics-inventory.transfersupplylot
      with:
        Accept: tools.Accept
        Content-Type: tools.Content-Type
        skuId: tools.skuId
        warehouseId: tools.warehouseId
        supplyLotId: tools.supplyLotId
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-list-inventory-sku
      description: VTex List inventory by SKU
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: logistics-inventory.inventorybysku
      with:
        Content-Type: tools.Content-Type
        Accept: tools.Accept
        skuId: tools.skuId
      outputParameters:
      - type: object
        mapping: $.
    - name: vtex-update-inventory-sku-and
      description: VTex Update inventory by SKU and warehouse
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: logistics-inventory.updateinventorybyskuandwarehouse
      with:
        Accept: tools.Accept
        Content-Type: tools.Content-Type
        skuId: tools.skuId
        warehouseId: tools.warehouseId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.