Reservation Diary API
This document helps you to build your own reservation frontend or integrate with 3rd party by using Reservation Diary API
Acquire API Key
In order to consume API, you will need to register in a system. As a result, you will have your unique API key. Every call will require to use this API key.
Post
http://api.reservationdiary.eu/Service/User.svc
{"Email":"catkin@catzsoft.ee","Source":null}
Response
{
"ID": "[API_KEY]"
}
Setup
Place setup
Create place
Post
http://api.reservationdiary.eu/Service/Place.svc/[API_KEY]
{"place":{"Name":"Test restoran","City":"Tallinn","Country":"Estonia","Address":"Taludevahe 96/1","Email":"catkin@catzsoft.ee","WebAddress":"www.ee","Phone":"14234234","MinTimeBeforeReservation":24,"DescriptionShort":null,"DescriptionFull":null,"Lang":null,"Catalog":null,"DateFormat":"dd/MM/yyyy","MaxTimeBeforeReservation":null,"EmailCC":null, "Active":true, "ManualReservationLevel":0,"TimeStep":15, "CustomData":null, "ReservationDuration":null }}
Response
{
"ID": "[PLACE_ID]"
}
Update place
Put
http://api.reservationdiary.eu/Service/Place.svc/[API_KEY]/[PLACE_ID]
{"place":{"Name":"Test\u0027s restoran \u0026 test \\","City":"Tallinn","Country":"Estonia","Address":"Taludevahe 96/1","Email":"catkin@catzsoft.ee","WebAddress":"www.ee","Phone":"14234234","MinTimeBeforeReservation":3,"DescriptionShort":"Short description","DescriptionFull":"Full description","Lang":"ru-RU","Catalog":true,"DateFormat":"","MaxTimeBeforeReservation":null,"EmailCC":"sergei.prokopov@catzsoft.ee,info@catzsoft.ee","Active":true, "ManualReservationLevel":0,"TimeStep":15, "CustomData":null, "ReservationDuration":null }}
Response
{
"ID": "[PLACE_ID]"
}
Delete place
NOTE: This call will delete place with all settings and reservations.
Delete
http://api.reservationdiary.eu/Service/Place.svc/[API_KEY]/[PLACE_ID]
Response
{
"ID": "[PLACE_ID]"
}
Â
Category setup
Create category
Post
http://api.reservationdiary.eu/Service/Category.svc/[API_KEY]/[PLACE_ID]
{"category":{"Name":"Restaurant"}}
Response
{
"ID": "[CATEGORY_ID]"
}
Â
Get categories
http://api.reservationdiary.eu/service/place.svc/[API_KEY]/[PLACE_ID]/categories
Response
[
{
"ID": "[CATEGORY_ID]",
"Name": "Restaurant",
"TimeSet": {
"Friday": {
"CloseTime": "00:00",
"OpenTime": "12:00"
},
"Monday": {
"CloseTime": "00:00",
"OpenTime": "12:00"
},
"Saturday": {
"CloseTime": "00:00",
"OpenTime": "12:00"
},
"Sunday": {
"CloseTime": "22:00",
"OpenTime": "19:00"
},
"Thursday": {
"CloseTime": "00:00",
"OpenTime": "12:00"
},
"Tuesday": {
"CloseTime": "00:00",
"OpenTime": "12:00"
},
"Wednesday": {
"CloseTime": "00:00",
"OpenTime": "12:00"
}
}
}
]
Â
Â
Services setup
Create services
Post
http://api.reservationdiary.eu/Service/Service.svc/[API_KEY]/[CATEGORY_ID]
{"service":{"Name":"Person","Quantity":10}}
Response
[
{
"ID": "[SERVICE_ID]"
},
{
"ID": "[SERVICE_ID]"
},
]
Get the list of services
Get
http://api.reservationdiary.eu/Service/Service.svc/[API_KEY]/[CATEGORY_ID]/Person
Response
[
{
"ID": "[SERVICE_ID]"
"Name": "Person"
},
{
"ID": "[SERVICE_ID]"
"Name": "Person"
},
]
Delete services by ID
This method will delete all services associated with service reservations.
Delete
http://api.reservationdiary.eu/Service/Service.svc/[API_KEY]?serviceID=[SERVICE_ID’s]
Response
[
{
"ID": "[SERVICE_ID’s]"
}
]
Delete services by quantity
This call will delete services but it will keep reservations untouched.
Delete
http://api.reservationdiary.eu/Service/Service.svc/[API_KEY]/[CATEGORY_ID]/[SERVICE_NAME]/delete?quantity=[NUMBER_OF_SERVICES_TO_DELETE]
Response
[
{
"ID": "[SERVICE_ID’s]"
}
]
Â
Working time setup
Set working time
Put
http://api.reservationdiary.eu/Service/Category.svc/[API_KEY]/[CATEGORY_ID]/time
{"timeSet":{"Monday":{"OpenTime":"12:00","CloseTime":"13:00"},"Tuesday":null,"Wednesday":null,"Thursday":null,"Friday":null,"Saturday":null,"Sunday":null}}
Response
{
"ID": "[CATEGORY_ID]"
}
Â
Custom Fields setup
Create custom fields
Post
http://api.reservationdiary.eu/Service/CustomFields.svc/[lang]/[API_KEY]/place/[PLACE_ID]
{"customfield":{"Message":"", "Required":false, "Name":"Do you want to receive news from us?","Type":"checkbox"}}
Response
{
"ID": "[CUSTOM_FIELD_ID]"
}
Get custom fields
Get
http://api.reservationdiary.eu/Service/CustomFields.svc/[lang]/ [API_KEY]/place/[PLACE_ID]
Response
[
{
"Id": [CUSTOM_FIELD_ID],
"Message": "",
"Name": "Do you want to receive news from us?",
"Required": false,
"Type": "checkbox"
}
]
Update custom fields
Put
http://api.reservationdiary.eu/Service/CustomFields.svc/[lang]/ [API_KEY]/place/[PLACE_ID]/customfield/[CUSTOM_FIELD_ID]
{"customfield":{"Message":"", "Required":false, "Name":"Do you want to receive news from us?","Type":"checkbox"}}
Response
{
"ID": "[CUSTOM_FIELD_ID]"
}
Delete custom fields
Delete
http://api.reservationdiary.eu/Service/CustomFields.svc/[lang]/ [API_KEY]/place/[PLACE_ID]/customfield/[CUSTOM_FIELD_ID]
Response
{
"ID": "[CUSTOM_FIELD_ID]"
}
Â
Reservations
Get available time by Day
Get
http://api.reservationdiary.eu/Service/Reservation.svc/[API_KEY]/[CATEGORY_ID]/availabilityByDay/Person?StartTime=2017-05-15 00:00&Quantity=1&CurrentTime=2017-01-15 00:00&Lang=en-gb&EndTime=2017-06-15 00:00&AlternativeTimeStep=60&ReservationDuration=60
Response
[
{
"Availability": [
{
"Available": true,
"EndTime": "2017-02-15 01:00",
"Reason": null,
"StartTime": "2017-02-15 00:00"
},
{
"Available": true,
"EndTime": "2017-02-15 02:00",
"Reason": null,
"StartTime": "2017-02-15 01:00"
},
]
Â
Get available time
Get
http://api.reservationdiary.eu/Service/Reservation.svc/[API_KEY]/[CATEGORY_ID]/Person?StartTime=2013-11-15 09:00&EndTime=2013-11-15 18:00&Quantity=2&Alternatives=2&CurrentTime=2013-11-10 09:00&AlternativeTimeStep=&Lang=en
Response
[
{
"Available": true,
"EndTime": "2013-11-15 17:00",
"Reason": null,
"StartTime": "2013-11-15 08:00"
},
{
"Available": true,
"EndTime": "2013-11-15 17:30",
"Reason": null,
"StartTime": "2013-11-15 08:30"
}
]
Create reservation
Post
http://api.reservationdiary.eu/Service/Reservation.svc/[API_KEY]/[CATEGORY_ID]
{"reservation":{"UserName":"Sergei","UserEmail":"catkin@catzsoft.ee","UserComments":"Test","StartTime":"2017-01-25 14:00","EndTime":"2017-01-25 16:00","CurrentTime":"2017-01-23 22:29","UserPhone":"234234234234","Lang":null,"AreaID":0,"Version":null,"DontNotifyClient":false,"ManualConfirmationLevel":0,"Parameters":null,"Name":"Person","Quantity":5,AllowOverbooking:false}}
Response
{
"ID": "[RESERVATION_ID]"
}
Get place reference id
Get
http://upcomingapi.reservationdiary.eu/en-US/[API_KEY]/Place
Response
[
{
"ReferenceID": "[PLACE_REFERENCE_ID]"
}
]
Get reservations
Get
http://upcomingapi.reservationdiary.eu/en-US/[API_KEY]/Reservation?From=2023-10-22T21:00:00&To=2023-10-24T00:00:00&placeReferenceID=[PLACE_REFERENCE_ID]&states=RESERVED&flag=&email=
Response
[
{
"ID": [RESERVATION_ID],
"Start": "2023-10-23T09:00:00",
"End": "2023-10-23T18:00:00",
"Name": "Test1",
"Quantity": 1,
"Phone": "",
"Email": "",
"Comments": "Test1Comments",
"Area": "",
"InernalNotes": "",
"ServiceName": "Person",
"Status": "RESERVED"
},
{
"ID": [RESERVATION_ID],
"Start": "2023-10-23T09:30:00",
"End": "2023-10-23T12:00:00",
"Name": "Test2",
"Quantity": 2,
"Phone": "",
"Email": "",
"Comments": "",
"Area": "",
"InernalNotes": "",
"ServiceName": "Person",
"Status": "RESERVED"
}
]
Cancel reservation
Delete
http://api.reservationdiary.eu/Service/Reservation.svc/[API_KEY]/cancelByClient?email=catkin@catzsoft.ee&id=[RESERVATION_ID]&reason=Test reservation canceled by client
Response
{
"ID": "[RESERVATION_ID]"
}
Update reservation
Put
http://api.reservationdiary.eu/Service/Reservation.svc/[API_KEY]/update/[RESERVATION_ID]?CurrentTime=2013-10-20 09:00&Lang=en&DontNotifyClient=False
{"UserName":"Sergei","UserEmail":"catkin@catzsoft.ee","UserComments":"","StartTime":"2014-10-21 12:00","EndTime":"2014-10-22 22:00","CurrentTime":"2013-10-20 09:00","UserPhone":"9999","Lang":"en","AreaID":0,"Version":"15.1224","DontNotifyClient":false,"ManualConfirmationLevel":0,"Parameters":null,"Name":"Person","Quantity":2}
Response
{
"ID": "[RESERVATION_ID]"
}
Â