Shop-Ware Staff Members API
The Staff Members API from Shop-Ware — 3 operation(s) for staff members.
The Staff Members API from Shop-Ware — 3 operation(s) for staff members.
openapi: 3.0.1
info:
title: API V1 API Partners Staff Members API
version: v1
contact:
name: API Support
email: support@shop-ware.com
security:
- api_partner_id: []
api_secret: []
tags:
- name: Staff Members
paths:
/api/v1/tenants/{tenant_id}/staffs:
parameters:
- name: tenant_id
in: path
required: true
example: '1'
schema:
type: integer
get:
summary: Get a list of all staff members
tags:
- Staff Members
parameters:
- name: page
in: query
required: false
example: '1'
schema:
type: integer
- name: per_page
in: query
required: false
example: '30'
schema:
type: integer
- name: is_active
in: query
required: false
example: 'true'
schema:
type: boolean
- name: assigned_shop_id
in: query
required: false
example: '1'
schema:
type: integer
- name: updated_after
in: query
required: false
format: date-time
description: Filter response to only include records updated after a given time
example: 2022-10-24T12%3A00%3A00%2B08%3A00
schema:
type: string
responses:
'200':
description: successful
content:
application/json:
examples:
successful:
value:
results:
- id: 1
created_at: '2026-06-09T14:25:59Z'
updated_at: '2026-06-09T14:25:59Z'
first_name: James
last_name: Brown
advisor: true
technician: true
active: true
assigned_shop_id: 1
employee_id: 1
email: mrdynamite@example.com
integrator_tags:
- id: 1
created_at: '2026-06-09T14:25:59Z'
updated_at: '2026-06-09T14:25:59Z'
taggable_type: Staff
taggable_id: 1
name: tag_name
value: tag_value
limit: 1
limited: false
total_count: 1
current_page: 1
total_pages: 1
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
id:
type: integer
description: Unique identifier of this record.
first_name:
type: string
description: Staff`s first name.
last_name:
type: string
description: Staff`s last name
advisor:
type: boolean
description: true if the staff member is a service advisor, false otherwise.
technician:
type: boolean
description: true if the staff member is a technician, false otherwise.
active:
type: boolean
description: true if the staff member is an active Shop-Ware user, false if they have been deactivated.
assigned_shop_id:
type: integer
description: A foreign key that points to the Shop this staff is currently assigned to.
employee_id:
type: integer
description: Staff`s employee identifier.
email:
type: string
description: Staff`s email.
created_at:
type: string
format: date-time
description: Date and time when record was created.
updated_at:
type: string
format: date-time
description: Date and time when record was last updated.
integrator_tags:
type: array
items:
type: object
properties:
id:
type: integer
description: The tag primary key.
taggable_type:
type: string
description: Entity type the tag attached to.
taggable_id:
type: integer
description: Entity identifier the tag attached to.
name:
type: string
description: Tag Name.
value:
type: string
description: Tag Value.
created_at:
type: string
format: date-time
description: The date and time when tag was created.
updated_at:
type: string
format: date-time
description: The date and time when tag was last updated.
limit:
type: integer
limited:
type: boolean
total_count:
type: integer
current_page:
type: integer
total_pages:
type: integer
post:
summary: Create a new staff member
tags:
- Staff Members
parameters: []
responses:
'201':
description: successful
content:
application/json:
examples:
successful:
value:
id: 1
created_at: '2026-06-09T14:26:02Z'
updated_at: '2026-06-09T14:26:02Z'
first_name: James
last_name: Brown
advisor: true
technician: true
active: true
assigned_shop_id: 1
employee_id: 1
email: mrdynamite@example.com
integrator_tags:
- id: 1
created_at: '2026-06-09T14:26:02Z'
updated_at: '2026-06-09T14:26:02Z'
taggable_type: Staff
taggable_id: 1
name: tag_name
value: tag_value
schema:
type: object
properties:
id:
type: integer
description: Unique identifier of this record.
first_name:
type: string
description: Staff`s first name.
last_name:
type: string
description: Staff`s last name
advisor:
type: boolean
description: true if the staff member is a service advisor, false otherwise.
technician:
type: boolean
description: true if the staff member is a technician, false otherwise.
active:
type: boolean
description: true if the staff member is an active Shop-Ware user, false if they have been deactivated.
assigned_shop_id:
type: integer
description: A foreign key that points to the Shop this staff is currently assigned to.
employee_id:
type: integer
description: Staff`s employee identifier.
email:
type: string
description: Staff`s email.
created_at:
type: string
format: date-time
description: Date and time when record was created.
updated_at:
type: string
format: date-time
description: Date and time when record was last updated.
integrator_tags:
type: array
items:
type: object
properties:
id:
type: integer
description: The tag primary key.
taggable_type:
type: string
description: Entity type the tag attached to.
taggable_id:
type: integer
description: Entity identifier the tag attached to.
name:
type: string
description: Tag Name.
value:
type: string
description: Tag Value.
created_at:
type: string
format: date-time
description: The date and time when tag was created.
updated_at:
type: string
format: date-time
description: The date and time when tag was last updated.
requestBody:
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
minLength: 1
description: Staff`s first name.
last_name:
type: string
minLength: 1
description: Staff`s last name
email:
type: string
minLength: 1
description: Staff`s email
employee_id:
type: integer
nullable: true
description: Staff`s employee identifier
shop_id:
type: integer
description: A foreign key which points to shop this staff will be assigned to.
advisor:
type: boolean
description: true if the staff member is a service advisor, false otherwise.
technician:
type: boolean
description: true if the staff member is a technician, false otherwise.
active:
type: boolean
description: true if the staff member is an active Shop-Ware user, false if they have been deactivated.
required:
- first_name
- last_name
- email
- shop_id
example:
first_name: James
last_name: Brown
email: mrdynamite@example.com
employee_id: 1
shop_id: 1
advisor: true
technician: true
active: true
put:
summary: Update existing staff member
tags:
- Staff Members
parameters: []
responses:
'200':
description: successful
content:
application/json:
examples:
successful:
value:
id: 1
created_at: '2026-06-09T14:26:05Z'
updated_at: '2026-06-09T14:26:05Z'
first_name: James
last_name: Brown
advisor: true
technician: true
active: true
assigned_shop_id: 1
employee_id: 1
email: mrdynamite@example.com
integrator_tags:
- id: 1
created_at: '2026-06-09T14:26:05Z'
updated_at: '2026-06-09T14:26:05Z'
taggable_type: Staff
taggable_id: 1
name: tag_name
value: tag_value
schema:
type: object
properties:
id:
type: integer
description: Unique identifier of this record.
first_name:
type: string
description: Staff`s first name.
last_name:
type: string
description: Staff`s last name
advisor:
type: boolean
description: true if the staff member is a service advisor, false otherwise.
technician:
type: boolean
description: true if the staff member is a technician, false otherwise.
active:
type: boolean
description: true if the staff member is an active Shop-Ware user, false if they have been deactivated.
assigned_shop_id:
type: integer
description: A foreign key that points to the Shop this staff is currently assigned to.
employee_id:
type: integer
description: Staff`s employee identifier.
email:
type: string
description: Staff`s email.
created_at:
type: string
format: date-time
description: Date and time when record was created.
updated_at:
type: string
format: date-time
description: Date and time when record was last updated.
integrator_tags:
type: array
items:
type: object
properties:
id:
type: integer
description: The tag primary key.
taggable_type:
type: string
description: Entity type the tag attached to.
taggable_id:
type: integer
description: Entity identifier the tag attached to.
name:
type: string
description: Tag Name.
value:
type: string
description: Tag Value.
created_at:
type: string
format: date-time
description: The date and time when tag was created.
updated_at:
type: string
format: date-time
description: The date and time when tag was last updated.
requestBody:
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
minLength: 1
description: Staff`s first name.
last_name:
type: string
minLength: 1
description: Staff`s last name
email:
type: string
minLength: 1
description: Staff`s email
employee_id:
type: integer
nullable: true
description: Staff`s employee identifier
shop_id:
type: integer
description: A foreign key which points to shop this staff will be assigned to.
advisor:
type: boolean
description: true if the staff member is a service advisor, false otherwise.
technician:
type: boolean
description: true if the staff member is a technician, false otherwise.
active:
type: boolean
description: true if the staff member is an active Shop-Ware user, false if they have been deactivated.
required:
- first_name
- last_name
- email
- shop_id
example:
first_name: James
last_name: Brown
email: mrdynamite@example.com
employee_id: 1
shop_id: 1
advisor: true
technician: true
active: true
/api/v1/tenants/{tenant_id}/staffs/{id}:
parameters:
- name: tenant_id
in: path
required: true
example: '1'
schema:
type: integer
- name: id
in: path
required: true
example: '1'
schema:
type: integer
get:
summary: Get a specific staff member by ID
tags:
- Staff Members
responses:
'200':
description: successful
content:
application/json:
examples:
successful:
value:
id: 1
created_at: '2026-06-09T14:26:08Z'
updated_at: '2026-06-09T14:26:08Z'
first_name: James
last_name: Brown
advisor: true
technician: true
active: true
assigned_shop_id: 1
employee_id: 1
email: mrdynamite@example.com
integrator_tags:
- id: 1
created_at: '2026-06-09T14:26:08Z'
updated_at: '2026-06-09T14:26:08Z'
taggable_type: Staff
taggable_id: 1
name: tag_name
value: tag_value
schema:
type: object
properties:
id:
type: integer
description: Unique identifier of this record.
first_name:
type: string
description: Staff`s first name.
last_name:
type: string
description: Staff`s last name
advisor:
type: boolean
description: true if the staff member is a service advisor, false otherwise.
technician:
type: boolean
description: true if the staff member is a technician, false otherwise.
active:
type: boolean
description: true if the staff member is an active Shop-Ware user, false if they have been deactivated.
assigned_shop_id:
type: integer
description: A foreign key that points to the Shop this staff is currently assigned to.
employee_id:
type: integer
description: Staff`s employee identifier.
email:
type: string
description: Staff`s email.
created_at:
type: string
format: date-time
description: Date and time when record was created.
updated_at:
type: string
format: date-time
description: Date and time when record was last updated.
integrator_tags:
type: array
items:
type: object
properties:
id:
type: integer
description: The tag primary key.
taggable_type:
type: string
description: Entity type the tag attached to.
taggable_id:
type: integer
description: Entity identifier the tag attached to.
name:
type: string
description: Tag Name.
value:
type: string
description: Tag Value.
created_at:
type: string
format: date-time
description: The date and time when tag was created.
updated_at:
type: string
format: date-time
description: The date and time when tag was last updated.
put:
summary: Update a specific staff member by ID
tags:
- Staff Members
parameters: []
responses:
'200':
description: successful
content:
application/json:
examples:
successful:
value:
id: 1
created_at: '2026-06-09T14:26:15Z'
updated_at: '2026-06-09T14:26:15Z'
first_name: James
last_name: Brown
advisor: true
technician: true
active: true
assigned_shop_id: 1
employee_id: 1
email: mrdynamite@example.com
integrator_tags:
- id: 1
created_at: '2026-06-09T14:26:15Z'
updated_at: '2026-06-09T14:26:15Z'
taggable_type: Staff
taggable_id: 1
name: tag_name
value: tag_value
schema:
type: object
properties:
id:
type: integer
description: Unique identifier of this record.
first_name:
type: string
description: Staff`s first name.
last_name:
type: string
description: Staff`s last name
advisor:
type: boolean
description: true if the staff member is a service advisor, false otherwise.
technician:
type: boolean
description: true if the staff member is a technician, false otherwise.
active:
type: boolean
description: true if the staff member is an active Shop-Ware user, false if they have been deactivated.
assigned_shop_id:
type: integer
description: A foreign key that points to the Shop this staff is currently assigned to.
employee_id:
type: integer
description: Staff`s employee identifier.
email:
type: string
description: Staff`s email.
created_at:
type: string
format: date-time
description: Date and time when record was created.
updated_at:
type: string
format: date-time
description: Date and time when record was last updated.
integrator_tags:
type: array
items:
type: object
properties:
id:
type: integer
description: The tag primary key.
taggable_type:
type: string
description: Entity type the tag attached to.
taggable_id:
type: integer
description: Entity identifier the tag attached to.
name:
type: string
description: Tag Name.
value:
type: string
description: Tag Value.
created_at:
type: string
format: date-time
description: The date and time when tag was created.
updated_at:
type: string
format: date-time
description: The date and time when tag was last updated.
requestBody:
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
minLength: 1
description: Staff`s first name.
last_name:
type: string
minLength: 1
description: Staff`s last name
email:
type: string
minLength: 1
description: Staff`s email
employee_id:
type: integer
nullable: true
description: Staff`s employee identifier
shop_id:
type: integer
description: A foreign key which points to shop this staff will be assigned to.
advisor:
type: boolean
description: true if the staff member is a service advisor, false otherwise.
technician:
type: boolean
description: true if the staff member is a technician, false otherwise.
active:
type: boolean
description: true if the staff member is an active Shop-Ware user, false if they have been deactivated.
required:
- first_name
- last_name
- email
- shop_id
example:
first_name: James
last_name: Brown
email: mrdynamite@example.com
employee_id: 1
shop_id: 1
advisor: true
technician: true
active: true
/api/v1/tenants/{tenant_id}/staffs/notification:
parameters:
- name: tenant_id
in: path
required: true
example: '1'
schema:
type: integer
post:
summary: Notify staff
tags:
- Staff Members
parameters: []
responses:
'200':
description: successful
requestBody:
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: Notification title.
body:
type: string
description: Notification message.
url:
type: string
nullable: true
description: URL that will open in a new window when clicked.
recipients:
type: array
nullable: true
description: List of staffIDs to whom the notification will be sent. If left blank, sent to all logged in staff.
items:
type: integer
required:
- title
- body
example:
title: Notification Title
body: Notification Body
url: URL
recipients:
- 1
components:
securitySchemes:
api_partner_id:
type: apiKey
name: X-Api-Partner-Id
in: header
api_secret:
type: apiKey
name: X-Api-Secret
in: header