Lightspeed Customer API
Customer records and contact details.
Customer records and contact 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/lightspeed-pos-customer-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: Lightspeed Retail R-Series Customer API
description: 'OpenAPI 3.1 representation of the Lightspeed Retail R-Series REST API
(the original Lightspeed Retail / Retail Pro cloud POS). The R-Series API
is documented at https://developers.lightspeedhq.com/retail/introduction/introduction/
and exposes account-scoped resources under
https://api.lightspeedapp.com/API/V3/Account/{accountID}. It uses OAuth 2.0
with scope-based access control and supports both JSON (`.json`) and XML
response formats. The numeric `accountID` is not the OAuth client_id; it
must be resolved via `GET /API/V3/Account.json` immediately after the token
exchange and is required for every subsequent account-scoped call.
'
version: 3.0.0
contact:
name: Lightspeed Commerce
url: https://developers.lightspeedhq.com/retail/introduction/introduction/
x-generated-from: documentation
x-last-validated: '2026-06-02'
x-source-url: https://developers.lightspeedhq.com/retail/introduction/introduction/
servers:
- url: https://api.lightspeedapp.com/API/V3
description: Lightspeed Retail R-Series API host.
security:
- OAuth2: []
tags:
- name: Customer
description: Customer records and contact details.
paths:
/Account/{accountID}/Customer.json:
get:
summary: Lightspeed List Customers
operationId: getCustomers
description: Returns customer records for the account.
tags:
- Customer
security:
- OAuth2:
- employee:customers_read
parameters:
- $ref: '#/components/parameters/accountID'
- name: limit
in: query
schema:
type: integer
default: 100
responses:
'200':
description: A page of customers.
content:
application/json:
schema:
type: object
properties:
'@attributes':
$ref: '#/components/schemas/Attributes'
Customer:
type: array
items:
$ref: '#/components/schemas/Customer'
examples:
GetCustomers200Example:
summary: Default getCustomers 200 response
x-microcks-default: true
value:
'@attributes':
count: 739
offset: 994
limit: 647
Customer:
- customerID: '500123'
firstName: Sample firstName
lastName: Sample lastName
company: example
contactID: '500123'
discountID: '500123'
taxCategoryID: '500123'
Contact: {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Lightspeed Create Customer
operationId: createCustomer
description: Creates a new customer record.
tags:
- Customer
security:
- OAuth2:
- employee:customers
parameters:
- $ref: '#/components/parameters/accountID'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
examples:
CreateCustomerRequestExample:
summary: Default createCustomer request
x-microcks-default: true
value:
customerID: '500123'
firstName: Sample firstName
lastName: Sample lastName
company: example
contactID: '500123'
discountID: '500123'
taxCategoryID: '500123'
Contact:
contactID: '500123'
custom: example
noEmail: true
noPhone: true
noMail: true
responses:
'200':
description: Customer created.
content:
application/json:
schema:
type: object
properties:
Customer:
$ref: '#/components/schemas/Customer'
examples:
CreateCustomer200Example:
summary: Default createCustomer 200 response
x-microcks-default: true
value:
Customer:
customerID: '500123'
firstName: Sample firstName
lastName: Sample lastName
company: example
contactID: '500123'
discountID: '500123'
taxCategoryID: '500123'
Contact:
contactID: '500123'
custom: example
noEmail: true
noPhone: true
noMail: false
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/Account/{accountID}/Customer/{customerID}.json:
get:
summary: Lightspeed Get Customer by ID
operationId: getCustomerById
description: Returns a single customer by its customerID.
tags:
- Customer
security:
- OAuth2:
- employee:customers_read
parameters:
- $ref: '#/components/parameters/accountID'
- $ref: '#/components/parameters/customerID'
responses:
'200':
description: The customer.
content:
application/json:
schema:
type: object
properties:
Customer:
$ref: '#/components/schemas/Customer'
examples:
GetCustomerById200Example:
summary: Default getCustomerById 200 response
x-microcks-default: true
value:
Customer:
customerID: '500123'
firstName: Sample firstName
lastName: Sample lastName
company: example
contactID: '500123'
discountID: '500123'
taxCategoryID: '500123'
Contact:
contactID: '500123'
custom: example
noEmail: false
noPhone: true
noMail: true
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
Attributes:
type: object
description: Pagination metadata returned in list responses.
properties:
count:
type: integer
description: Total number of matching records.
offset:
type: integer
description: Offset of the current page.
limit:
type: integer
description: Page size limit.
Contact:
type: object
description: Contact details associated with a customer.
properties:
contactID:
type: string
description: Unique contact identifier.
custom:
type: string
description: Custom contact field.
noEmail:
type: boolean
description: Whether the contact opted out of email.
noPhone:
type: boolean
description: Whether the contact opted out of phone contact.
noMail:
type: boolean
description: Whether the contact opted out of mail.
Customer:
type: object
description: A customer record.
properties:
customerID:
type: string
description: Unique customer identifier.
firstName:
type: string
description: Customer first name.
lastName:
type: string
description: Customer last name.
company:
type: string
description: Customer company name.
contactID:
type: string
description: Identifier of the related contact record.
discountID:
type: string
description: Default discount applied to the customer.
taxCategoryID:
type: string
description: Tax category for the customer.
Contact:
$ref: '#/components/schemas/Contact'
parameters:
accountID:
name: accountID
in: path
required: true
description: The numeric Lightspeed Retail account identifier, resolved via GET /Account.json.
schema:
type: string
customerID:
name: customerID
in: path
required: true
description: The unique identifier of the customer.
schema:
type: string
securitySchemes:
OAuth2:
type: oauth2
description: OAuth 2.0 authorization-code flow with scope-based access control.
flows:
authorizationCode:
authorizationUrl: https://cloud.lightspeedapp.com/oauth/authorize.php
tokenUrl: https://cloud.lightspeedapp.com/oauth/access_token.php
scopes:
employee:all: Full access to all account resources.
employee:admin: Manage employees and shops.
employee:inventory: Create and modify inventory items.
employee:inventory_read: Read inventory items and catalog.
employee:register: Create sales at the register.
employee:reports: Read sales and reporting data.
employee:customers: Create and modify customers.
employee:customers_read: Read customers.