Download OpenAPI specification:
This API is documented in OpenAPI format. It's still a work in progress so please let us know about any issues at dev@bookio.com.
Token based authentication. Access to bookio API with specific channel assigned to the token.
| ErrorCode | Description |
|---|---|
| 10 | Generic validation error, errors field will give more information |
| 11 | Payment error, reservation cannot be marked as paid |
| 12 | Resource not found. |
| 20 | Invalid token or missing access rights |
| 30 | There is no capacity left |
| 40 | Duplicate reservation |
| 403 | You don't have enough permissions to access this endpoint |
| 404 | Not found |
| 666 | Unspecified internal error, this will be reported to us and we will look into it shortly |
Every request accepts parameter lang. Example: /api/v1/some-endpoint?lang=sk or /api/v1/some-endpoint?someParam=1&lang=en. Controls the language of texts. Unsupported locale will fallback to "en".
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "facilities": [
- {
- "id": 123,
- "name": "Stomatologia ABC",
- "address": {
- "street": "Second street",
- "city": "Bratislava",
- "postcode": 82104,
- "country": {
- "name": "Slovakia",
- "code": "SVK"
}, - "gps": {
- "latitude": 48.152115,
- "longitude": 17.108769
}
}, - "contact": {
- "phone": "+421999888777",
- "email": "test@bookio.com",
}, - "timeZone": "Europe/Bratislava"
}
]
}
}
}Looks for calendars in specified time
| date | string <date> (Date) Example: date=2018-06-29 Specific date. |
| facilityId | number <int64> (Id) Example: facilityId=123 ID of the specified facility. |
{- "result": {
- "success": true,
- "data": {
- "calendars": [
- {
- "id": 123,
- "facilityId": 123,
- "name": "Hello there",
- "note": "Hello there",
- "validFrom": "2018-06-29T12:00:00",
- "validTo": "2018-06-29T12:00:00",
- "services": [
- {
- "id": 123,
- "name": "Some service",
- "note": "Some note",
- "duration": 44,
- "capacity": 1,
- "referralLetter": true,
- "hiddenInOnlineForm": true
}
], - "intervals": [
- {
- "id": 123,
- "name": "Some interval",
- "weekDays": [
- 1,
- 2,
- 3
], - "timeFrom": "18:00",
- "timeTo": "18:00",
- "allowedServices": [
- 2,
- 53,
- 5
]
}
]
}
]
}
}
}Creates calendar from requested data.
JSON body
| facilityId required | number <int64> (Id) Unique identifier |
| name required | string |
| note required | string |
| validFrom required | string <date> (DateTime) Date (RFC 3339 full-date format) |
| validTo required | string <date> (DateTime) Date (RFC 3339 full-date format) |
required | Array of objects |
required | Array of objects |
{- "facilityId": 123,
- "name": "Hello there",
- "note": "Hello there",
- "validFrom": "2018-06-29T12:00:00",
- "validTo": "2018-06-29T12:00:00",
- "services": [
- {
- "id": 123,
- "name": "Some service",
- "note": "Some note",
- "duration": 44,
- "capacity": 1,
- "referralLetter": true,
- "hiddenInOnlineForm": true
}
], - "intervals": [
- {
- "id": 123,
- "name": "Some interval",
- "weekDays": [
- 1,
- 2,
- 3
], - "timeFrom": "18:00",
- "timeTo": "18:00",
- "allowedServices": [
- 2,
- 53,
- 5
]
}
]
}{- "result": {
- "success": true,
- "data": {
- "calendarId": 3423
}
}
}Creates calendar from requested data.
| calendarId required | number Example: 3254 Bookio calendar ID. |
JSON body
| facilityId required | number <int64> (Id) Unique identifier |
| name required | string |
| note required | string |
| validFrom required | string <date> (DateTime) Date (RFC 3339 full-date format) |
| validTo required | string <date> (DateTime) Date (RFC 3339 full-date format) |
required | Array of objects |
required | Array of objects |
{- "facilityId": 123,
- "name": "Hello there",
- "note": "Hello there",
- "validFrom": "2018-06-29T12:00:00",
- "validTo": "2018-06-29T12:00:00",
- "services": [
- {
- "id": 123,
- "name": "Some service",
- "note": "Some note",
- "duration": 44,
- "capacity": 1,
- "referralLetter": true,
- "hiddenInOnlineForm": true
}
], - "intervals": [
- {
- "id": 123,
- "name": "Some interval",
- "weekDays": [
- 1,
- 2,
- 3
], - "timeFrom": "18:00",
- "timeTo": "18:00",
- "allowedServices": [
- 2,
- 53,
- 5
]
}
]
}{- "result": {
- "success": true,
- "data": {
- "calendarId": 3423
}
}
}Ends specified calendar at specified date.
| calendarId required | number Example: 3254 Bookio calendar ID. |
JSON body
| facilityId | number <int64> (Id) Unique identifier |
| validTo | string <date> (DateTime) Date (RFC 3339 full-date format) |
{- "facilityId": 123,
- "validTo": "2018-06-29T12:00:00"
}{- "result": {
- "success": true,
- "data": {
- "calendarId": 3423
}
}
}Returns a list of reservations by filter.
string Example: email=test@bookio.com Email of the reservee. | |
| number | string (ReservationNumber) Example: number=a47b89 Bookio reservation number. |
| status | string (MedicReservationStatus) Enum: "CONFIRMED" "CANCELLED" "DID_NOT_COME" Example: status=CANCELLED Reservation status. |
| offset | integer >= 0 Default: 0 Example: offset=50 Determines the offset within pagination. |
| limit | integer [ 0 .. 100 ] Default: 100 Example: limit=50 Limits the result set. |
| facilityId | number <int64> (Id) Example: facilityId=123 ID of the specified facility. |
| from | string <date> (Date) Example: from=2018-06-29 Look for reservation beginning this date. |
| to | string <date> (Date) Example: to=2018-06-29 Look for reservation ending this date. |
| onlyUnsynced | boolean Example: onlyUnsynced=true Show only unsynced reservations in the final result. |
| lastSync | number Example: lastSync=1671109423478 The last timestamp with milliseconds when you synced your data. |
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "pagination": {
- "total": 1234,
- "offset": 100,
- "limit": 100
}, - "reservations": [
- {
- "id": 123,
- "externalId": 123,
- "number": "a2se8w",
- "name": "John Audrey",
- "email": "alias@example.com",
- "phone": "+421944888777",
- "service": 123,
- "duration": 2,
- "created": "2018-06-29T12:00:00",
- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00",
- "cancelTime": "2018-06-29T12:00:00",
- "cancellationReason": "string",
- "needsSync": true,
- "facilityId": 123,
- "note": "string",
- "status": "CONFIRMED"
}
]
}
}
}Creates reservation from requested data.
JSON body
| name required | string (CustomerName) Customer's name |
| surname required | string (CustomerName) Customer's name |
| email required | string (CustomerEmail) Customer's email |
| phone required | string (CustomerPhone) Customer's phone |
| dateFrom required | string <date> (DateTime) Date (RFC 3339 full-date format) |
| locale required | string <locale> (Locale) Locale (ISO 639-1 languages) |
| externalId required | number <int64> (Id) Unique identifier |
| serviceId required | number <int64> (Id) Unique identifier |
| note | string Reservation note |
| facilityId required | number <int64> (Id) Unique identifier |
{- "name": "John",
- "surname": "John",
- "email": "john@yahoo.com",
- "phone": "+421948762315",
- "dateFrom": "2018-06-29T12:00:00",
- "locale": "sk",
- "externalId": 123,
- "serviceId": 123,
- "note": "Something to notify about.",
- "facilityId": 123
}{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423,
- "externalId": 21452
}
}
}Change status of reservation
| reservationId required | number Example: 3254 Bookio reservation ID. |
JSON body
| status | string Enum: "CONFIRMED" "CANCELLED" "DID_NOT_COME" Status of the reservation |
| cancellationReason | string Reason of cancellation which is propagated to cancellation email |
{- "status": "CANCELLED",
- "cancellationReason": "Cant make it."
}{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423,
- "externalId": 21452
}
}
}Change term of reservation
| reservationId required | number Example: 3254 Bookio reservation ID. |
JSON body
| dateFrom | string <date> (DateTime) Date (RFC 3339 full-date format) |
| dateTo | string or null <date> (DateTimeNotRequired) Date (RFC 3339 full-date format) |
{- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00"
}{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423,
- "externalId": 21452
}
}
}Confirms sync of reservation
| reservationId required | number Example: 3254 Bookio reservation ID. |
JSON body
| externalId | number <int64> (Id) Unique identifier |
{- "externalId": 123
}{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423,
- "externalId": 21452
}
}
}Returns a list of reservations by filter.
| dateFrom | string <date> (Date) Example: dateFrom=2018-06-29 Date from. |
| dateTo | string <date> (Date) Example: dateTo=2018-06-29 Date to. |
| offset | integer >= 0 Default: 0 Example: offset=50 Determines the offset within pagination. |
| limit | integer [ 0 .. 100 ] Default: 100 Example: limit=50 Limits the result set. |
| facilityId | number <int64> (Id) Example: facilityId=123 ID of the specified facility. |
| lastSync | number Example: lastSync=1671109423478 The last timestamp with milliseconds when you synced your data. |
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "pagination": {
- "total": 1234,
- "offset": 100,
- "limit": 100
}, - "blockedTimes": [
- {
- "id": 123,
- "externalId": 123,
- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00",
- "note": "string"
}
]
}
}
}Creates blocked time from requested data.
JSON body
| dateFrom required | string <date> (DateTime) Date (RFC 3339 full-date format) |
| dateTo required | string <date> (DateTime) Date (RFC 3339 full-date format) |
| externalId required | number <int64> (Id) Unique identifier |
| note required | string Blocked time note |
| facilityId required | number <int64> (Id) Unique identifier |
{- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00",
- "externalId": 123,
- "note": "A note.",
- "facilityId": 123
}{- "result": {
- "success": true,
- "data": {
- "blockedTimeId": 3423,
- "externalId": 21452
}
}
}Change term of blocked time
| blockedTimeId required | number Example: 3254 Bookio blocked time ID. |
JSON body
| dateFrom | string <date> (DateTime) Date (RFC 3339 full-date format) |
| dateTo | string <date> (DateTime) Date (RFC 3339 full-date format) |
{- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00"
}{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423
}
}
}