Lineberty Validation API (1.0.0)
Download OpenAPI specification:Download
Lineberty, the solution that queues up for your customers.
Lineberty's Booking System increases User's satisfaction by reducing the time spent to wait for their turn.
Users simply have to book a ticket, either on their phone using your application, or on a terminal you're providing at your place, then to select the time when they want to enjoy visiting your place or use your service. They receive a notification shortly before their appointment, informing them that it is soon their turn.
There is no longer any need to wait in a line! Users now have time to visit around or make more purchases thanks to the Lineberty Virtual Queueing Solution.
Create your own Validation (web)application to manage your queues, endpoints and tickets with the Lineberty Validation API.
The validation API helps your salespeople, cashiers, hosts/hostesses, etc. manage the queues and adapt it to the circumstances.
Depending on their level of empowerment, these operators can perform actions on tickets such as calling or recalling a ticket at the endpoint, search for a ticket, get a list of tickets for a given timeslot, change the state of a ticket, and much more. They can also supervise the state of the queue through counters and indicators, or manage the endpoint opening hours.
Your validation application will have to communicate with the Lineberty server to get the data needed to validate a ticket. This communication requires an API Key.
We will provide you with a private key included in a JSON file. This JSON file must be stored safe on your application server.
This private key also contains an email address associated to your account to access the Lineberty Validation API, and afterwards get the API Key.
See The Lineberty Validation API User Guide for further information.
GET A VALID API KEY
This is the first step before accessing the resources of the API. Use this route to get a valid API Key to access the Lineberty Validation API resources with your private key. We recommend to use API Key caching to optimize the number of requests per day and resend the request once a day.
Authorizations:
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/api_key
Response samples
- 200
{- "apiKey": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}
Use theses routes to manage the operator's session (connect and disconnect, get the roles, refresh the operator's token, disconnect a user).
LOGIN AN OPERATOR
Use this route to connect an operator either with the combination User ID/Password or by SSO.
Authorizations:
path Parameters
endpointId required | string The ID of the endpoint. |
Request Body schema: application/jsonrequired
The parameters to login a user.
endpointId required | string The ID of the endpoint |
loginId | string The user's ID. |
password | string The password associated to the User's ID. |
ssoToken | string The token of the SSO session |
Responses
Request samples
- Payload
- cURL
{- "endpointId": "endpointId1",
- "loginId": "email@email.com",
- "password": "aKpf9!d32cj,"
}
Response samples
- 200
- 403
- 404
{- "jwtToken": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}
PRE LOGIN AN OPERATOR
Use this route to pre connect an operator either with the combination User ID/Password or by SSO but without associate the user to an endpoint (must absolutely be make later).
Authorizations:
Request Body schema: application/jsonrequired
The parameters to login a user.
loginId | string The user's ID. |
password | string The password associated to the User's ID. |
ssoToken | string The ID of the SSO session |
Responses
Request samples
- Payload
- cURL
{- "loginId": "email@email.com",
- "password": "aKpf9!d32cj,"
}
Response samples
- 200
- 403
- 404
{- "jwtToken": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}
GET OPERATOR INFORMATION
Use this route to get the information of the current operator.
Authorizations:
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/operator/account
Response samples
- 200
- 404
{- "personal": {
- "civility": "M",
- "firstName": "Dupont",
- "lastName": "Dupas",
- "surname": "",
}, - "contact": {
- "email": "contact@lineberty.com",
- "phone": "+33600000000",
}
}
GET OPERATOR ROLES
Use this route to get the roles of the current operator.
Authorizations:
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/operator/roles
Response samples
- 200
- 404
{- "companyId1": {
- "placeId1": {
- "queueId1": {
- "authorizedSetState": {
- "0": [
- 200
], - "50": [
- 200
], - "100": [
- 200
], - "200": [
- 300,
- 500
], - "300": [ ],
- "400": [ ],
- "500": [
- 700
], - "600": [ ],
- "700": [ ]
}, - "extendedAttributes": {
- "phoneNumber": {
- "create": false,
- "read": true,
- "update": true,
- "delete": false
}, - "civility": {
- "create": false,
- "read": true,
- "update": true,
- "delete": false
}, - "name": {
- "create": false,
- "read": true,
- "update": true,
- "delete": false
}
}, - "recallAllowed": true,
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "bookingClosedForTodayAllowed": false,
- "pauseAllowed": false
}
}
}
}
REFRESH A SESSION TOKEN
Use this routes to refresh the session token of an operator.
Authorizations:
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/operator/session/refreshToken
Response samples
- 200
- 400
- 403
- 404
{- "jwtToken": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}
ASSIGN AN ENDPOINT TO A SESSION
If you have make a pre login you absolutely must assign an endpoint to your session else all the authentified method will not work.
Authorizations:
Request Body schema: application/jsonrequired
The endpoint ID.
endpointId required | string The ID of the endpoint |
Responses
Request samples
- Payload
- cURL
{- "endpointId": "endpointId1"
}
Response samples
- 200
- 404
{- "jwtToken": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}
DISCONNECT AN OPERATOR
Use this route to disconnect an operator either with the combination ID/Password or by SSO.
Authorizations:
Responses
Request samples
- cURL
curl -X DELETE \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/operator/session
Response samples
- 404
{- "error": "OPERATOR_NOT_FOUND",
- "error_description": "string",
- "error_uri": "string"
}
Use these routes to get the list of the companies, and for each company the places relating to it.
GET ALL THE COMPANIES ASSOCIATED WITH THE API KEY
Use this route to get the list of all the companies that are associated with the API key.
Authorizations:
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/companies
Response samples
- 200
{- "companyId1": {
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US"
}
}
GET ALL THE PLACES OF THE COMPANY
Use this route to get all the places of the company.
Authorizations:
path Parameters
companyId required | string The ID of the company. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/companies/{companyId}/places
Response samples
- 200
- 404
{- "placeId1": {
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}, - "placeId2": {
- "placeId": "placeId2",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
Use these routes to get the list of the places, and for each place the queues, endpoints and time slots relating to it.
GET PLACES
Use this route to get all the places associated with the API key.
Authorizations:
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places
Response samples
- 200
{- "placeId1": {
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}, - "placeId2": {
- "placeId": "placeId2",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
GET THE PLACE
Use this route to get a place in particular, using its place ID.
Authorizations:
path Parameters
placeId required | string The ID of the place. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}
Response samples
- 200
- 404
{- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
GET THE QUEUE(S) OF THE PLACE
Use this route to get the queue(s) of the place.
Authorizations:
path Parameters
placeId required | string The ID of the place. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}/queues
Response samples
- 200
- 404
{- "queueId1": {
- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}, - "queueId2": {
- "queueId": "queueId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId3": {
- "appointmentTypeId": "appointmentTypeId3",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId4": {
- "appointmentTypeId": "appointmentTypeId4",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}
}
GET THE COUNTER(S) OF THE PLACE
Use this route to get the counter(s) of the place, or an empty array if there are no counters.
Authorizations:
path Parameters
placeId required | string The ID of the place. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}/counters
Response samples
- 200
- 404
{- "counterId1": {
- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}, - "counterId2": {
- "counterId": "counterId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 3,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
}
GET THE ENDPOINT(S) OF THE PLACE
Use this route to get the endpoint(s) of the place.
Authorizations:
path Parameters
placeId required | string The ID of the place. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}/endpoints
Response samples
- 200
- 404
{- "endpointId1": {
- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId2": {
- "endpointId": "endpointId2",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId3": {
- "endpointId": "endpointId3",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
}
GET THE TIME SLOT(S) OF THE PLACE
Use this route to get the time slot(s) of the place. By default, the time slots are those of the current day.
Authorizations:
path Parameters
placeId required | string The ID of the place. |
query Parameters
startAt | string The start date of the time slot to select data. |
endAt | string The end date of the time slot to select data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}/timeslots
Response samples
- 200
- 400
- 404
[- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]
Use these routes to get the list of the queues, the configuration of a queue in particular, the list of the endpoints relating to the queue, or even indicators on the queue. They also allow you pause or resume a queue, and to perform actions on the tickets.
GET ALL THE QUEUES
Use this route to get all the queues that are associated with the API key.
Authorizations:
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues
Response samples
- 200
{- "queueId1": {
- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}, - "queueId2": {
- "queueId": "queueId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId3": {
- "appointmentTypeId": "appointmentTypeId3",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId4": {
- "appointmentTypeId": "appointmentTypeId4",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}
}
GET THE QUEUE
Use this route to get a queue in particular, using its queue ID.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}
Response samples
- 200
- 404
{- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}
GET THE CONFIGURATION OF A QUEUE
Use this route to get the configuration of a queue in particular, using its queue ID. You will get display rules or operating rules.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/config
Response samples
- 200
- 404
{- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
GET ALL THE ENDPOINTS OF A QUEUE
Use this route to get the list of all the endpoints of the queue.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/endpoints
Response samples
- 200
- 404
{- "endpointId1": {
- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId2": {
- "endpointId": "endpointId2",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId3": {
- "endpointId": "endpointId3",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
}
GET THE TIMESLOTS OF ALL ENDPOINTS OF A QUEUE
Use this route to get the timeslots of all endpoints of the queue.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
query Parameters
startAt | string The start date of the time slot to select data. |
endAt | string The end date of the time slot to select data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/endpoints/timeslots
Response samples
- 200
- 404
{- "endpointId1": {
- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId2": {
- "endpointId": "endpointId2",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId3": {
- "endpointId": "endpointId3",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
}
GET ALL THE ENDPOINTS OF A QUEUE
Use this route to get the list of all the endpoints of the queue and their status in real times
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/endpoints/sse
Response samples
- 200
- 404
{- "openedEndpoint": 1,
- "closedEndpoint": 2,
- "hiddenEndpoint": 0,
- "endpoints": {
- "endpointId1": {
- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId2": {
- "endpointId": "endpointId2",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId3": {
- "endpointId": "endpointId3",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
}
}
GET ALL THE INDICATORS OF A QUEUE
Indicators are used to track data. Use this route to get the list of all the indicators of the queue.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/indicators
Response samples
- 200
- 401
- 403
- 404
{- "editedTicket": {
- "sum": "20,",
- "appointmentTypes": {
- "appointmentTypeId1": 20,
- "appointmentTypeId2": 0
}
}, - "editedPeople": {
- "sum": "40,",
- "appointmentTypes": {
- "appointmentTypeId1": 40,
- "appointmentTypeId2": 0
}
}, - "remainingTickets": {
- "sum": "10,",
- "appointmentTypes": {
- "appointmentTypeId1": 10,
- "appointmentTypeId2": 0
}
}, - "remainingPeople": {
- "sum": "20,",
- "appointmentTypes": {
- "appointmentTypeId1": 20,
- "appointmentTypeId2": 0
}
}, - "bookedTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "bookedPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "toConfirmTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "toConfirmPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "alertedTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "alertedPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "calledTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "calledPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "onHoldTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "onHoldPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "noShowTickets": {
- "sum": "3,",
- "appointmentTypes": {
- "appointmentTypeId1": 3,
- "appointmentTypeId2": 0
}
}, - "noShowPeople": {
- "sum": "6,",
- "appointmentTypes": {
- "appointmentTypeId1": 6,
- "appointmentTypeId2": 0
}
}, - "cancelTickets": {
- "sum": "2,",
- "appointmentTypes": {
- "appointmentTypeId1": 2,
- "appointmentTypeId2": 0
}
}, - "cancelPeople": {
- "sum": "4,",
- "appointmentTypes": {
- "appointmentTypeId1": 4,
- "appointmentTypeId2": 0
}
}, - "doneTickets": {
- "sum": "5,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "donePeople": {
- "sum": "10,",
- "appointmentTypes": {
- "appointmentTypeId1": 10,
- "appointmentTypeId2": 0
}
}, - "nextDaysTickets": {
- "sum": "7,",
- "appointmentTypes": {
- "appointmentTypeId1": {
- "2019-06-16": 4,
- "2019-06-17": 3
}, - "appointmentTypeId2": null
}
}, - "nextDaysPeople": {
- "sum": "14,",
- "appointmentTypes": {
- "appointmentTypeId1": {
- "2019-06-16": 8,
- "2019-06-17": 6
}, - "appointmentTypeId2": 0
}
}, - "openedEndpoint": 1,
- "bookingOpened": true,
- "queueFull": false,
- "allFirstAvailabilities": {
- "appointmentTypeId1": {
- "1": "2018-09-01T12:00:00:00,0000+0200",
- "2": "2018-09-01T12:00:00:00,0000+0200"
}, - "appointmentTypeId2": {
- "1": "2018-09-01T12:00:00:00,0000+0200",
- "2": "2018-09-01T12:00:00:00,0000+0200"
}
}
}
TEMPORARILY SUSPEND AND RESUME THE QUEUE
Use this route to suspend (pause) and then resume the queue after an unusual event (e.g. technical problem).
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
To suspend or resume the queue.
pause required | boolean Whether the queue should be paused or not. If True, the queue is paused. If False, the queue is restarted. |
Responses
Request samples
- Payload
- cURL
{- "pause": true
}
Response samples
- 200
- 400
- 403
- 404
{- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}
TEMPORARILY SUSPEND AND RESUME THE QUEUE AVAILABILITIES FOR THE CURRENT DAY
Use this route to suspend (close) and then resume the queue availabilities for the current day.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
To suspend or resume the queue availabilities for the current day.
bookingClosedForToday required | boolean Whether the queue availabilities should be closed or not. If True, the queue availabilities is closed for today. If False, the queue is reopened. |
Responses
Request samples
- Payload
- cURL
{- "bookingClosedForToday": true
}
Response samples
- 200
- 400
- 403
- 404
{- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}
GET ALL THE CURRENT TICKETS BY SSE
Use this route to get in real time all the current tickets (i.e. excluding those that are done or canceled) that are planned for today on the first message, then all the ticket events.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
query Parameters
page | number The page number needed. 1 by default because there is at least one page. |
pageSize | number [ 1 .. 50 ] Default: 20 The number of items to return for each page. By default, a page contains 20 items, at least 1 and up to 50. |
header Parameters
Authorization required |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/queues/{queueId}/tickets/currents/sse
Response samples
- 200
- 401
- 404
{- "totalCount": 2,
- "page": 1,
- "pageSize": 20,
- "tickets": [
- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "Very nice moment!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
}
GET ALL THE CURRENT TICKETS OF THE DAY
Use this route to get all the current tickets (i.e. excluding those that are done or canceled) that are planned for today.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
query Parameters
page | number The page number needed. 1 by default because there is at least one page. |
pageSize | number [ 1 .. 50 ] Default: 20 The number of items to return for each page. By default, a page contains 20 items, at least 1 and up to 50. |
header Parameters
Authorization required |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/queues/{queueId}/tickets/currents
Response samples
- 200
- 401
- 404
{- "totalCount": 2,
- "page": 1,
- "pageSize": 20,
- "tickets": [
- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "Very nice moment!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
}
GET ALL THE DONE OR CANCELLED TICKETS OF THE DAY
Use this route to get all the tickets that have been done or canceled during the current day.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
query Parameters
page | number The page number needed. 1 by default because there is at least one page. |
pageSize | number [ 1 .. 50 ] Default: 20 The number of items to return for each page. By default, a page contains 20 items, at least 1 and up to 50. |
header Parameters
Authorization required |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/queues/{queueId}/tickets/history
Response samples
- 200
- 401
- 404
{- "totalCount": 2,
- "page": 1,
- "pageSize": 20,
- "tickets": [
- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "Very nice moment!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
}
GET ALL THE TICKETS THAT ARE BOOKED FOR THE NEXT DAYS
Use this route to get the list of the tickets that are booked for the next days, including those that are already canceled.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
query Parameters
page | number The page number needed. 1 by default because there is at least one page. |
pageSize | number [ 1 .. 50 ] Default: 20 The number of items to return for each page. By default, a page contains 20 items, at least 1 and up to 50. |
startAt | string The start date of the time slot to select data. |
endAt | string The end date of the time slot to select data. |
header Parameters
Authorization required |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/queues/{queueId}/tickets/nextDays
Response samples
- 200
- 400
- 401
- 404
{- "totalCount": 2,
- "page": 1,
- "pageSize": 20,
- "tickets": [
- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "Very nice moment!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
}
FILTER THE TICKETS OF A QUEUE
Use this route to filter the tickets of a queue, using various parameters such as the label, a day (today, the next days or both), or the extended attributes. This search cannot be done on past tickets.
Authorizations:
path Parameters
queueId required | string The ID of the queue. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
Search for tickets.
label | string The label of the ticket. |
today | boolean To load only the tickets of the current day, use TRUE. To load only the tickets of the next days, use FALSE. To load all the tickets of the queue, do not pass any parameter. |
Array of objects (ticketSearchExtendedAttribute) An array of objects containing the attributes used to filter the queue. |
Responses
Request samples
- Payload
- cURL
{- "label": 5,
- "today": true,
- "extendedAttributes": [
- {
- "field": "name",
- "value": "Smith",
- "operator": "match"
}, - {
- "field": "phone",
- "value": "1(800)123-4567",
- "operator": "equal"
}
]
}
Response samples
- 200
- 400
- 401
- 404
[- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
Use these routes to get the list of the counters, and to perform increments or decrement the value of the counter.
GET ALL THE COUNTERS
Use this route to get all the counters that are associated with the API key.
Authorizations:
query Parameters
countersId required | Array of strings An array of counter IDs. |
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/counters
Response samples
- 200
{- "counterId1": {
- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}, - "counterId2": {
- "counterId": "counterId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 3,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
}
GET ALL THE COUNTERS AND AN EVENT
Use this route to get all the counters that are associated with the API and receive an event each time a counter is incremented/decremented.
Authorizations:
query Parameters
countersId required | Array of strings An array of counter IDs. |
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/counters/sse
Response samples
- 200
{- "counterId1": {
- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}, - "counterId2": {
- "counterId": "counterId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 3,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
}
GET THE COUNTER
Use this route to get a counter in particular, using its counter ID.
Authorizations:
path Parameters
counterId required | string The ID of the counter. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/counters/{counterId}
Response samples
- 200
- 404
{- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
INCREMENT THE COUNTER VALUE
Use this route to increment the counter value, using its counter ID.
Authorizations:
path Parameters
counterId required | string The ID of the counter. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
The incremental value.
incrementValue required | number The value to add to the counter. Must be a positive number. |
Responses
Request samples
- Payload
- cURL
{- "incrementValue": 2
}
Response samples
- 200
- 400
- 401
- 404
{- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
DECREMENT THE COUNTER VALUE
Use this route to decrement the counter value, using its counter ID.
Authorizations:
path Parameters
counterId required | string The ID of the counter. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
The decremental value.
decrementValue required | number The value to substract to the counter. Must be positif and can't be greater than the counter value |
Responses
Request samples
- Payload
{- "decrementValue": 2
}
Response samples
- 200
- 400
- 401
- 404
{- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
Use these routes to get the list of the tickets and to perform various actions on a ticket (recall a ticket, change its state to another, define extended attributes...).
GET A TICKET
Use this route to get a ticket, using its ticket ID.
Authorizations:
path Parameters
ticketId required | string The ID of the ticket. |
header Parameters
Authorization required |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/tickets/{ticketId}
Response samples
- 200
- 401
- 404
{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
RECALL A TICKET
Use this route to recall a ticket, using its ticket ID.
Authorizations:
path Parameters
ticketId required | string The ID of the ticket. |
header Parameters
Authorization required |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/tickets/{ticketId}/recall
Response samples
- 200
- 401
- 403
- 404
{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
GET TICKET LOGS
Use this route to get the life of a ticket, using its ticket ID.
Authorizations:
path Parameters
ticketId required | string The ID of the ticket. |
header Parameters
Authorization required |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/tickets/{ticketId}/life
Response samples
- 200
- 401
- 403
- 404
[- {
- "action": "string",
- "time": "string",
- "operator": {
- "operatorId": "string",
- "firstName": "string",
- "lastName": "string",
- "ssoId": "string"
}
}
]
GET TICKET SMS
Use this route to get the sms sent to a ticket, using its ticket ID.
Authorizations:
path Parameters
ticketId required | string The ID of the ticket. |
header Parameters
Authorization required |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/tickets/{ticketId}/sms
Response samples
- 200
- 401
- 403
- 404
[- {
- "content": "string",
- "state": "sending",
- "eventName": "string",
- "pushId": "string",
- "sentHour": "string",
- "receiveHour": "string"
}
]
CHANGE A TICKET STATE
Use this route to change the state of a ticket, using its ticket ID.
Authorizations:
path Parameters
ticketId required | string The ID of the ticket. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
The new state.
setStateTo required | number The new state of the ticket. Whether :
|
endpointId | string The ID of the endpoint. Required to change a ticket state to CALLED or IN_PROGRESS. |
Responses
Request samples
- Payload
- cURL
{- "setStateTo": 500,
- "endpointId": "endpointId1"
}
Response samples
- 200
- 400
- 401
- 403
- 404
{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
DEFINE THE EXTENDED ATTRIBUTES OF A TICKET
Use this route to define additional attributes (i.e. extended attributes) for a ticket. These attributes can be intended for users, or for operators.
Authorizations:
path Parameters
ticketId required | string The ID of the ticket. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
The new value of extended attributes.
A list of extended attributes inside a JSON object, which key is the name of the extended attribute and which value is the value of the extended attribute.
Responses
Request samples
- Payload
- cURL
{- "name": "John Smith",
- "phone": "1(800)123-4567"
}
Response samples
- 200
- 400
- 401
- 403
- 404
{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
DELETE THE EXTENDED ATTRIBUTES OF A TICKET
Use this route to delete additional attributes (i.e. extended attributes) for a ticket. These attributes can be intended for users, or for operators.
Authorizations:
path Parameters
ticketId required | string The ID of the ticket. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
The list of extended attributes to delete.
extendedAttributes | Array of strings (TicketDeleteExtendedAttributeRequestBody) [ items ] |
Responses
Request samples
- Payload
{- "extendedAttributes": [
- [
- "phone",
- "name"
]
]
}
Response samples
- 200
- 400
- 401
- 403
- 404
{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
Use these route to get the list of the endpoints and to perform actions on an endpoint (open or close the endpoint, manage time slots).
GET AN ENDPOINT
Use this route to get an endpoint, using its endpoint ID.
Authorizations:
path Parameters
endpointId required | string The ID of the endpoint. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/endpoints/{endpointId}
Response samples
- 200
- 404
{- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
OPEN OR CLOSE THE ENDPOINTS
Use this route to open or close an endpoint, using its endpoint ID.
Authorizations:
path Parameters
endpointId required | string The ID of the endpoint. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
Open or close the endpoint.
open required | boolean Whether the endpoint is open or close. If True, the endpoint is open. If False, the endpoint is close. |
mode | string Enum: "classic" "hidden" Specify the open mode of the endpoint, default value is 'classic'. If the mode is 'hidden' the endpoint dont need to have schedule to validate tickets |
Responses
Request samples
- Payload
{- "open": true
}
Response samples
- 200
- 400
- 401
- 404
{- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
LOGOUT ENDPOINTS (HIDDEN)
Use this route to logout using its endpoint ID. (hidden route - documentation not needed)
Authorizations:
path Parameters
endpointId required | string The ID of the endpoint. |
Responses
Request samples
- cURL
curl -X PUT \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/endoints/{endpointId}/logout
Response samples
- 200
- 400
- 401
- 404
{- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
GET AN ENDPOINT
Use this routes to get an endpoint, using its endpoint ID. Received event on opening, closing, update and time slots update of the endpoint
Authorizations:
path Parameters
endpointId required | string The ID of the endpoint. |
query Parameters
langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/endpoints/{endpointId}/sse
Response samples
- 200
- 404
{- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
GET THE TIME SLOTS OF AN ENDPOINT
Use this route to get the time slots of an endpoint, using its endpoint ID.
Authorizations:
path Parameters
endpointId required | string The ID of the endpoint. |
query Parameters
startAt | string The start date of the time slot to select data. |
endAt | string The end date of the time slot to select data. |
Responses
Request samples
- cURL
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/endpoints/{endpointId}/timeslots
Response samples
- 200
- 400
- 401
- 404
[- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]
SET THE TIME SLOTS OF AN ENDPOINT
Use this route to set the time slots of an endpoint, using its endpoint ID.
Authorizations:
path Parameters
endpointId required | string The ID of the endpoint. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
Sets the endpoint time slots.
startAt required | string (IsoDate) A date (ISO-8601). |
endAt required | string (IsoDate) A date (ISO-8601). |
required | Array of objects (TimeslotArray) An array of time slots ordered by startAt ASC. |
Responses
Request samples
- Payload
{- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:00:00,0000+0200",
- "newTimeslots": [
- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]
}
Response samples
- 200
- 400
- 401
- 403
- 404
[- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]
DELETE THE TIME SLOTS OF AN ENDPOINT
Use this route to delete the time slots of an endpoint, using its endpoint ID.
Authorizations:
path Parameters
endpointId required | string The ID of the endpoint. |
header Parameters
Authorization required |
Request Body schema: application/jsonrequired
Deletes the time slots of an endpoint.
startAt required | string (IsoDate) A date (ISO-8601). |
endAt required | string (IsoDate) A date (ISO-8601). |
Responses
Request samples
- Payload
{- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:00:00,0000+0200"
}
Response samples
- 200
- 400
- 401
- 403
- 404
[- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]