Lightspeed Customer API
Customer records and contact details.
Customer records and contact details.
openapi: 3.1.0
info:
version: 1.0.0
title: Lightspeed Restaurant K Series Account Customer API
description: '**Lightspeed Restaurant** offers a **REST API** in order to communicate with the data in the system. These APIs are built using the RESTful standards and adhere to the basic verb interactions as defined by the REST standard.
Detailed developer guides can be found in the [Lightspeed Restaurant API Portal](https://api-portal.lsk.lightspeed.app/).
These services are in continuous development and subject to change. Please find our versioning policy [here](https://api-portal.lsk.lightspeed.app/quick-start/versioning).
'
x-logo:
altText: Lightspeed Commerce
url: static/lightspeed@2x.png
contact:
name: Lightspeed Commerce
url: https://api-portal.lsk.lightspeed.app/
x-generated-from: documentation
x-last-validated: '2026-06-02'
x-source-url: https://api-docs.lsk.lightspeed.app/source.json
servers:
- url: https://api.trial.lsk.lightspeed.app
description: Demo URL
x-bump-branch-name: demo
- url: https://api.lsk.lightspeed.app
description: Production URL
x-bump-branch-name: prod
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:
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'
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.
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.
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:
description: 'The Lightspeed Restaurant K-Series APIs support OAuth2 authentication using the [authorization code grant flow](https://www.oauth.com/oauth2-servers/server-side-apps/authorization-code/).
See our [Authorization Quick Start Guide](https://api-portal.lsk.lightspeed.app/quick-start/authentication/authorization-overview) for more details on how to authenticate.
'
type: oauth2
flows:
authorizationCode:
authorizationUrl: /oauth/authorize
tokenUrl: /oauth/token
scopes:
orders-api: 'Read business information, floors, menus, discounts, and production instructions.
Read and write orders and payments. Read [Rich Item](https://api-docs.lsk.lightspeed.app/prod/group/endpoint-rich-item) data.'
financial-api: Read financial data
reservation-***: Platform reservations scope. The `***` will be replaced by the [platform-code](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-platform-code) of the reservation platform.
items: Read and write items
propertymanagement: Read and write Property Management System configurations.
id-cards: Create and manage ID card batches and cards.
staff-api: Read shift information, read and write user information.
reservations-api: 'Configure *legacy* reservation integrations.
**Note:** This API will eventually be deprecated in favour of the new [Reservations for Platforms](https://api-docs.lsk.lightspeed.app/group/endpoint-reservations-for-platforms) API.
More information on the new reservations workflows can be found in the [Integration Guide](https://api-portal.lsk.lightspeed.app/category/reservations).'
x-tagGroups:
- name: Rich Item API
tags:
- Rich Item
- Migration
- name: Tax Preview API
tags:
- Tax Breakdown
- name: Staff Api
tags:
- Staff
- Internal Staff
- name: Reservation API
tags:
- Reservations for Platforms
- name: PMS API
tags:
- PMS
- name: Items API
tags:
- Items
- ItemsV2
- Menus
- Buttons
- Production Instructions
- Inventory
- Combos
- Groups
- MenusV2
- Accounting Group
- IntegrationMenu
- Price Lists
- Products
- ItemAppearance
- Modifiers
- ModifierGroups
- Allergens
- Locales
- RichItem
- name: id-cards-api API
tags:
- ID Cards
- name: Financial API
tags:
- Financial
- FinancialV2
- name: Online Ordering API
tags:
- Order and Pay
- 'Order and Pay: Webhook'