Commusoft Customers API

Manage customer records including addresses, contacts, and property details

Operations 5

GET /customers List Customers #
POST /customers Create Customer #
GET /customers/{uuid} Get Customer #
PUT /customers/{uuid} Update Customer #
DELETE /customers/{uuid} Delete Customer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/commusoft-customers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

commusoft-customers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Commusoft Authentication Customers API
  description: The Commusoft API is a RESTful JSON-based API designed to allow third parties to integrate products and applications with Commusoft's field service management platform. It enables programmatic management of jobs, customers, engineers, quotes, invoices, parts, and service histories for trades businesses including HVAC, plumbing, electrical, and building maintenance contractors. The API supports integrations with accounting tools (QuickBooks, Xero, Sage), payment processors (Stripe, GoCardless), and workflow automation platforms (Zapier).
  version: 1.0.0
  contact:
    url: https://www.commusoft.com/
  x-api-id: commusoft-api
  x-audience: external-partner
servers:
- url: https://api.commusoft.com/api/v1
  description: Commusoft production API server
security:
- ApiTokenHeader: []
- ApiTokenQuery: []
tags:
- name: Customers
  description: Manage customer records including addresses, contacts, and property details
paths:
  /customers:
    get:
      operationId: listCustomers
      summary: List Customers
      description: Retrieve a list of customers from the Commusoft system.
      tags:
      - Customers
      parameters:
      - $ref: '#/components/parameters/UuidParam'
      responses:
        '200':
          description: List of customers
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Customer'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createCustomer
      summary: Create Customer
      description: Add a new customer record to the Commusoft system.
      tags:
      - Customers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerInput'
      responses:
        '201':
          description: Customer created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /customers/{uuid}:
    get:
      operationId: getCustomer
      summary: Get Customer
      description: Retrieve a specific customer record by UUID.
      tags:
      - Customers
      parameters:
      - $ref: '#/components/parameters/UuidPath'
      responses:
        '200':
          description: Customer record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateCustomer
      summary: Update Customer
      description: Edit an existing customer record identified by UUID.
      tags:
      - Customers
      parameters:
      - $ref: '#/components/parameters/UuidPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerInput'
      responses:
        '200':
          description: Customer updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteCustomer
      summary: Delete Customer
      description: Soft-delete a customer record. Commusoft never permanently deletes a customer; instead the record's Deleted field is set to 1.
      tags:
      - Customers
      parameters:
      - $ref: '#/components/parameters/UuidPath'
      responses:
        '200':
          description: Customer soft-deleted
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    AccountingSettings:
      type: object
      properties:
        accountingReference:
          type: string
          description: External accounting system reference code
        vatNumber:
          type: string
          description: VAT registration number
        paymentTerms:
          type: integer
          description: Payment terms in days
    PropertyDetails:
      type: object
      properties:
        propertyType:
          type: string
          description: Type of property (residential, commercial, etc.)
        numberOfBedrooms:
          type: integer
          description: Number of bedrooms
        yearBuilt:
          type: integer
          description: Year the property was built
        boilerMake:
          type: string
          description: Make of the boiler installed
        boilerModel:
          type: string
          description: Model of the boiler installed
    Error:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message
        code:
          type: integer
          description: Error code
    Address:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the address
        addressLine2:
          type: string
          description: Second line of the address
        town:
          type: string
          description: Town or city
        county:
          type: string
          description: County or region
        postcode:
          type: string
          description: Postcode or zip code
        country:
          type: string
          description: Country
    Customer:
      type: object
      properties:
        id:
          type: integer
          description: Internal numeric ID
          readOnly: true
        uuid:
          type: string
          format: uuid
          description: Universally unique identifier for the customer
          readOnly: true
        title:
          type: string
          description: Title (Mr, Mrs, Dr, etc.)
        firstName:
          type: string
          description: Customer first name
        lastName:
          type: string
          description: Customer last name
        companyName:
          type: string
          description: Company name for business customers
        email:
          type: string
          format: email
          description: Primary email address
        telephone:
          type: string
          description: Primary telephone number
        mobile:
          type: string
          description: Mobile telephone number
        address:
          $ref: '#/components/schemas/Address'
        propertyDetails:
          $ref: '#/components/schemas/PropertyDetails'
        accountingSettings:
          $ref: '#/components/schemas/AccountingSettings'
        deleted:
          type: integer
          enum:
          - 0
          - 1
          description: Soft-delete flag; 1 indicates the record has been deleted
          readOnly: true
        createdAt:
          type: string
          format: date-time
          readOnly: true
        updatedAt:
          type: string
          format: date-time
          readOnly: true
    CustomerInput:
      type: object
      required:
      - uuid
      - lastName
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID for the new customer record
        title:
          type: string
          description: Title (Mr, Mrs, Dr, etc.)
        firstName:
          type: string
          description: Customer first name
        lastName:
          type: string
          description: Customer last name
        companyName:
          type: string
          description: Company name for business customers
        email:
          type: string
          format: email
          description: Primary email address
        telephone:
          type: string
          description: Primary telephone number
        mobile:
          type: string
          description: Mobile telephone number
        address:
          $ref: '#/components/schemas/Address'
        propertyDetails:
          $ref: '#/components/schemas/PropertyDetails'
        accountingSettings:
          $ref: '#/components/schemas/AccountingSettings'
  responses:
    Unauthorized:
      description: Authentication token missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request body or parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    UuidParam:
      name: uuid
      in: query
      required: false
      description: Filter by UUID
      schema:
        type: string
        format: uuid
    UuidPath:
      name: uuid
      in: path
      required: true
      description: Unique identifier (UUID) of the record
      schema:
        type: string
        format: uuid
  securitySchemes:
    ApiTokenHeader:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: API token obtained from the /getToken endpoint
    ApiTokenQuery:
      type: apiKey
      in: query
      name: token
      description: API token passed as a query parameter