API
Below is the API documentation. Report an issue on GitHub.
All endpoints have the /api
prefix. That means, for example, that /auth/login
can be reached at /api/auth/login
.
Authentication
Authentication is done using an API key.
To log in, make a POST request to the /api/auth/login
endpoint.
You'll receive an API key, which you can then use in your requests to authenticate.
Supply it via the url parameter api_key
.
This API key is valid for one hour (though the admin can change this duration) after which the key expires, any further requests return 401 'APIKeyExpired' and you are required to log in again.
If no api_key
is supplied or it is invalid, 401 APIKeyInvalid
is returned.
For example:
curl -sSL 'http://192.168.2.15:8080/api/reminders?api_key=ABCDEFG'
Supplying data
Often, data needs to be supplied with a request:
- If the parameters need to be supplied via
url
, add them to the url as url parameters.
- If the parameters need to be supplied via
body
, add them to the body as a json object and supply the Content-Type: application/json
header.
- If the parameters need to be supplied via
file
, send them as form data values and supply the Content-Type: multipart/form-data
header.
For example:
# URL parameter
curl -sSL 'http://192.168.2.15:8080/api/reminders/search?api_key=ABCDEFG&query=Fountain&sort_by=time_reversed'
# Body parameter
curl -sSLX POST \
-H 'Content-Type: application/json' \
-d '{"title": "Test service", "url": "test://fake/url"}' \
'http://192.168.2.15:8080/api/notificationservices?api_key=ABCDEFG'
# File parameter
curl -sSLX POST \
-H 'Content-Type: multipart/form-data' \
-F file=@/backups/MIND_backup.db \
'http://192.168.2.15:8080/api/admin/database?api_key=ABCDEFG'
Endpoints
The following is automatically generated. Please report any issues on GitHub.
/auth/login
Requires being logged in |
Description |
No |
Login to a user account |
Post
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
username |
Yes |
string |
The username of the user account |
N/A |
password |
Yes |
string |
The password of the user account |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
401 |
AccessUnauthorized |
The password given is not correct |
404 |
UserNotFound |
The user requested can not be found |
/auth/logout
Requires being logged in |
Description |
Yes |
Logout of a user account |
Post
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
/auth/status
Requires being logged in |
Description |
Yes |
Get current status of login |
Get
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
/user/add
Requires being logged in |
Description |
No |
Create a new user account |
Post
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
username |
Yes |
string |
The username of the user account |
N/A |
password |
Yes |
string |
The password of the user account |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
400 |
UsernameInvalid |
The username contains invalid characters |
400 |
UsernameTaken |
The username is already taken |
403 |
NewAccountsNotAllowed |
It's not allowed to create a new account except for the admin |
/user
Requires being logged in |
Description |
Yes |
Manage a user account |
Put
Change the password of the user account
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
new_password |
Yes |
string |
The new password of the user account |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
Delete
Delete the user account
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
/notificationservices
Requires being logged in |
Description |
Yes |
Manage the notification services |
Get
Get a list of all notification services
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
Post
Add a notification service
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
Yes |
string |
The title of the entry |
N/A |
url |
Yes |
string |
The Apprise URL of the notification service |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
/notificationservices/available
Requires being logged in |
Description |
Yes |
Get all available notification services and their url layout |
Get
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
/notificationservices/test
Requires being logged in |
Description |
Yes |
Send a test notification using the supplied Apprise URL |
Post
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
url |
Yes |
string |
The Apprise URL of the notification service |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
/notificationservices/<int:n_id>
Requires being logged in |
Description |
Yes |
Manage a specific notification service |
Replace <int:n_id>
with the ID of the entry. For example: /notificationservices/2
.
Get
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
404 |
NotificationServiceNotFound |
The notification service was not found |
Put
Edit the notification service
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
No |
string |
The title of the entry |
N/A |
url |
No |
string |
The Apprise URL of the notification service |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
404 |
NotificationServiceNotFound |
The notification service was not found |
Delete
Delete the notification service
Parameters (url)
Name |
Required |
Data type |
Description |
Allowed values |
delete_reminders_using |
No |
bool |
Instead of throwing an error when there are still reminders using the service, delete the reminders. |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
404 |
NotificationServiceNotFound |
The notification service was not found |
/reminders
Requires being logged in |
Description |
Yes |
Manage the reminders |
Get
Get a list of all reminders
Parameters (url)
Name |
Required |
Data type |
Description |
Allowed values |
sort_by |
No |
string |
How to sort the result |
time , time_reversed , title , title_reversed , date_added , date_added_reversed |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
Post
Add a reminder
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
Yes |
string |
The title of the entry |
N/A |
time |
Yes |
number,decimal number |
The UTC epoch timestamp that the reminder should be sent at |
N/A |
notification_services |
Yes |
list of numbers |
Array of the id's of the notification services to use to send the notification |
N/A |
text |
No |
string |
The body of the entry |
N/A |
repeat_quantity |
No |
string |
The quantity of the repeat_interval |
years , months , weeks , days , hours , minutes |
repeat_interval |
No |
number |
The number of the interval |
N/A |
weekdays |
No |
list of numbers |
On which days of the weeks to run the reminder |
0 , 1 , 2 , 3 , 4 , 5 , 6 |
color |
No |
string |
The hex code of the color of the entry, which is shown in the web-ui |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
InvalidTime |
The time given is in the past |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
404 |
NotificationServiceNotFound |
The notification service was not found |
Requires being logged in |
Description |
Yes |
Search through the list of reminders |
Get
Parameters (url)
Name |
Required |
Data type |
Description |
Allowed values |
sort_by |
No |
string |
How to sort the result |
time , time_reversed , title , title_reversed , date_added , date_added_reversed |
query |
Yes |
string |
The search term |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
/reminders/test
Requires being logged in |
Description |
Yes |
Test send a reminder draft |
Post
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
Yes |
string |
The title of the entry |
N/A |
notification_services |
Yes |
list of numbers |
Array of the id's of the notification services to use to send the notification |
N/A |
text |
No |
string |
The body of the entry |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
404 |
NotificationServiceNotFound |
The notification service was not found |
/reminders/<int:r_id>
Requires being logged in |
Description |
Yes |
Manage a specific reminder |
Replace <int:r_id>
with the ID of the entry. For example: /reminders/2
.
Get
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
404 |
ReminderNotFound |
The reminder with the id can not be found |
Put
Edit the reminder
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
No |
string |
The title of the entry |
N/A |
time |
No |
number,decimal number |
The UTC epoch timestamp that the reminder should be sent at |
N/A |
notification_services |
No |
list of numbers |
Array of the id's of the notification services to use to send the notification |
N/A |
text |
No |
string |
The body of the entry |
N/A |
repeat_quantity |
No |
string |
The quantity of the repeat_interval |
years , months , weeks , days , hours , minutes |
repeat_interval |
No |
number |
The number of the interval |
N/A |
weekdays |
No |
list of numbers |
On which days of the weeks to run the reminder |
0 , 1 , 2 , 3 , 4 , 5 , 6 |
color |
No |
string |
The hex code of the color of the entry, which is shown in the web-ui |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
InvalidTime |
The time given is in the past |
404 |
NotificationServiceNotFound |
The notification service was not found |
404 |
ReminderNotFound |
The reminder with the id can not be found |
Delete
Delete the reminder
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
404 |
ReminderNotFound |
The reminder with the id can not be found |
/templates
Requires being logged in |
Description |
Yes |
Manage the templates |
Get
Get a list of all templates
Parameters (url)
Name |
Required |
Data type |
Description |
Allowed values |
sort_by |
No |
string |
How to sort the result |
title , title_reversed , date_added , date_added_reversed |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
Post
Add a template
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
Yes |
string |
The title of the entry |
N/A |
notification_services |
Yes |
list of numbers |
Array of the id's of the notification services to use to send the notification |
N/A |
text |
No |
string |
The body of the entry |
N/A |
color |
No |
string |
The hex code of the color of the entry, which is shown in the web-ui |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
404 |
NotificationServiceNotFound |
The notification service was not found |
/templates/search
Requires being logged in |
Description |
Yes |
Search through the list of templates |
Get
Parameters (url)
Name |
Required |
Data type |
Description |
Allowed values |
sort_by |
No |
string |
How to sort the result |
title , title_reversed , date_added , date_added_reversed |
query |
Yes |
string |
The search term |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
/templates/<int:t_id>
Requires being logged in |
Description |
Yes |
Manage a specific template |
Replace <int:t_id>
with the ID of the entry. For example: /templates/2
.
Get
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
404 |
TemplateNotFound |
The template was not found |
Put
Edit the template
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
No |
string |
The title of the entry |
N/A |
notification_services |
No |
list of numbers |
Array of the id's of the notification services to use to send the notification |
N/A |
text |
No |
string |
The body of the entry |
N/A |
color |
No |
string |
The hex code of the color of the entry, which is shown in the web-ui |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
404 |
NotificationServiceNotFound |
The notification service was not found |
404 |
TemplateNotFound |
The template was not found |
Delete
Delete the template
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
404 |
TemplateNotFound |
The template was not found |
/staticreminders
Requires being logged in |
Description |
Yes |
Manage the static reminders |
Get
Get a list of all static reminders
Parameters (url)
Name |
Required |
Data type |
Description |
Allowed values |
sort_by |
No |
string |
How to sort the result |
title , title_reversed , date_added , date_added_reversed |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
Post
Add a static reminder
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
Yes |
string |
The title of the entry |
N/A |
notification_services |
Yes |
list of numbers |
Array of the id's of the notification services to use to send the notification |
N/A |
text |
No |
string |
The body of the entry |
N/A |
color |
No |
string |
The hex code of the color of the entry, which is shown in the web-ui |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
404 |
NotificationServiceNotFound |
The notification service was not found |
Requires being logged in |
Description |
Yes |
Search through the list of staticreminders |
Get
Parameters (url)
Name |
Required |
Data type |
Description |
Allowed values |
sort_by |
No |
string |
How to sort the result |
title , title_reversed , date_added , date_added_reversed |
query |
Yes |
string |
The search term |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
/staticreminders/<int:s_id>
Requires being logged in |
Description |
Yes |
Manage a specific static reminder |
Replace <int:s_id>
with the ID of the entry. For example: /staticreminders/2
.
Get
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
404 |
ReminderNotFound |
The reminder with the id can not be found |
Post
Trigger the static reminder
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
404 |
ReminderNotFound |
The reminder with the id can not be found |
Put
Edit the static reminder
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
title |
No |
string |
The title of the entry |
N/A |
notification_services |
No |
list of numbers |
Array of the id's of the notification services to use to send the notification |
N/A |
text |
No |
string |
The body of the entry |
N/A |
color |
No |
string |
The hex code of the color of the entry, which is shown in the web-ui |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
404 |
NotificationServiceNotFound |
The notification service was not found |
404 |
ReminderNotFound |
The reminder with the id can not be found |
Delete
Delete the static reminder
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
404 |
ReminderNotFound |
The reminder with the id can not be found |
/admin/shutdown
Requires being logged in |
Description |
Yes |
Shut down the application |
Post
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
/admin/restart
Requires being logged in |
Description |
Yes |
Restart the application |
Post
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
/settings
Requires being logged in |
Description |
No |
Get the admin settings |
Get
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
/admin/settings
Requires being logged in |
Description |
Yes |
Interact with the admin settings |
Get
Get the admin settings
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
Put
Edit the admin settings. Supplying a hosting setting will automatically restart MIND.
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
allow_new_accounts |
No |
bool |
Whether or not to allow users to register a new account. The admin can always add a new account. |
N/A |
login_time |
No |
number |
How long a user stays logged in, in seconds. Between 1 min and 1 month (60 <= sec <= 2592000) |
N/A |
login_time_reset |
No |
bool |
If the Login Time timer should reset with each API request. |
N/A |
host |
No |
string |
The IP to bind to. Use 0.0.0.0 to bind to all addresses. |
N/A |
port |
No |
number |
The port to listen on. |
N/A |
url_prefix |
No |
string |
The base url to run on. Useful for reverse proxies. Empty string to disable. |
N/A |
log_level |
No |
number |
The level to log on. |
20 , 10 |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
InvalidKeyValue |
The value of a key is invalid |
/admin/logs
Requires being logged in |
Description |
Yes |
Get the debug logs |
Get
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
/admin/users
Requires being logged in |
Description |
Yes |
Get all users or add one |
Get
Get all users
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
Post
Add a new user
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
username |
Yes |
string |
The username of the user account |
N/A |
password |
Yes |
string |
The password of the user account |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
400 |
UsernameInvalid |
The username contains invalid characters |
400 |
UsernameTaken |
The username is already taken |
403 |
NewAccountsNotAllowed |
It's not allowed to create a new account except for the admin |
/admin/users/<int:u_id>
Requires being logged in |
Description |
Yes |
Manage a specific user |
Replace <int:u_id>
with the ID of the entry. For example: /admin/users/2
.
Put
Change the password of the user account
Parameters (body)
Name |
Required |
Data type |
Description |
Allowed values |
new_password |
Yes |
string |
The new password of the user account |
N/A |
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |
Delete
Delete the user account
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
/admin/database
Requires being logged in |
Description |
Yes |
Download and upload the database |
Get
Download the database file
Returns
Code |
Error |
Description |
200 |
N/A |
Success |
Post
Upload and apply a database file. Will automatically restart MIND.
Parameters (url)
Name |
Required |
Data type |
Description |
Allowed values |
copy_hosting_settings |
Yes |
bool |
Copy the hosting settings from the current database |
N/A |
Parameters (file)
Name |
Required |
Data type |
Description |
Allowed values |
file |
Yes |
N/A |
The MIND database file |
N/A |
Returns
Code |
Error |
Description |
201 |
N/A |
Success |
400 |
InvalidDatabaseFile |
The uploaded database file is invalid or not supported |
400 |
InvalidKeyValue |
The value of a key is invalid |
400 |
KeyNotFound |
A key was not found in the input that is required to be given |