openapi: 3.0.3
info:
title: 'HERO API Documentation'
description: 'The HERO API provides a comprehensive and secure interface for integrating with our platform. This RESTful API enables seamless access to user management.'
version: 1.0.0
servers:
-
url: 'https://horeca-hero.com'
tags:
-
name: 'User management'
description: 'APIs for managing users'
components:
securitySchemes:
default:
type: http
scheme: bearer
description: 'To setup OAuth2 authentication please contact us at dev@horeca-hero.com.'
security:
-
default: []
paths:
/api-clients/v1/employees:
get:
summary: 'List users'
operationId: listUsers
description: ' Get a paginated list of users based on your client.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
employee_id: user_54322
email: john8@example.com
first_name: John8
last_name: Doe8
status: active
businesses:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
created_at: '2025-06-02T06:20:25.000000Z'
updated_at: '2025-10-13T08:44:07.000000Z'
-
employee_id: user_54321
email: john7@example.com
first_name: John
last_name: Doe
status: active
businesses:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: User
created_at: '2025-05-09T10:07:34.000000Z'
updated_at: '2025-05-09T10:07:34.000000Z'
links:
first: 'https://horeca-hero.com/api-clients/v1/employees?page=1'
last: 'https://horeca-hero.com/api-clients/v1/employees?page=2'
prev: null
next: 'https://horeca-hero.com/api-clients/v1/employees?page=2'
meta:
current_page: 1
from: 1
last_page: 2
links:
-
url: null
label: '« Zurück'
active: false
-
url: 'https://horeca-hero.com/api-clients/v1/employees?page=1'
label: '1'
active: true
-
url: 'https://horeca-hero.com/api-clients/v1/employees?page=2'
label: '2'
active: false
-
url: 'https://horeca-hero.com/api-clients/v1/employees?page=2'
label: 'Weiter »'
active: false
path: 'https://horeca-hero.com/api-clients/v1/employees'
per_page: 2
to: 2
total: 3
properties:
data:
type: array
example:
-
employee_id: user_54322
email: john8@example.com
first_name: John8
last_name: Doe8
status: active
businesses:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
created_at: '2025-06-02T06:20:25.000000Z'
updated_at: '2025-10-13T08:44:07.000000Z'
-
employee_id: user_54321
email: john7@example.com
first_name: John
last_name: Doe
status: active
businesses:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: User
created_at: '2025-05-09T10:07:34.000000Z'
updated_at: '2025-05-09T10:07:34.000000Z'
items:
type: object
properties:
employee_id:
type: string
example: user_54322
email:
type: string
example: john8@example.com
first_name:
type: string
example: John8
last_name:
type: string
example: Doe8
status:
type: string
example: active
businesses:
type: array
example:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
items:
type: object
properties:
business_id:
type: string
example: FRAPQ
role:
type: string
example: User
created_at:
type: string
example: '2025-06-02T06:20:25.000000Z'
updated_at:
type: string
example: '2025-10-13T08:44:07.000000Z'
links:
type: object
properties:
first:
type: string
example: 'https://horeca-hero.com/api-clients/v1/employees?page=1'
last:
type: string
example: 'https://horeca-hero.com/api-clients/v1/employees?page=2'
prev:
type: string
example: null
next:
type: string
example: 'https://horeca-hero.com/api-clients/v1/employees?page=2'
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 2
links:
type: array
example:
-
url: null
label: '« Zurück'
active: false
-
url: 'https://horeca-hero.com/api-clients/v1/employees?page=1'
label: '1'
active: true
-
url: 'https://horeca-hero.com/api-clients/v1/employees?page=2'
label: '2'
active: false
-
url: 'https://horeca-hero.com/api-clients/v1/employees?page=2'
label: 'Weiter »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Zurück'
active:
type: boolean
example: false
path:
type: string
example: 'https://horeca-hero.com/api-clients/v1/employees'
per_page:
type: integer
example: 2
to:
type: integer
example: 2
total:
type: integer
example: 3
tags:
- 'User management'
post:
summary: 'Create user'
operationId: createUser
description: ' Create a user based on your body parameters.'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
employee_id: user_54322
email: john.doe.user-5432567.SOLWot@horeca-hero.com
first_name: John7
last_name: Doe7
status: active
businesses:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
created_at: '2025-06-02T06:20:25.000000Z'
updated_at: '2025-10-13T08:44:07.000000Z'
properties:
data:
type: object
properties:
employee_id:
type: string
example: user_54322
email:
type: string
example: john.doe.user-5432567.SOLWot@horeca-hero.com
first_name:
type: string
example: John7
last_name:
type: string
example: Doe7
status:
type: string
example: active
businesses:
type: array
example:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
items:
type: object
properties:
business_id:
type: string
example: FRAPQ
role:
type: string
example: User
created_at:
type: string
example: '2025-06-02T06:20:25.000000Z'
updated_at:
type: string
example: '2025-10-13T08:44:07.000000Z'
tags:
- 'User management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
businesses:
type: array
description: 'Array of businesses including role.'
example:
-
business_id: ZRHZQ
role: User
items:
type: object
properties:
business_id:
type: string
description: 'Business id. Must not be greater than 255 characters.'
example: '"ZRHZQ"'
nullable: false
role:
type: string
description: 'The users role either User or GM. Must not be greater than 255 characters.'
example: User
nullable: true
enum:
- User
- GM
required:
- business_id
employee_id:
type: string
description: 'The id of the user. Must not be greater than 255 characters.'
example: user_54321
nullable: false
email:
type: string
description: 'The users email address. Must be a valid email address. Must not be greater than 255 characters.'
example: example@test.com
nullable: true
first_name:
type: string
description: 'The users first name. Must not be greater than 255 characters.'
example: John
nullable: false
last_name:
type: string
description: 'The users last name. Must not be greater than 255 characters.'
example: Doe
nullable: false
status:
type: string
description: "This won't be added to the examples. Must not be greater than 255 characters."
example: active
nullable: false
enum:
- active
- inactive
required:
- businesses
- employee_id
- first_name
- last_name
- status
'/api-clients/v1/employees/{employee}':
put:
summary: 'Update user'
operationId: updateUser
description: ' Update a user based on your body parameters by the given client and user id.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
employee_id: user_54322
email: john.doe.user-5432567.SOLWot@horeca-hero.com
first_name: John7
last_name: Doe7
status: active
businesses:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
created_at: '2025-06-02T06:20:25.000000Z'
updated_at: '2025-10-13T08:44:07.000000Z'
properties:
data:
type: object
properties:
employee_id:
type: string
example: user_54322
email:
type: string
example: john.doe.user-5432567.SOLWot@horeca-hero.com
first_name:
type: string
example: John7
last_name:
type: string
example: Doe7
status:
type: string
example: active
businesses:
type: array
example:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
items:
type: object
properties:
business_id:
type: string
example: FRAPQ
role:
type: string
example: User
created_at:
type: string
example: '2025-06-02T06:20:25.000000Z'
updated_at:
type: string
example: '2025-10-13T08:44:07.000000Z'
tags:
- 'User management'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
businesses:
type: array
description: 'Array of businesses including role.'
example:
-
business_id: ZRHZQ
role: User
items:
type: object
properties:
business_id:
type: string
description: 'Business id. Must not be greater than 255 characters.'
example: '"ZRHZQ"'
nullable: false
role:
type: string
description: 'The users role either User or GM. Must not be greater than 255 characters.'
example: User
nullable: true
enum:
- User
- GM
required:
- business_id
employee_id:
type: string
description: 'The id of the user. Must not be greater than 255 characters.'
example: user_54321
nullable: false
email:
type: string
description: 'The users email address. Must be a valid email address. Must not be greater than 255 characters.'
example: example@test.com
nullable: true
first_name:
type: string
description: 'The users first name. Must not be greater than 255 characters.'
example: John
nullable: false
last_name:
type: string
description: 'The users last name. Must not be greater than 255 characters.'
example: Doe
nullable: false
status:
type: string
description: "This won't be added to the examples. Must not be greater than 255 characters."
example: active
nullable: false
enum:
- active
- inactive
required:
- businesses
- employee_id
- first_name
- last_name
- status
get:
summary: 'Show user details'
operationId: showUserDetails
description: ' Show user details based on your client and user id.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
employee_id: user_54322
email: john.doe.user-5432567.SOLWot@horeca-hero.com
first_name: John7
last_name: Doe7
status: active
businesses:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
created_at: '2025-06-02T06:20:25.000000Z'
updated_at: '2025-10-13T08:44:07.000000Z'
properties:
data:
type: object
properties:
employee_id:
type: string
example: user_54322
email:
type: string
example: john.doe.user-5432567.SOLWot@horeca-hero.com
first_name:
type: string
example: John7
last_name:
type: string
example: Doe7
status:
type: string
example: active
businesses:
type: array
example:
-
business_id: FRAPQ
role: User
-
business_id: ZRHZQ
role: GM
items:
type: object
properties:
business_id:
type: string
example: FRAPQ
role:
type: string
example: User
created_at:
type: string
example: '2025-06-02T06:20:25.000000Z'
updated_at:
type: string
example: '2025-10-13T08:44:07.000000Z'
tags:
- 'User management'
delete:
summary: 'Update user'
operationId: updateUser
description: " Delete a user based on the given client and user id.\n "
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
example: { }
properties: { }
422:
description: ''
content:
application/json:
schema:
type: object
example:
error: 'Only inactive users can be deleted.'
properties:
error:
type: string
example: 'Only inactive users can be deleted.'
tags:
- 'User management'
parameters:
-
in: path
name: employee
description: 'The ID of the user.'
example: user_54321
required: true
schema:
type: string