# Schedule Engine BYOI
## BYOI Client Endpoints (proposal)
### Request #1 (customer lookup)
```js
// Example request
'GET https://some-client.com/byoi/customer-lookup?phoneNumber=1234567890'
// Example response
{
customer: { // Can also be `null`
id,
firstName,
lastName,
locations: [
{
id,
line1,
line2, // Optional
locality, // ex. Miami
region, // ex. FL
postalCode,
countryCode, // ex. US
isBookingAllowed,
},
// ...
],
},
}
```
### Request #2 (calculate availability)
```js
// Example request
'POST https://some-client.com/byoi/calculate-availability'
{
isEmergency,
serviceCodeKey, // Configurable with standard client import
postalCode,
phoneNumber,
startDateTime,
endDateTime,
}
// Example response
{
timeslots: [
{
label,
startDateTime, // ex. 2022-02-07T17:00:00.000Z
endDateTime,
},
],
}
```
### Request #3 (submit booking)
```js
// Example request
'POST https://some-client.com/byoi/submit-booking'
{
customer: {
id,
firstName,
lastName,
phoneNumber,
location: {
line1,
line2, // Optional
locality, // ex. Miami
region, // ex. FL
postalCode,
countryCode, // ex. US
},
},
appointment: {
serviceCodeKey,
startDateTime, // 2022-02-07T17:00:00.000Z
isEmergency,
notes,
},
sourceTracking: {
// ...
},
}
// Example response
{
success, // true/false
message,
}
```