Commusoft Customers API
Manage customer records including addresses, contacts, and property details
Manage customer records including addresses, contacts, and property details
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/commusoft-customers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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