Vendure · Capability

Vendure Admin API — Customers

Vendure Admin API capability for customer and customer-group management. Requires Read/Update Customer permissions.

Vendure Admin API — Customers is a Naftiko capability published by Vendure, one of 10 capabilities the APIs.io network indexes for this provider. It bundles 9 operations across the POST method rooted at /v1/admin.

The capability includes 3 read-only operations and 6 state-changing operations. Lead operation: List customers. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Vendure, Admin, Customers, and CRM.

Run with Naftiko VendureAdminCustomersCRM

What You Can Do

POST
Querycustomers
/v1/admin/customers/query
POST
Querycustomer
/v1/admin/customer/query
POST
Createcustomer
/v1/admin/customer/create
POST
Updatecustomer
/v1/admin/customer/update
POST
Deletecustomer
/v1/admin/customer/delete
POST
Createcustomeraddress
/v1/admin/customer/address
POST
Querycustomergroups
/v1/admin/customer-groups/query
POST
Createcustomergroup
/v1/admin/customer-group/create
POST
Addcustomerstogroup
/v1/admin/customer-group/add-customers

MCP Tools

vendure-admin-list-customers

List customers.

read-only idempotent
vendure-admin-get-customer

Get a customer.

read-only idempotent
vendure-admin-create-customer

Create a customer.

vendure-admin-update-customer

Update a customer.

idempotent
vendure-admin-delete-customer

Delete a customer.

idempotent
vendure-admin-add-customer-address

Add an address to a customer.

vendure-admin-list-customer-groups

List customer groups.

read-only idempotent
vendure-admin-create-customer-group

Create a customer group.

vendure-admin-add-customers-to-group

Add customers to a group.

Capability Spec

admin-customers.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Vendure Admin API — Customers
  description: >-
    Vendure Admin API capability for customer and customer-group management.
    Requires Read/Update Customer permissions.
  tags:
    - Vendure
    - Admin
    - Customers
    - CRM
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
  - namespace: env
    keys:
      VENDURE_ADMIN_API_URL: VENDURE_ADMIN_API_URL
      VENDURE_ADMIN_TOKEN: VENDURE_ADMIN_TOKEN
capability:
  consumes:
    - type: http
      namespace: admin-customers
      baseUri: '{{env.VENDURE_ADMIN_API_URL}}'
      description: Vendure Admin GraphQL endpoint for customer operations.
      resources:
        - name: admin-graphql
          path: /
          operations:
            - { name: queryCustomers, method: POST, description: List customers., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
            - { name: queryCustomer, method: POST, description: Get a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
            - { name: createCustomer, method: POST, description: Create a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
            - { name: updateCustomer, method: POST, description: Update a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
            - { name: deleteCustomer, method: POST, description: Delete a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
            - { name: createCustomerAddress, method: POST, description: Add an address to a customer., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
            - { name: queryCustomerGroups, method: POST, description: List customer groups., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
            - { name: createCustomerGroup, method: POST, description: Create a customer group., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
            - { name: addCustomersToGroup, method: POST, description: Add customers to a group., outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ], inputParameters: [ { name: body, in: body, type: object, required: true } ] }
      authentication:
        type: bearer
        token: '{{env.VENDURE_ADMIN_TOKEN}}'
  exposes:
    - type: rest
      namespace: admin-customers-rest
      port: 8080
      description: REST adapter exposing Admin customer operations.
      resources:
        - { path: /v1/admin/customers/query, name: customers, operations: [ { method: POST, name: queryCustomers, call: admin-customers.queryCustomers, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
        - { path: /v1/admin/customer/query, name: customer, operations: [ { method: POST, name: queryCustomer, call: admin-customers.queryCustomer, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
        - { path: /v1/admin/customer/create, name: customer-create, operations: [ { method: POST, name: createCustomer, call: admin-customers.createCustomer, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
        - { path: /v1/admin/customer/update, name: customer-update, operations: [ { method: POST, name: updateCustomer, call: admin-customers.updateCustomer, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
        - { path: /v1/admin/customer/delete, name: customer-delete, operations: [ { method: POST, name: deleteCustomer, call: admin-customers.deleteCustomer, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
        - { path: /v1/admin/customer/address, name: customer-address, operations: [ { method: POST, name: createCustomerAddress, call: admin-customers.createCustomerAddress, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
        - { path: /v1/admin/customer-groups/query, name: customer-groups, operations: [ { method: POST, name: queryCustomerGroups, call: admin-customers.queryCustomerGroups, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
        - { path: /v1/admin/customer-group/create, name: customer-group-create, operations: [ { method: POST, name: createCustomerGroup, call: admin-customers.createCustomerGroup, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
        - { path: /v1/admin/customer-group/add-customers, name: customer-group-add, operations: [ { method: POST, name: addCustomersToGroup, call: admin-customers.addCustomersToGroup, with: { body: rest.body }, outputParameters: [ { type: object, mapping: $. } ] } ] }
    - type: mcp
      namespace: admin-customers-mcp
      port: 9090
      transport: http
      description: MCP adapter — one tool per Admin customer operation.
      tools:
        - { name: vendure-admin-list-customers, description: List customers., hints: { readOnly: true, destructive: false, idempotent: true }, call: admin-customers.queryCustomers, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }
        - { name: vendure-admin-get-customer, description: Get a customer., hints: { readOnly: true, destructive: false, idempotent: true }, call: admin-customers.queryCustomer, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }
        - { name: vendure-admin-create-customer, description: Create a customer., hints: { readOnly: false, destructive: false, idempotent: false }, call: admin-customers.createCustomer, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }
        - { name: vendure-admin-update-customer, description: Update a customer., hints: { readOnly: false, destructive: false, idempotent: true }, call: admin-customers.updateCustomer, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }
        - { name: vendure-admin-delete-customer, description: Delete a customer., hints: { readOnly: false, destructive: true, idempotent: true }, call: admin-customers.deleteCustomer, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }
        - { name: vendure-admin-add-customer-address, description: Add an address to a customer., hints: { readOnly: false, destructive: false, idempotent: false }, call: admin-customers.createCustomerAddress, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }
        - { name: vendure-admin-list-customer-groups, description: List customer groups., hints: { readOnly: true, destructive: false, idempotent: true }, call: admin-customers.queryCustomerGroups, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }
        - { name: vendure-admin-create-customer-group, description: Create a customer group., hints: { readOnly: false, destructive: false, idempotent: false }, call: admin-customers.createCustomerGroup, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }
        - { name: vendure-admin-add-customers-to-group, description: Add customers to a group., hints: { readOnly: false, destructive: false, idempotent: false }, call: admin-customers.addCustomersToGroup, with: { body: tools.body }, outputParameters: [ { type: object, mapping: $. } ] }