Waitwhile API v1 API Reference

The Waitwhile API is organized around the REST methodology, and it uses resource-oriented URLs, and common HTTP response codes. JSON is returned by all API responses, including errors.

All requests are authenticated using an API key which can be obtained from your Settings page. Provide your API key as value for the header "apikey" with each request.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

API Endpoint
https://api.waitwhile.com/v1
Terms of Service: https://waitwhile.com/terms/
Contact: hello@waitwhile.com
Schemes: https
Version: 0.1.1

Authentication

APIKeyHeader

name
apikey
in
header

Paths

Get a list of waitlists

GET /waitlists

Returns a list of waitlists associated with the account.

200 OK

A list of Waitlists

400 Bad Request

Bad request - Invalid or missing parameter

401 Unauthorized

Unauthorized - No valid API key provided.

500 Internal Server Error

Unexpected server error - Something went wrong on Waitwhile's end.

Response Example (200 OK)
[
  {
    "id": "string ([a-z0-9])",
    "name": "string",
    "accountId": "string ([a-z0-9])"
  }
]
Response Example (400 Bad Request)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (500 Internal Server Error)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}

Get a waitlist

GET /waitlists/{waitlistId}

Returns waitlist information for a particular waitlist.

waitlistId

Identifier of waitlist

type
string ([a-z0-9])
in
path
200 OK

A Waitlist

400 Bad Request

Bad request - Invalid or missing parameter

401 Unauthorized

Unauthorized - No valid API key provided.

404 Not Found

Not Found - The requested resource doesn't exist.

500 Internal Server Error

Unexpected server error - Something went wrong on Waitwhile's end.

Response Example (200 OK)
{
  "id": "string ([a-z0-9])",
  "name": "string",
  "accountId": "string ([a-z0-9])"
}
Response Example (400 Bad Request)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (404 Not Found)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (500 Internal Server Error)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}

Get status for a waitlist

GET /waitlists/{waitlistId}/status

Returns waitlist status information for a particular waitlist, like current wait time and number of guests.

waitlistId

Identifier of waitlist

type
string ([a-z0-9])
in
path

A WaitlistStatus

400 Bad Request

Bad request - Invalid or missing parameter

401 Unauthorized

Unauthorized - No valid API key provided.

404 Not Found

Not Found - The requested resource doesn't exist.

500 Internal Server Error

Unexpected server error - Something went wrong on Waitwhile's end.

Response Example (200 OK)
{
  "id": "string ([a-z0-9])",
  "name": "string",
  "numberOfWaiting": "integer (int64)",
  "numberOfServing": "integer (int64)",
  "estimatedWait": "integer (int64)"
}
Response Example (400 Bad Request)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (404 Not Found)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (500 Internal Server Error)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}

Get a list of waiting guests

GET /waitlists/{waitlistId}/waiting

Returns a list of waiting guests associated with a waitlist.

waitlistId

Identifier of waitlist

type
string ([a-z0-9])
in
path
200 OK

A list of Guests

400 Bad Request

Bad request - Invalid or missing parameter

401 Unauthorized

Unauthorized - No valid API key provided.

404 Not Found

Not Found - The requested resource doesn't exist.

500 Internal Server Error

Unexpected server error - Something went wrong on Waitwhile's end.

Response Example (200 OK)
[
  {
    "id": "string ([a-z0-9])",
    "name": "string",
    "email": "string (email)",
    "phone": "string ([+0-9])",
    "customerId": "string",
    "partySize": "integer (int64)",
    "staffFirstAvailable": "boolean",
    "staffIds": [
      "string"
    ],
    "serviceIds": [
      "string"
    ],
    "quotedWaitDuration": "integer (int64)",
    "waitlistTime": "integer (int64)",
    "serveTime": "integer (int64)",
    "waitlistId": "string ([a-z0-9])",
    "status": "string"
  }
]
Response Example (400 Bad Request)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (404 Not Found)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (500 Internal Server Error)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}

Create a waiting guest

POST /waitlists/{waitlistId}/waiting

Returns the created guest.

The Guest to create.

waitlistId

Identifier of waitlist

type
string ([a-z0-9])
in
path
Request Example
{
  "id": "string ([a-z0-9])",
  "name": "string",
  "email": "string (email)",
  "phone": "string ([+0-9])",
  "customerId": "string",
  "partySize": "integer (int64)",
  "staffFirstAvailable": "boolean",
  "staffIds": [
    "string"
  ],
  "serviceIds": [
    "string"
  ],
  "quotedWaitDuration": "integer (int64)",
  "waitlistTime": "integer (int64)",
  "serveTime": "integer (int64)",
  "waitlistId": "string ([a-z0-9])",
  "status": "string"
}
201 Created

A Guest

400 Bad Request

Bad request - Invalid or missing parameter

401 Unauthorized

Unauthorized - No valid API key provided.

404 Not Found

Not Found - The requested resource doesn't exist.

500 Internal Server Error

Unexpected server error - Something went wrong on Waitwhile's end.

Response Example (201 Created)
{
  "id": "string ([a-z0-9])",
  "name": "string",
  "email": "string (email)",
  "phone": "string ([+0-9])",
  "customerId": "string",
  "partySize": "integer (int64)",
  "staffFirstAvailable": "boolean",
  "staffIds": [
    "string"
  ],
  "serviceIds": [
    "string"
  ],
  "quotedWaitDuration": "integer (int64)",
  "waitlistTime": "integer (int64)",
  "serveTime": "integer (int64)",
  "waitlistId": "string ([a-z0-9])",
  "status": "string"
}
Response Example (400 Bad Request)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (404 Not Found)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (500 Internal Server Error)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}

Get a list of customers

GET /customers

Returns a list of customers associated with an account.

200 OK

A list of Customers

400 Bad Request

Bad request - Invalid or missing parameter

401 Unauthorized

Unauthorized - No valid API key provided.

404 Not Found

Not Found - The requested resource doesn't exist.

500 Internal Server Error

Unexpected server error - Something went wrong on Waitwhile's end.

Response Example (200 OK)
[
  {
    "id": "string ([a-z0-9])",
    "name": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string (email)",
    "phone": "string ([+0-9])",
    "customerId": "string",
    "notes": "string",
    "waitlistId": "string ([a-z0-9])",
    "lastVisit": "integer (int64)",
    "numVisits": "integer (int64)"
  }
]
Response Example (400 Bad Request)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (404 Not Found)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (500 Internal Server Error)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}

Create a customers

POST /customers

Returns the created customers.

The Customers to create.

Request Example
[
  {
    "id": "string ([a-z0-9])",
    "name": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string (email)",
    "phone": "string ([+0-9])",
    "customerId": "string",
    "notes": "string",
    "waitlistId": "string ([a-z0-9])",
    "lastVisit": "integer (int64)",
    "numVisits": "integer (int64)"
  }
]
201 Created

A list of Customers

400 Bad Request

Bad request - Invalid or missing parameter

401 Unauthorized

Unauthorized - No valid API key provided.

404 Not Found

Not Found - The requested resource doesn't exist.

500 Internal Server Error

Unexpected server error - Something went wrong on Waitwhile's end.

Response Example (201 Created)
[
  {
    "id": "string ([a-z0-9])",
    "name": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string (email)",
    "phone": "string ([+0-9])",
    "customerId": "string",
    "notes": "string",
    "waitlistId": "string ([a-z0-9])",
    "lastVisit": "integer (int64)",
    "numVisits": "integer (int64)"
  }
]
Response Example (400 Bad Request)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (404 Not Found)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}
Response Example (500 Internal Server Error)
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}

Schema Definitions

Waitlist: object

id: string ([a-z0-9])
name: string
accountId: string ([a-z0-9])
Example
{
  "id": "string ([a-z0-9])",
  "name": "string",
  "accountId": "string ([a-z0-9])"
}

Waitlists: object[]

Example
[
  {
    "id": "string ([a-z0-9])",
    "name": "string",
    "accountId": "string ([a-z0-9])"
  }
]

WaitlistStatus: object

id: string ([a-z0-9])
name: string
numberOfWaiting: integer (int64)
numberOfServing: integer (int64)
estimatedWait: integer (int64)
currentWaitByStaff: object
Example
{
  "id": "string ([a-z0-9])",
  "name": "string",
  "numberOfWaiting": "integer (int64)",
  "numberOfServing": "integer (int64)",
  "estimatedWait": "integer (int64)"
}

Guest: object

id: string ([a-z0-9])
name: string
email: string (email)
phone: string ([+0-9])
customerId: string
partySize: integer (int64)
staffFirstAvailable: boolean
staffIds: string[]
serviceIds: string[]
quotedWaitDuration: integer (int64)
waitlistTime: integer (int64)
serveTime: integer (int64)
waitlistId: string ([a-z0-9])
status: string , x ∈ { booked , waiting , serving , noshow , done }
Example
{
  "id": "string ([a-z0-9])",
  "name": "string",
  "email": "string (email)",
  "phone": "string ([+0-9])",
  "customerId": "string",
  "partySize": "integer (int64)",
  "staffFirstAvailable": "boolean",
  "staffIds": [
    "string"
  ],
  "serviceIds": [
    "string"
  ],
  "quotedWaitDuration": "integer (int64)",
  "waitlistTime": "integer (int64)",
  "serveTime": "integer (int64)",
  "waitlistId": "string ([a-z0-9])",
  "status": "string"
}

Guests: object[]

Example
[
  {
    "id": "string ([a-z0-9])",
    "name": "string",
    "email": "string (email)",
    "phone": "string ([+0-9])",
    "customerId": "string",
    "partySize": "integer (int64)",
    "staffFirstAvailable": "boolean",
    "staffIds": [
      "string"
    ],
    "serviceIds": [
      "string"
    ],
    "quotedWaitDuration": "integer (int64)",
    "waitlistTime": "integer (int64)",
    "serveTime": "integer (int64)",
    "waitlistId": "string ([a-z0-9])",
    "status": "string"
  }
]

Customer: object

id: string ([a-z0-9])
name: string
firstName: string
lastName: string
email: string (email)
phone: string ([+0-9])
customerId: string
notes: string
waitlistId: string ([a-z0-9])
lastVisit: integer (int64)
numVisits: integer (int64)
Example
{
  "id": "string ([a-z0-9])",
  "name": "string",
  "firstName": "string",
  "lastName": "string",
  "email": "string (email)",
  "phone": "string ([+0-9])",
  "customerId": "string",
  "notes": "string",
  "waitlistId": "string ([a-z0-9])",
  "lastVisit": "integer (int64)",
  "numVisits": "integer (int64)"
}

Customers: object[]

Example
[
  {
    "id": "string ([a-z0-9])",
    "name": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string (email)",
    "phone": "string ([+0-9])",
    "customerId": "string",
    "notes": "string",
    "waitlistId": "string ([a-z0-9])",
    "lastVisit": "integer (int64)",
    "numVisits": "integer (int64)"
  }
]

Response: object

type: string
code: integer (int32)
message: string
Example
{
  "type": "string",
  "code": "integer (int32)",
  "message": "string"
}