The QReserve API documentation is being actively developed and may change or be updated at any time. Please contact QReserve at hello@qreserve.com at any time if you have any questions about how to perform actions that are not yet documented or if you have any issues while implementing an integration with documented API components.
The QReserve API allows you to push and pull information from the QReserve platform over HTTPS with JSON data representations. Your favourite programming language will most likely have libraries and tools available to easily interact with the API.
The base endpoint for all API requests is:
https://api.qreserve.com/
Nearly all requests must be authenticated and the recommended way to authenticate is to create a bot user account in your site that provides an API key and allows you to audit recent API requests and also restrict API key usage to specific IP addresses to protect your access to the platform. Refer to the Authentication page for full details.
All requests will return a JSON object in the following format:
{
"version": 2, /* Current QReserve API version */
"action": <str>, /* Optional verb about the action performed. Can be safely ignored. */
"status": <str>, /* Typically either success or error. */
"numitems": <int>, /* Can be included to inform of the total number of items when lists are requested. */
"errors": [<str>, ...], /* If errors were raised they are included here. */
"data": <REQUESTED_DATA>, /* If data is returned it will be here. */
}
Whenever using the POST method with an API endpoint you must always set the Content-Type
header to the following:
Content-Type: application/json
If there is ever a POST request that performs an action but you do not need to pass any additional arguments in, you must still include an empty JSON object in the HTTP request body like so:
{}
Object IDs in QReserve are typically alphanumeric strings of around 38-40 characters long and will have names such as user_id
or site_id
. When an ID is meant to be inserted into a URL it will be written in angled brackets such as <site_id>
. Determinining the IDs relevant to your usage, look in the URLs in your browser while interacting with the web interface.
For example, if you see:
GET /user/<user_id>
then this means your actual URL would look something like:
https://api.qreserve.com/user/19h4xvfr6vlh4np3s6ybz6xao739rqtvyjahyx
Rate limits are in place and will differ for different endpoints depending on the expected regular usage pattern of that endpoint. These rate limits are not advertised but if you hit such a limit the system will respond with a 429
response code. If you are planning to perform a large number of operations it can be beneficial to stagger or add periodic pauses between calls to ensure you avoid hitting such rate limits.
When in doubt about how a particular API endpoint performs we recommend observing the QReserve web application's use of that API to see how arguments are populated and what information is returned. You can observe API usage through the Developer Tools in your web browser. And as always, please reach out to us at hello@qreserve.com with any questions you may have!