Download OpenAPI specification:Download
This is the remote API to Docspell. Docspell is a free document management system focused on small groups or families.
The routes can be divided into protected, unprotected routes and
admin routes. The unprotected, or open routes are at /open/*
while the protected routes are at /sec/*
and admin routes are at
/admin/*
. Open routes don't require authenticated access and can
be used by any user. The protected routes require an authenticated
user. The admin routes require a special http header with a value
from the config file. They are disabled by default, you need to
specify a secret in order to enable admin routes.
Authenticate with account name and password. The account name is comprised of the collective id and user id separated by slash, backslash or whitespace.
If successful, an authentication token is returned that can be used for subsequent calls to protected routes.
If the account has two-factor auth enabled, the returned token must be used to supply the second factor.
account required | string |
password required | string |
rememberMe | boolean |
{- "account": "string",
- "password": "string",
- "rememberMe": true
}
{- "collective": "string",
- "user": "string",
- "success": true,
- "message": "string",
- "token": "string",
- "validMs": 0,
- "requireSecondFactor": true
}
After a login with account name and password, a second factor must be supplied (only for accounts that enabled it) in order to complete login.
If the code is correct, a new token is returned that can be used for subsequent calls to protected routes.
token required | string |
otp required | string <password> |
rememberMe required | boolean |
{- "token": "string",
- "otp": "pa$$word",
- "rememberMe": true
}
{- "collective": "string",
- "user": "string",
- "success": true,
- "message": "string",
- "token": "string",
- "validMs": 0,
- "requireSecondFactor": true
}
Initiates the "Authorization Code Flow" as described in the OpenID Connect specification. This only is enabled, if an external provider has been configured correctly in the config file.
This will redirect to the external provider to authenticate
the user. Once authenticated, the user is redirected back to
the /resume
endpoint.
providerId required | string <ident> |
This URL is used to redirect the user back to the application by the authentication provider after login is completed.
This will then try to find (or create) the account at docspell using information about the user provided by the authentication provider. If the required information cannot be found, the user cannot be logged into the application.
If the process completed successfully, this endpoint redirects into the web application which will take over from here.
providerId required | string <ident> |
Authenticate with a token. This can be used to get a new authentication token based on another valid one.
{- "collective": "string",
- "user": "string",
- "success": true,
- "message": "string",
- "token": "string",
- "validMs": 0,
- "requireSecondFactor": true
}
Requests to enable two factor authentication for this user. A secret key is generated and returned. The client is expected to insert it into some OTP application. Currently, only time based OTP is supported.
The request body is empty.
{- "secret": "string",
- "authType": "totp",
- "issuer": "string"
}
Confirms using two factor authentication by sending a one time password. If the password is correct, this enables two factor authentication for the current user.
If there exists no unapproved otp request or the password is not correct, an error is returned. If 2fa is already enabled for this account, success is returned.
otp required | string <password> |
{- "otp": "pa$$word"
}
{- "success": true,
- "message": "string"
}
Disables two factor authentication for the current user. If the user has no two factor authentication enabled, an error is returned.
It requires to specify a valid otp.
After this completes successfully, two factor auth can be enabled again by initializing it anew.
otp required | string <password> |
{- "otp": "pa$$word"
}
{- "success": true,
- "message": "string"
}
Checks if a file with the given SHA-256 checksum is in docspell. The id is a source id configured by a collective.
The result shows all items that contains a file with the given checksum.
id required | string An identifier |
checksum required | string A SHA-256 checksum |
{- "exists": true,
- "items": [
- {
- "id": "string",
- "name": "string",
- "direction": "string",
- "state": "string",
- "created": 0,
- "itemDate": 0
}
]
}
Upload a file to docspell for processing. The id is a source id configured by a collective. Files are submitted for processing which eventually resuts in an item in the inbox of the corresponding collective.
The request must be a multipart/form-data
request, where the
first part has name meta
, is optional and may contain upload
metadata as JSON. Checkout the structure ItemUploadMeta
at
the end if it is not shown here. Other parts specify the
files. Multiple files can be specified, but at least on is
required.
The upload meta data can be used to tell, whether multiple files are one item, or if each file should become a single item. By default, each file will be a one item.
id required | string An identifier |
object (ItemUploadMeta) Meta information for an item upload. The user can specify some structured information with a binary file. Additional metadata is not required. However, if there is some specified, you have to specifiy whether the corresponding files should become one single item or if an item is created for each file. | |
file | Array of strings <binary> [ items <binary > ] |
{- "success": true,
- "message": "string"
}
Upload a file to docspell for processing. The id is a source
id configured by a collective. Files are submitted for
processing which eventually resuts in an item in the inbox of
the corresponding collective. This endpoint associates the
files to an existing item identified by its itemId
.
The request must be a multipart/form-data
request, where the
first part has name meta
, is optional and may contain upload
metadata as JSON. Checkout the structure ItemUploadMeta
at
the end if it is not shown here. Other parts specify the
files. Multiple files can be specified, but at least on is
required.
Upload meta data is ignored.
id required | string An identifier |
itemId required | string An identifier for an item |
object (ItemUploadMeta) Meta information for an item upload. The user can specify some structured information with a binary file. Additional metadata is not required. However, if there is some specified, you have to specifiy whether the corresponding files should become one single item or if an item is created for each file. | |
file | Array of strings <binary> [ items <binary > ] |
{- "success": true,
- "message": "string"
}
Checks if a file with the given SHA-256 checksum is in docspell.
The result shows all items that contains a file with the given checksum.
checksum required | string A SHA-256 checksum |
{- "exists": true,
- "items": [
- {
- "id": "string",
- "name": "string",
- "direction": "string",
- "state": "string",
- "created": 0,
- "itemDate": 0
}
]
}
Upload files to docspell for processing. This route is meant for authenticated users that upload files to their account.
Everything else is the same as with the
/open/upload/item/{id}
endpoint.
The request must be a "multipart/form-data" request, where the first part is optional and may contain upload metadata as JSON. Other parts specify the files. Multiple files can be specified, but at least one is required.
The upload meta data can be used to tell, whether multiple files are one item, or if each file should become a single item. By default, each file will be a one item.
object (ItemUploadMeta) Meta information for an item upload. The user can specify some structured information with a binary file. Additional metadata is not required. However, if there is some specified, you have to specifiy whether the corresponding files should become one single item or if an item is created for each file. | |
file | Array of strings <binary> [ items <binary > ] |
{- "success": true,
- "message": "string"
}
Upload files to docspell for processing. This route is meant
for authenticated users that upload files to their account.
This endpoint will associate the files to an existing item
identified by its itemId
.
Everything else is the same as with the
/open/upload/item/{itemId}/{id}
endpoint.
The request must be a "multipart/form-data" request, where the first part is optional and may contain upload metadata as JSON. Other parts specify the files. Multiple files can be specified, but at least on is required.
The upload meta data is ignored, since the item already exists.
itemId required | string An identifier for an item |
object (ItemUploadMeta) Meta information for an item upload. The user can specify some structured information with a binary file. Additional metadata is not required. However, if there is some specified, you have to specifiy whether the corresponding files should become one single item or if an item is created for each file. | |
file | Array of strings <binary> [ items <binary > ] |
{- "success": true,
- "message": "string"
}
Upload a file to docspell for processing. The id is a collective name. This route only exists, if enabled by an admin in the configuration. The route might be protected by different methods, all configurable via the configuration:
Files are submitted for processing to the specified collective, which eventually resuts in an item in their inbox.
The request must be a multipart/form-data
request, where the
first part has name meta
, is optional and may contain upload
metadata as JSON. Checkout the structure ItemUploadMeta
at
the end if it is not shown here. Other parts specify the
files. Multiple files can be specified, but at least on is
required.
id required | string An identifier |
object (ItemUploadMeta) Meta information for an item upload. The user can specify some structured information with a binary file. Additional metadata is not required. However, if there is some specified, you have to specifiy whether the corresponding files should become one single item or if an item is created for each file. | |
file | Array of strings <binary> [ items <binary > ] |
{- "success": true,
- "message": "string"
}
Checks if a file with the given SHA-256 checksum is in
docspell. The id
is the collective name. This route only
exists, if it is enabled in the configuration file.
The result shows all items that contains a file with the given checksum.
id required | string An identifier |
checksum required | string A SHA-256 checksum |
{- "exists": true,
- "items": [
- {
- "id": "string",
- "name": "string",
- "direction": "string",
- "state": "string",
- "created": 0,
- "itemDate": 0
}
]
}
Clears the full-text index and inserts all data from the database. This migh take a while to complete. The response returns immediately. A task is submitted that will be executed by a job executor. Note that this affects all data of all collectives.
This is an admin route, so you need to provide the secret from
the config file as header Docspell-Admin-Secret
.
{- "success": true,
- "message": "string"
}
Clears the full-text index for all data belonging to the current collective and inserts the data from the database. The response is immediately returned and a task is submitted that will be executed by a job executor.
{- "success": true,
- "message": "string"
}
Clears the full-text index and inserts all data from the database. This migh take a while to complete. The response returns immediately. A task is submitted that will be executed by a job executor. Note that this affects all data of all collectives.
This is an admin route, so you need to provide the secret from
the config file as header Docspell-Admin-Secret
.
{- "success": true,
- "message": "string"
}
Resets a user password to some random string which is returned
as the result. This is an admin route, so you need to specify
the secret from the config file via a http header
Docspell-Admin-Secret
.
account required | string <accountid> |
{- "account": "string"
}
{- "success": true,
- "newPassword": "pa$$word",
- "message": "string"
}
Removes the OTP setup for the given user account. The account can login afterwards with a correct password. A second factor is not required. Two factor auth can be setup again for this account.
account required | string <accountid> |
{- "account": "string"
}
{- "success": true,
- "message": "string"
}
Submits a task that re-generates preview images of all attachments. Each existing preview image will be replaced.
This can be used after changing the preview
settings.
If only preview images of selected attachments should be
regenerated, see the /sec/attachment/{id}/preview
endpoint.
This is an admin route, you need to specify the secret from
the config file via a http header Docspell-Admin-Secret
.
{- "success": true,
- "message": "string"
}
Docspell converts PDF files into PDF/A files by default, if the OcrMyPDF tool is configured.
This endpoint can be used to submit a task that runs this on all files that have not been converted yet in this way.
This conversion tool has been added in version 0.9.0 and so older files can be "migrated" this way, or maybe after enabling the tool (it is optional).
The task finds all files collective and submits a task for each file to convert. These tasks are submitted with a low priority so that normal processing can still proceed.
The body of the request should be empty.
{- "success": true,
- "message": "string"
}
Submits a task that will copy all files of the application (from the default file repository) into another file repository as specified in the request. The request may define ids of file repository configurations that must be present in the config file. An empty list means to copy to all enabled file repositories from te default file repository.
targetRepositories required | Array of strings <ident> [ items <ident > ] |
{- "targetRepositories": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Submits a task that goes through the files and compares the stored checksum (at the time of inserting) against a newly calculated one.
collective | string <ident> |
{- "collective": "string"
}
{- "success": true,
- "message": "string"
}
This endpoint calculates the number of files and (uncompressed) size of the zip file that would be created with this request.
It also checks against configured thresholds and tells whether the server allows to ask for a download using this query.
query required | string <itemquery> |
fileType required | string <downloadalltype> Enum: "converted" "original" |
{- "query": "string",
- "fileType": "converted"
}
{- "id": "string",
- "fileCount": 0,
- "uncompressedSize": 0,
- "state": "forbidden"
}
A job is submitted to create a ZIP file containing all the files that are included in the given query.
Once the job is done, the returned ID can be used to download the zip file.
query required | string <itemquery> |
fileType required | string <downloadalltype> Enum: "converted" "original" |
{- "query": "string",
- "fileType": "converted"
}
{- "id": "string",
- "fileCount": 0,
- "uncompressedSize": 0,
- "state": "forbidden"
}
If a job is running (created via the submit
endpoint) to
prepare a zip file for download, it is cancelled. The id is
the download id as defined in the prefetch
or submit
responses.
id required | string An identifier |
{- "success": true,
- "message": "string"
}
Allows to check whether an integration endpoint is enabled for
a collective. The collective is given by the id
parameter.
It returns not found (404) if the endpoint is disabled (either
globally by an admin or by a specific collective). It returns
403 (or 401 if http-basic is enabled) if authorization fails.
The response body is empty (an empty json object).
id required | string An identifier |
{ }
Upload a file to docspell for processing. The id is a collective name. This route only exists, if enabled by an admin in the configuration. The route might be protected by different methods, all configurable via the configuration:
Files are submitted for processing to the specified collective, which eventually resuts in an item in their inbox.
The request must be a multipart/form-data
request, where the
first part has name meta
, is optional and may contain upload
metadata as JSON. Checkout the structure ItemUploadMeta
at
the end if it is not shown here. Other parts specify the
files. Multiple files can be specified, but at least on is
required.
id required | string An identifier |
object (ItemUploadMeta) Meta information for an item upload. The user can specify some structured information with a binary file. Additional metadata is not required. However, if there is some specified, you have to specifiy whether the corresponding files should become one single item or if an item is created for each file. | |
file | Array of strings <binary> [ items <binary > ] |
{- "success": true,
- "message": "string"
}
Checks if a file with the given SHA-256 checksum is in
docspell. The id
is the collective name. This route only
exists, if it is enabled in the configuration file.
The result shows all items that contains a file with the given checksum.
id required | string An identifier |
checksum required | string A SHA-256 checksum |
{- "exists": true,
- "items": [
- {
- "id": "string",
- "name": "string",
- "direction": "string",
- "state": "string",
- "created": 0,
- "itemDate": 0
}
]
}
Create a new account by creating a collective and user.
collectiveName required | string <ident> |
login required | string <ident> |
password required | string <password> |
invite | string <ident> |
{- "collectiveName": "string",
- "login": "string",
- "password": "pa$$word",
- "invite": "string"
}
{- "success": true,
- "message": "string"
}
When signup mode is set to "invite", docspell requires an invitation key when signing up. These keys can be created here. Creating such keys requires an admin role, and since docspell has no such concept, a password from the configuration file is required for this action.
password required | string <password> |
{- "password": "pa$$word"
}
{- "success": true,
- "message": "string",
- "key": "string"
}
Return a list of all configured tags. The sort
query
parameter is optional and can specify how the list is sorted.
Possible values are: name
, -name
, category
, -category
.
q | string A query string. |
sort | string How to sort the returned list |
{- "count": 0,
- "items": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
]
}
Create a new tag. If a tag with this name already exists, an error is returned. The id in the input structure is ignored.
id required | string <ident> |
name required | string |
category | string |
created required | integer <date-time> |
{- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
{- "success": true,
- "message": "string"
}
Changes an existing tag. The tag is looked up by its id and all properties are changed as given.
id required | string <ident> |
name required | string |
category | string |
created required | integer <date-time> |
{- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
{- "success": true,
- "message": "string"
}
Return a list of all organizations. Only name and id are
returned. If full
is specified, the list contains all
organization data. The sort
parameter can be either name
or -name
to specify the order.
full | boolean Whether to list full data or just name and id. |
q | string A query string. |
sort | string How to sort the returned list |
{- "items": [
- {
- "id": "string",
- "name": "string"
}
]
}
Create a new organizaion. If an organization with this name already exists, an error is returned. The id attribute of the request structure is ignored.
id required | string <ident> |
name required | string |
required | object (Address) Postal address information. |
required | Array of objects (Contact) |
notes | string |
created required | integer <date-time> DateTime |
shortName | string |
use required | string <orguse> Enum: "correspondent" "disabled" |
{- "id": "string",
- "name": "string",
- "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "created": 0,
- "shortName": "string",
- "use": "correspondent"
}
{- "success": true,
- "message": "string"
}
Changes an existing organization. The organization is looked up by its id and all properties are changed as given.
id required | string <ident> |
name required | string |
required | object (Address) Postal address information. |
required | Array of objects (Contact) |
notes | string |
created required | integer <date-time> DateTime |
shortName | string |
use required | string <orguse> Enum: "correspondent" "disabled" |
{- "id": "string",
- "name": "string",
- "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "created": 0,
- "shortName": "string",
- "use": "correspondent"
}
{- "success": true,
- "message": "string"
}
Return details about an organization.
id required | string An identifier |
{- "id": "string",
- "name": "string",
- "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "created": 0,
- "shortName": "string",
- "use": "correspondent"
}
Return a list of all persons. Only name and id are returned
unless the full
parameter is specified. The sort
parameter
can be used to control the order of the result. Use one of:
name
, -name
, org
, -org
. Note that order by org
only
works when retrieving the full list.
full | boolean Whether to list full data or just name and id. |
q | string A query string. |
sort | string How to sort the returned list |
{- "items": [
- {
- "id": "string",
- "name": "string"
}
]
}
Create a new organizaion. If an person with this name already exists, an error is returned. The id attribute of the request structure is ignored.
id required | string <ident> |
name required | string |
object (IdName) The identifier and a human readable name of some entity. | |
required | object (Address) Postal address information. |
required | Array of objects (Contact) |
notes | string |
use required | string <personuse> Enum: "concerning" "correspondent" "both" "disabled" Whether this person should be used to create suggestions for the "concerning person", "correspondent" or both. |
created required | integer <date-time> DateTime |
{- "id": "string",
- "name": "string",
- "organization": {
- "id": "string",
- "name": "string"
}, - "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "use": "concerning",
- "created": 0
}
{- "success": true,
- "message": "string"
}
Changes an existing person. The person is looked up by its id and all properties are changed as given.
id required | string <ident> |
name required | string |
object (IdName) The identifier and a human readable name of some entity. | |
required | object (Address) Postal address information. |
required | Array of objects (Contact) |
notes | string |
use required | string <personuse> Enum: "concerning" "correspondent" "both" "disabled" Whether this person should be used to create suggestions for the "concerning person", "correspondent" or both. |
created required | integer <date-time> DateTime |
{- "id": "string",
- "name": "string",
- "organization": {
- "id": "string",
- "name": "string"
}, - "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "use": "concerning",
- "created": 0
}
{- "success": true,
- "message": "string"
}
Return details about an person.
id required | string An identifier |
{- "id": "string",
- "name": "string",
- "organization": {
- "id": "string",
- "name": "string"
}, - "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "use": "concerning",
- "created": 0
}
Return a list of all configured equipments. The sort query
parameter is optional and can be one of name
or -name
to
sort the list of equipments.
q | string A query string. |
sort | string How to sort the returned list |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "created": 0,
- "notes": "string",
- "use": "concerning"
}
]
}
Create a new equipment. If a equipment with this name already exists, an error is returned.
id required | string <ident> |
name required | string |
created required | integer <date-time> DateTime |
notes | string |
use required | string <equipmentuse> Enum: "concerning" "disabled" |
{- "id": "string",
- "name": "string",
- "created": 0,
- "notes": "string",
- "use": "concerning"
}
{- "success": true,
- "message": "string"
}
Changes an existing equipment. The equipment is looked up by its id and all properties are changed as given.
id required | string <ident> |
name required | string |
created required | integer <date-time> DateTime |
notes | string |
use required | string <equipmentuse> Enum: "concerning" "disabled" |
{- "id": "string",
- "name": "string",
- "created": 0,
- "notes": "string",
- "use": "concerning"
}
{- "success": true,
- "message": "string"
}
Return a list of folders for the current collective.
All folders are returned, including those not owned by the current user.
It is possible to restrict the results by a substring match of the name.
q | string A query string. |
full | boolean Whether to get owning folders |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "owner": {
- "id": "string",
- "name": "string"
}, - "created": 0,
- "isMember": true,
- "memberCount": 0
}
]
}
Create a new folder owned by the current user. If a folder with the same name already exists, an error is thrown.
name required | string |
{- "name": "string"
}
{- "success": true,
- "message": "string",
- "id": "string"
}
Return details about a folder.
id required | string An identifier |
{- "id": "string",
- "name": "string",
- "owner": {
- "id": "string",
- "name": "string"
}, - "created": 0,
- "isMember": true,
- "memberCount": 0,
- "members": [
- {
- "id": "string",
- "name": "string"
}
]
}
Changes the name of a folder. The new name must not exists.
id required | string An identifier |
name required | string |
{- "name": "string"
}
{- "success": true,
- "message": "string"
}
Return the settings of a collective.
{- "language": "string",
- "integrationEnabled": true,
- "classifier": {
- "itemCount": 0,
- "schedule": "string",
- "categoryList": [
- "string"
], - "listType": "blacklist"
}, - "emptyTrash": {
- "schedule": "string",
- "minAge": 0
}, - "passwords": [
- "pa$$word"
]
}
Updates settings for a collective.
language required | string <language> |
integrationEnabled required | boolean Whether the collective has the integration endpoint enabled. |
required | object (ClassifierSetting) Settings for learning a document classifier. |
required | object (EmptyTrashSetting) Settings for clearing the trash of items. |
passwords required | Array of strings <password> [ items <password > ] |
{- "language": "string",
- "integrationEnabled": true,
- "classifier": {
- "itemCount": 0,
- "schedule": "string",
- "categoryList": [
- "string"
], - "listType": "blacklist"
}, - "emptyTrash": {
- "schedule": "string",
- "minAge": 0
}, - "passwords": [
- "pa$$word"
]
}
{- "id": "string",
- "state": "string",
- "created": 0
}
Returns some information about how many items there are, how much folder they occupy etc.
{- "incomingCount": 0,
- "outgoingCount": 0,
- "deletedCount": 0,
- "itemSize": 0,
- "tagCloud": {
- "items": [
- {
- "tag": {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}, - "count": 0
}
]
}
}
Return a list of all contacts available from the collectives address book.
q | string A query string. |
kind | string One of the available contact kinds. |
{- "items": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
]
}
If the collective has classification enabled, this will submit the task for learning a classifier from existing data. This task is usally run periodically as determined by the collective settings.
The request is empty, settings are used from the collective.
{- "success": true,
- "message": "string"
}
Submits a task to remove all items from the database that have been "soft-deleted". This task is also run periodically and can be triggered here to be immediatly submitted.
The request is empty, settings are used from the collective.
schedule required | string <calevent> |
minAge required | integer <duration> |
{- "schedule": "string",
- "minAge": 0
}
{- "success": true,
- "message": "string"
}
Return a list of all users of the collective.
{- "items": [
- {
- "id": "string",
- "login": "string",
- "state": "active",
- "source": "local",
- "password": "pa$$word",
- "email": "string",
- "lastLogin": 0,
- "loginCount": 0,
- "created": 0
}
]
}
Create a new collective user. If a user with this name already exists, an error is returned.
id required | string <ident> |
login required | string <ident> |
state required | string <userstate> Enum: "active" "disabled" |
source required | string <accountsource> Enum: "local" "openid" |
password | string <password> |
string | |
lastLogin | integer <date-time> DateTime |
loginCount required | integer <int32> |
created required | integer <date-time> DateTime |
{- "id": "string",
- "login": "string",
- "state": "active",
- "source": "local",
- "password": "pa$$word",
- "email": "string",
- "lastLogin": 0,
- "loginCount": 0,
- "created": 0
}
{- "success": true,
- "message": "string"
}
Changes an existing user. The user is looked up by its id and all properties are changed as given.
id required | string <ident> |
login required | string <ident> |
state required | string <userstate> Enum: "active" "disabled" |
source required | string <accountsource> Enum: "local" "openid" |
password | string <password> |
string | |
lastLogin | integer <date-time> DateTime |
loginCount required | integer <int32> |
created required | integer <date-time> DateTime |
{- "id": "string",
- "login": "string",
- "state": "active",
- "source": "local",
- "password": "pa$$word",
- "email": "string",
- "lastLogin": 0,
- "loginCount": 0,
- "created": 0
}
{- "success": true,
- "message": "string"
}
Gets some data that would be deleted, when the user with the
given username is deleted. The username
must be part of this
collective.
username required | string The username of a user of this collective |
{- "folders": [
- "string"
], - "sentMails": 0,
- "shares": 0
}
Allows users to change their password.
currentPassword required | string <password> |
newPassword required | string <password> |
{- "currentPassword": "pa$$word",
- "newPassword": "pa$$word"
}
{- "success": true,
- "message": "string"
}
Requests to enable two factor authentication for this user. A secret key is generated and returned. The client is expected to insert it into some OTP application. Currently, only time based OTP is supported.
The request body is empty.
{- "secret": "string",
- "authType": "totp",
- "issuer": "string"
}
Confirms using two factor authentication by sending a one time password. If the password is correct, this enables two factor authentication for the current user.
If there exists no unapproved otp request or the password is not correct, an error is returned. If 2fa is already enabled for this account, success is returned.
otp required | string <password> |
{- "otp": "pa$$word"
}
{- "success": true,
- "message": "string"
}
Disables two factor authentication for the current user. If the user has no two factor authentication enabled, an error is returned.
It requires to specify a valid otp.
After this completes successfully, two factor auth can be enabled again by initializing it anew.
otp required | string <password> |
{- "otp": "pa$$word"
}
{- "success": true,
- "message": "string"
}
Resets a user password to some random string which is returned
as the result. This is an admin route, so you need to specify
the secret from the config file via a http header
Docspell-Admin-Secret
.
account required | string <accountid> |
{- "account": "string"
}
{- "success": true,
- "newPassword": "pa$$word",
- "message": "string"
}
Removes the OTP setup for the given user account. The account can login afterwards with a correct password. A second factor is not required. Two factor auth can be setup again for this account.
account required | string <accountid> |
{- "account": "string"
}
{- "success": true,
- "message": "string"
}
Returns a list of notification channels for the current user.
{- "id": "string",
- "name": "string",
- "channelType": "string",
- "connection": "string",
- "recipients": [
- "string"
]
}
Creates a new channel that can be used for notification.
id required | string <ident> |
name | string |
channelType required | string <channeltype> |
connection required | string <ident> |
recipients required | Array of strings |
{- "id": "string",
- "name": "string",
- "channelType": "string",
- "connection": "string",
- "recipients": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Change details about a notification channel.
id required | string <ident> |
name | string |
channelType required | string <channeltype> |
connection required | string <ident> |
recipients required | Array of strings |
{- "id": "string",
- "name": "string",
- "channelType": "string",
- "connection": "string",
- "recipients": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Returns a list of all defined hooks for the current user.
[- {
- "id": "string",
- "enabled": true,
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "allEvents": true,
- "eventFilter": "string",
- "events": [
- "tagsAdded"
]
}
]
Creates a new notification hook, that issues a request via the given channel description.
id required | string <ident> |
enabled required | boolean |
Array of objects (NotificationChannelRef) | |
allEvents required | boolean |
eventFilter | string <jsonminiq> A filter expression that is applied to the event to be able to ignore a subset of them. See its documentation. |
events required | Array of strings <eventtype> [ items <eventtype > ] Items Enum: "tagsAdded" "tagsSet" |
{- "id": "string",
- "enabled": true,
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "allEvents": true,
- "eventFilter": "string",
- "events": [
- "tagsAdded"
]
}
{- "success": true,
- "message": "string"
}
Updates the hook details.
id required | string <ident> |
enabled required | boolean |
Array of objects (NotificationChannelRef) | |
allEvents required | boolean |
eventFilter | string <jsonminiq> A filter expression that is applied to the event to be able to ignore a subset of them. See its documentation. |
events required | Array of strings <eventtype> [ items <eventtype > ] Items Enum: "tagsAdded" "tagsSet" |
{- "id": "string",
- "enabled": true,
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "allEvents": true,
- "eventFilter": "string",
- "events": [
- "tagsAdded"
]
}
{- "success": true,
- "message": "string"
}
Tests the webhook specified in the body by applying it to a sample event.
id required | string <ident> |
enabled required | boolean |
Array of objects (NotificationChannelRef) | |
allEvents required | boolean |
eventFilter | string <jsonminiq> A filter expression that is applied to the event to be able to ignore a subset of them. See its documentation. |
events required | Array of strings <eventtype> [ items <eventtype > ] Items Enum: "tagsAdded" "tagsSet" |
{- "id": "string",
- "enabled": true,
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "allEvents": true,
- "eventFilter": "string",
- "events": [
- "tagsAdded"
]
}
{- "success": true,
- "messages": [
- "string"
]
}
Parses the given value into a JSON mini query.
value required | string |
{- "value": "string"
}
{- "success": true,
- "message": "string"
}
Given an event type, generate some random sample of what would be send on such an event.
eventType required | string <eventtype> |
{- "eventType": "string"
}
null
Returns all query bookmarks of the current user.
Bookmarks can be "global", where they belong to the whole collective or personal, so they are only for the user. This returns both.
[- {
- "id": "string",
- "name": "string",
- "label": "string",
- "query": "string",
- "personal": true,
- "created": 0
}
]
Creates a new query bookmark.
A bookmark must have a unique name (within both collective and personal scope). If a name already exists, a failure is returned - use PUT instead for changing existing bookmarks.
id required | string <ident> |
name required | string |
label | string |
query required | string <itemquery> |
personal required | boolean |
created required | integer <date-time> |
{- "id": "string",
- "name": "string",
- "label": "string",
- "query": "string",
- "personal": true,
- "created": 0
}
{- "success": true,
- "message": "string"
}
Changes an existing query bookmark.
A bookmark must have a unique name within the collective (considering collective and personal scope). The bookmark is identified by its id, which must exist.
id required | string <ident> |
name required | string |
label | string |
query required | string <itemquery> |
personal required | boolean |
created required | integer <date-time> |
{- "id": "string",
- "name": "string",
- "label": "string",
- "query": "string",
- "personal": true,
- "created": 0
}
{- "success": true,
- "message": "string"
}
Returns the settings for the current user by merging the client settings for the collective and the user's own client settings into one json structure.
Null, Array, Boolean, String and Number are treated as values, and values from the users settings completely replace values from the collective's settings.
The clientId
is an identifier to a client application. It
returns a JSON structure. The server doesn't care about the
actual data, since it is meant to be interpreted by clients.
clientId required | string some identifier for a client application |
null
Returns the settings for the current user. The clientId
is
an identifier to a client application. It returns a JSON
structure. The server doesn't care about the actual data,
since it is meant to be interpreted by clients.
If there is nothing stored for the given clientId
an empty
JSON object ({}
) is returned!
clientId required | string some identifier for a client application |
null
Updates (replaces or creates) the current user's settings with
the given data. The clientId
is an identifier to a client
application. The request body is expected to be JSON, the
structure is not important to the server.
The data is stored for the current user and given clientId
.
The data is only saved without being checked in any way (besides being valid JSON). It is returned "as is" to the client in the corresponding GET endpoint.
clientId required | string some identifier for a client application |
null
{- "success": true,
- "message": "string"
}
Removes all stored user settings for the client identified by
clientId
.
clientId required | string some identifier for a client application |
{- "success": true,
- "message": "string"
}
Returns the settings for the current collective. The
clientId
is an identifier to a client application. It
returns a JSON structure. The server doesn't care about the
actual data, since it is meant to be interpreted by clients.
If there is nothing stored for the given clientId
an empty
JSON object ({}
) is returned!
clientId required | string some identifier for a client application |
null
Updates (replaces or creates) the current collective's
settings with the given data. The clientId
is an identifier
to a client application. The request body is expected to be
JSON, the structure is not important to the server.
The data is stored for the current user and given clientId
.
The data is only saved without being checked in any way (besides being valid JSON). It is returned "as is" to the client in the corresponding GET endpoint.
clientId required | string some identifier for a client application |
null
{- "success": true,
- "message": "string"
}
Removes all stored client settings of id clientId
for
collective.
clientId required | string some identifier for a client application |
{- "success": true,
- "message": "string"
}
Submits a task that re-generates preview images of all attachments. Each existing preview image will be replaced.
This can be used after changing the preview
settings.
If only preview images of selected attachments should be
regenerated, see the /sec/attachment/{id}/preview
endpoint.
This is an admin route, you need to specify the secret from
the config file via a http header Docspell-Admin-Secret
.
{- "success": true,
- "message": "string"
}
Docspell converts PDF files into PDF/A files by default, if the OcrMyPDF tool is configured.
This endpoint can be used to submit a task that runs this on all files that have not been converted yet in this way.
This conversion tool has been added in version 0.9.0 and so older files can be "migrated" this way, or maybe after enabling the tool (it is optional).
The task finds all files collective and submits a task for each file to convert. These tasks are submitted with a low priority so that normal processing can still proceed.
The body of the request should be empty.
{- "success": true,
- "message": "string"
}
Checks if an image file showing a preview of the item is available. If not available, a 404 is returned. The preview is an image of the first page of the first attachment.
id required | string An identifier |
Gets a image file showing a preview of the item. Usually it is
a small image of the first page of the first attachment. If
not available, a 404 is returned. However, if the query
parameter withFallback
is true
, a fallback preview image
is returned. You can also use the HEAD
method to check for
existence.
id required | string An identifier |
withFallback | boolean Whether to provide a fallback or not. |
Deletes a single attachment with all its related data like file, the original file, extracted text, results from analysis etc.
If the attachment is part of an archive, the archive is only deleted, if it is the last entry left. Archives are otherwise not deleted, if there are remaining attachments available.
id required | string An identifier |
{- "success": true,
- "message": "string"
}
Get information about the original binary file of the attachment with the given id.
If the attachment is a converted PDF file, this route gets the original file as it was uploaded.
id required | string An identifier |
Gets a image file showing a preview of the attachment. Usually
it is a small image of the first page of the document.If not
available, a 404 is returned. However, if the query parameter
withFallback
is true
, a fallback preview image is
returned. You can also use the HEAD
method to check for
existence.
id required | string An identifier |
withFallback | boolean Whether to provide a fallback or not. |
Submits a task that generates a preview image for this attachment. The existing preview will be replaced.
id required | string An identifier |
{- "success": true,
- "message": "string"
}
Get meta data for this attachment. The meta data has been extracted from the contents.
id required | string An identifier |
{- "content": "string",
- "labels": [
- {
- "labelType": "string",
- "label": "string",
- "beginPos": 0,
- "endPos": 0
}
], - "proposals": {
- "corrOrg": [
- {
- "id": "string",
- "name": "string"
}
], - "corrPerson": [
- {
- "id": "string",
- "name": "string"
}
], - "concPerson": [
- {
- "id": "string",
- "name": "string"
}
], - "concEquipment": [
- {
- "id": "string",
- "name": "string"
}
], - "itemDate": [
- 0
], - "dueDate": [
- 0
]
}
}
This provides a preview of the attachment rendered in a browser.
It currently uses a third-party javascript library (viewerjs) to display the preview. This works by redirecting to the viewerjs url with the attachment url as parameter. Note that the resulting url that is redirected to is not stable. It may change from version to version. This route, however, is meant to provide a stable url for the preview.
id required | string An identifier |
Change the name of the attachment with the given id. The attachment must be part of an item that belongs to the collective of the current user.
id required | string An identifier |
text | string |
{- "text": "string"
}
{- "success": true,
- "message": "string"
}
Changes the extracted text of the attachment with the given id. The attachment must be part of an item that belongs to the collective of the current user. This can be used to correct poor ocr-ed files.
id required | string An identifier |
text | string |
{- "text": "string"
}
{- "success": true,
- "message": "string"
}
Return a list of all configured sources.
{- "items": [
- {
- "source": {
- "id": "string",
- "abbrev": "string",
- "description": "string",
- "counter": 0,
- "enabled": true,
- "priority": "high",
- "folder": "string",
- "fileFilter": "string",
- "language": "string",
- "created": 0,
- "attachmentsOnly": true
}, - "tags": {
- "count": 0,
- "items": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
]
}
}
]
}
Create a new source. If a source with this name already exists, an error is returned.
required | object (Source) Data about a Source. A source defines the endpoint where docspell receives files. |
tags required | Array of strings |
{- "source": {
- "id": "string",
- "abbrev": "string",
- "description": "string",
- "counter": 0,
- "enabled": true,
- "priority": "high",
- "folder": "string",
- "fileFilter": "string",
- "language": "string",
- "created": 0,
- "attachmentsOnly": true
}, - "tags": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Changes an existing source. The source is looked up by its id and all properties are changed as given.
required | object (Source) Data about a Source. A source defines the endpoint where docspell receives files. |
tags required | Array of strings |
{- "source": {
- "id": "string",
- "abbrev": "string",
- "description": "string",
- "counter": 0,
- "enabled": true,
- "priority": "high",
- "folder": "string",
- "fileFilter": "string",
- "language": "string",
- "created": 0,
- "attachmentsOnly": true
}, - "tags": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
List all available e-mail settings for the current user. E-Mail settings specify smtp connections that can be used to sent e-mails.
Multiple e-mail settings can be specified, they are
distinguished by their name
. The query q
parameter does a
simple substring search in the connection name.
q | string A query string. |
{- "items": [
- {
- "name": "string",
- "smtpHost": "string",
- "smtpPort": 0,
- "smtpUser": "string",
- "smtpPassword": "pa$$word",
- "from": "string",
- "replyTo": "string",
- "sslType": "string",
- "ignoreCertificates": true
}
]
}
Create new e-mail settings.
name required | string <ident> |
smtpHost required | string |
smtpPort | integer <int32> |
smtpUser | string |
smtpPassword | string <password> |
from required | string |
replyTo | string |
sslType required | string |
ignoreCertificates required | boolean |
{- "name": "string",
- "smtpHost": "string",
- "smtpPort": 0,
- "smtpUser": "string",
- "smtpPassword": "pa$$word",
- "from": "string",
- "replyTo": "string",
- "sslType": "string",
- "ignoreCertificates": true
}
{- "success": true,
- "message": "string"
}
Return the stored e-mail settings for the given connection name.
name required | string An e-mail connection name |
{- "name": "string",
- "smtpHost": "string",
- "smtpPort": 0,
- "smtpUser": "string",
- "smtpPassword": "pa$$word",
- "from": "string",
- "replyTo": "string",
- "sslType": "string",
- "ignoreCertificates": true
}
Changes all settings for the connection with the given name
.
name required | string An e-mail connection name |
name required | string <ident> |
smtpHost required | string |
smtpPort | integer <int32> |
smtpUser | string |
smtpPassword | string <password> |
from required | string |
replyTo | string |
sslType required | string |
ignoreCertificates required | boolean |
{- "name": "string",
- "smtpHost": "string",
- "smtpPort": 0,
- "smtpUser": "string",
- "smtpPassword": "pa$$word",
- "from": "string",
- "replyTo": "string",
- "sslType": "string",
- "ignoreCertificates": true
}
{- "success": true,
- "message": "string"
}
List all available e-mail settings for the current user. E-Mail settings specify imap connections that can be used to retrieve e-mails.
Multiple e-mail settings can be specified, they are
distinguished by their name
. The query q
parameter does a
simple substring search in the connection name.
q | string A query string. |
{- "items": [
- {
- "name": "string",
- "imapHost": "string",
- "imapPort": 0,
- "imapUser": "string",
- "imapPassword": "pa$$word",
- "sslType": "string",
- "ignoreCertificates": true,
- "useOAuth": true
}
]
}
Create new e-mail settings.
name required | string <ident> |
imapHost required | string |
imapPort | integer <int32> |
imapUser | string |
imapPassword | string <password> |
sslType required | string |
ignoreCertificates required | boolean |
useOAuth required | boolean Use the password as an OAuth2 access token with the authentication scheme XOAUTH2. |
{- "name": "string",
- "imapHost": "string",
- "imapPort": 0,
- "imapUser": "string",
- "imapPassword": "pa$$word",
- "sslType": "string",
- "ignoreCertificates": true,
- "useOAuth": true
}
{- "success": true,
- "message": "string"
}
Return the stored e-mail settings for the given connection name.
name required | string An e-mail connection name |
{- "name": "string",
- "imapHost": "string",
- "imapPort": 0,
- "imapUser": "string",
- "imapPassword": "pa$$word",
- "sslType": "string",
- "ignoreCertificates": true,
- "useOAuth": true
}
Changes all settings for the connection with the given name
.
name required | string An e-mail connection name |
name required | string <ident> |
imapHost required | string |
imapPort | integer <int32> |
imapUser | string |
imapPassword | string <password> |
sslType required | string |
ignoreCertificates required | boolean |
useOAuth required | boolean Use the password as an OAuth2 access token with the authentication scheme XOAUTH2. |
{- "name": "string",
- "imapHost": "string",
- "imapPort": 0,
- "imapUser": "string",
- "imapPassword": "pa$$word",
- "sslType": "string",
- "ignoreCertificates": true,
- "useOAuth": true
}
{- "success": true,
- "message": "string"
}
Sends an email as specified in the body of the request.
The item's attachment are added to the mail if requested.
name required | string An e-mail connection name |
id required | string An identifier |
recipients required | Array of strings |
cc required | Array of strings |
bcc required | Array of strings |
subject required | string |
body required | string |
addAllAttachments required | boolean |
attachmentIds required | Array of strings <ident> [ items <ident > ] |
{- "recipients": [
- "string"
], - "cc": [
- "string"
], - "bcc": [
- "string"
], - "subject": "string",
- "body": "string",
- "addAllAttachments": true,
- "attachmentIds": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Return all mails that have been sent related to the item with
id id
.
id required | string An identifier |
{- "items": [
- {
- "id": "string",
- "sender": "string",
- "connection": "string",
- "recipients": [
- "string"
], - "subject": "string",
- "body": "string",
- "created": 0
}
]
}
Return one mail with the given id.
mailId required | string The id of a sent mail. |
{- "id": "string",
- "sender": "string",
- "connection": "string",
- "recipients": [
- "string"
], - "subject": "string",
- "body": "string",
- "created": 0
}
Search for items given a search query. The results are grouped
by month and are sorted by item date (newest first). Tags and
attachments are not resolved. The results will always
contain an empty list for item tags and attachments. Set
withDetails
to true
for retrieving all tags and a list of
attachments of an item.
q | string A query string. |
limit | integer <int32> A limit for a search query |
offset | integer <int32> A offset into the results for a search query |
withDetails | boolean Whether to return details to each item. |
searchMode | string <searchmode> Specify whether the search query should apply to soft-deleted items or not. |
{- "groups": [
- {
- "name": "string",
- "items": [
- {
- "id": "string",
- "name": "string",
- "state": "string",
- "date": 0,
- "dueDate": 0,
- "source": "string",
- "direction": "incoming",
- "corrOrg": {
- "id": "string",
- "name": "string"
}, - "corrPerson": {
- "id": "string",
- "name": "string"
}, - "concPerson": {
- "id": "string",
- "name": "string"
}, - "concEquipment": {
- "id": "string",
- "name": "string"
}, - "folder": {
- "id": "string",
- "name": "string"
}, - "attachments": [
- {
- "id": "string",
- "position": 0,
- "name": "string",
- "pageCount": 0
}
], - "tags": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "customfields": [
- {
- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "value": "string"
}
], - "relatedItems": [
- "string"
], - "notes": "string",
- "highlighting": [
- {
- "name": "string",
- "lines": [
- "string"
]
}
]
}
]
}
], - "limit": 0,
- "offset": 0,
- "limitCapped": true
}
Search for items given a search query. The results are grouped
by month and are sorted by item date (newest first). Tags and
attachments are not resolved. The results will always
contain an empty list for item tags and attachments. Use
withDetails
to also retrieve all tags and a list of
attachments of an item.
offset | integer <int32> |
limit | integer <int32> The maximum number of results to return. Note that this limit is a soft limit, there is some hard limit on the server, too. |
withDetails | boolean Default: false |
searchMode | string <searchmode> Default: "normal" Enum: "normal" "trashed" "all" Specify whether the search query should apply to soft-deleted items or not. |
query required | string A query searching the contents of documents. |
{- "offset": 0,
- "limit": 0,
- "withDetails": false,
- "searchMode": "normal",
- "query": "string"
}
{- "groups": [
- {
- "name": "string",
- "items": [
- {
- "id": "string",
- "name": "string",
- "state": "string",
- "date": 0,
- "dueDate": 0,
- "source": "string",
- "direction": "incoming",
- "corrOrg": {
- "id": "string",
- "name": "string"
}, - "corrPerson": {
- "id": "string",
- "name": "string"
}, - "concPerson": {
- "id": "string",
- "name": "string"
}, - "concEquipment": {
- "id": "string",
- "name": "string"
}, - "folder": {
- "id": "string",
- "name": "string"
}, - "attachments": [
- {
- "id": "string",
- "position": 0,
- "name": "string",
- "pageCount": 0
}
], - "tags": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "customfields": [
- {
- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "value": "string"
}
], - "relatedItems": [
- "string"
], - "notes": "string",
- "highlighting": [
- {
- "name": "string",
- "lines": [
- "string"
]
}
]
}
]
}
], - "limit": 0,
- "offset": 0,
- "limitCapped": true
}
Instead of returning the results of a query, uses it to return a summary.
offset | integer <int32> |
limit | integer <int32> The maximum number of results to return. Note that this limit is a soft limit, there is some hard limit on the server, too. |
withDetails | boolean Default: false |
searchMode | string <searchmode> Default: "normal" Enum: "normal" "trashed" "all" Specify whether the search query should apply to soft-deleted items or not. |
query required | string A query searching the contents of documents. |
{- "offset": 0,
- "limit": 0,
- "withDetails": false,
- "searchMode": "normal",
- "query": "string"
}
{- "count": 0,
- "tagCloud": {
- "items": [
- {
- "tag": {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}, - "count": 0
}
]
}, - "tagCategoryCloud": {
- "items": [
- {
- "name": "string",
- "count": 0
}
]
}, - "fieldStats": [
- {
- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "count": 0,
- "sum": 0,
- "avg": 0,
- "max": 0,
- "min": 0
}
], - "folderStats": [
- {
- "id": "string",
- "name": "string",
- "owner": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
], - "corrOrgStats": [
- {
- "ref": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
], - "corrPersStats": [
- {
- "ref": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
], - "concPersStats": [
- {
- "ref": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
], - "concEquipStats": [
- {
- "ref": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
]
}
Instead of returning the results of a query, uses it to return a summary.
q | string A query string. |
searchMode | string <searchmode> Specify whether the search query should apply to soft-deleted items or not. |
{- "count": 0,
- "tagCloud": {
- "items": [
- {
- "tag": {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}, - "count": 0
}
]
}, - "tagCategoryCloud": {
- "items": [
- {
- "name": "string",
- "count": 0
}
]
}, - "fieldStats": [
- {
- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "count": 0,
- "sum": 0,
- "avg": 0,
- "max": 0,
- "min": 0
}
], - "folderStats": [
- {
- "id": "string",
- "name": "string",
- "owner": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
], - "corrOrgStats": [
- {
- "ref": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
], - "corrPersStats": [
- {
- "ref": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
], - "concPersStats": [
- {
- "ref": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
], - "concEquipStats": [
- {
- "ref": {
- "id": "string",
- "name": "string"
}, - "count": 0
}
]
}
Get detailed information about an item.
id required | string An identifier |
{- "id": "string",
- "direction": "incoming",
- "name": "string",
- "source": "string",
- "state": "string",
- "created": 0,
- "updated": 0,
- "itemDate": 0,
- "corrOrg": {
- "id": "string",
- "name": "string"
}, - "corrPerson": {
- "id": "string",
- "name": "string"
}, - "concPerson": {
- "id": "string",
- "name": "string"
}, - "concEquipment": {
- "id": "string",
- "name": "string"
}, - "folder": {
- "id": "string",
- "name": "string"
}, - "dueDate": 0,
- "notes": "string",
- "attachments": [
- {
- "id": "string",
- "name": "string",
- "size": 0,
- "contentType": "string",
- "converted": true
}
], - "sources": [
- {
- "id": "string",
- "name": "string",
- "size": 0,
- "contentType": "string"
}
], - "archives": [
- {
- "id": "string",
- "name": "string",
- "size": 0,
- "contentType": "string"
}
], - "tags": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "customfields": [
- {
- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "value": "string"
}
], - "relatedItems": [
- {
- "id": "string",
- "name": "string",
- "state": "string",
- "date": 0,
- "dueDate": 0,
- "source": "string",
- "direction": "incoming",
- "corrOrg": {
- "id": "string",
- "name": "string"
}, - "corrPerson": {
- "id": "string",
- "name": "string"
}, - "concPerson": {
- "id": "string",
- "name": "string"
}, - "concEquipment": {
- "id": "string",
- "name": "string"
}, - "folder": {
- "id": "string",
- "name": "string"
}, - "attachments": [
- {
- "id": "string",
- "position": 0,
- "name": "string",
- "pageCount": 0
}
], - "tags": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "customfields": [
- {
- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "value": "string"
}
], - "relatedItems": [
- "string"
], - "notes": "string",
- "highlighting": [
- {
- "name": "string",
- "lines": [
- "string"
]
}
]
}
]
}
Delete an item and all its data. This is a "soft delete", the item is still in the database and can be undeleted. A periodic job will eventually remove this item from the database.
id required | string An identifier |
{- "success": true,
- "message": "string"
}
A deleted item can be restored as long it is still in the
database. This action sets the item state to created
.
id required | string An identifier |
{- "success": true,
- "message": "string"
}
Creates a new tag and associates it to the given item.
The tag's id
and created
are generated and not used from
the given data, so it can be left empty. Only name
and
category
are used, where category
is optional.
id required | string An identifier |
id required | string <ident> |
name required | string |
category | string |
created required | integer <date-time> |
{- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
{- "success": true,
- "message": "string"
}
Update the direction of an item.
id required | string An identifier |
direction required | string <direction> |
{- "direction": "string"
}
{- "success": true,
- "message": "string"
}
Updates the folder property for this item to "place" the item
into a folder. If the request contains an empty object or an
id
property of null
, the item is moved into the "public"
or "root" folder.
id required | string An identifier |
id | string <ident> |
{- "id": "string"
}
{- "success": true,
- "message": "string"
}
Update the correspondent organization of an item.
id required | string An identifier |
id | string <ident> |
{- "id": "string"
}
{- "success": true,
- "message": "string"
}
Create a new organization and update the correspondent organization of an item.
id required | string An identifier |
id required | string <ident> |
name required | string |
required | object (Address) Postal address information. |
required | Array of objects (Contact) |
notes | string |
created required | integer <date-time> DateTime |
shortName | string |
use required | string <orguse> Enum: "correspondent" "disabled" |
{- "id": "string",
- "name": "string",
- "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "created": 0,
- "shortName": "string",
- "use": "correspondent"
}
{- "success": true,
- "message": "string"
}
Update the correspondent person of an item.
id required | string An identifier |
id | string <ident> |
{- "id": "string"
}
{- "success": true,
- "message": "string"
}
Creates a new person and updates the correspondent person of an item.
id required | string An identifier |
id required | string <ident> |
name required | string |
object (IdName) The identifier and a human readable name of some entity. | |
required | object (Address) Postal address information. |
required | Array of objects (Contact) |
notes | string |
use required | string <personuse> Enum: "concerning" "correspondent" "both" "disabled" Whether this person should be used to create suggestions for the "concerning person", "correspondent" or both. |
created required | integer <date-time> DateTime |
{- "id": "string",
- "name": "string",
- "organization": {
- "id": "string",
- "name": "string"
}, - "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "use": "concerning",
- "created": 0
}
{- "success": true,
- "message": "string"
}
Update the concerning person of an item.
id required | string An identifier |
id | string <ident> |
{- "id": "string"
}
{- "success": true,
- "message": "string"
}
Creates a new person and updates the concerning person of an item.
id required | string An identifier |
id required | string <ident> |
name required | string |
object (IdName) The identifier and a human readable name of some entity. | |
required | object (Address) Postal address information. |
required | Array of objects (Contact) |
notes | string |
use required | string <personuse> Enum: "concerning" "correspondent" "both" "disabled" Whether this person should be used to create suggestions for the "concerning person", "correspondent" or both. |
created required | integer <date-time> DateTime |
{- "id": "string",
- "name": "string",
- "organization": {
- "id": "string",
- "name": "string"
}, - "address": {
- "street": "string",
- "zip": "string",
- "city": "string",
- "country": "string"
}, - "contacts": [
- {
- "id": "string",
- "value": "string",
- "kind": "phone"
}
], - "notes": "string",
- "use": "concerning",
- "created": 0
}
{- "success": true,
- "message": "string"
}
Update the concering equipment of an item.
id required | string An identifier |
id | string <ident> |
{- "id": "string"
}
{- "success": true,
- "message": "string"
}
Creates a new equipment and sets it as the concering equipment of an item.
id required | string An identifier |
id required | string <ident> |
name required | string |
created required | integer <date-time> DateTime |
notes | string |
use required | string <equipmentuse> Enum: "concerning" "disabled" |
{- "id": "string",
- "name": "string",
- "created": 0,
- "notes": "string",
- "use": "concerning"
}
{- "success": true,
- "message": "string"
}
Update the notes of an item.
id required | string An identifier |
text | string |
{- "text": "string"
}
{- "success": true,
- "message": "string"
}
Update the name of an item.
id required | string An identifier |
text | string |
{- "text": "string"
}
{- "success": true,
- "message": "string"
}
An item is initially in state "created". The user can confirm the associated data to put it in state "confirmed".
id required | string An identifier |
{- "success": true,
- "message": "string"
}
Sets the date of an item.
id required | string An identifier |
date | integer <date-time> |
{- "date": 0
}
{- "success": true,
- "message": "string"
}
Sets the due date of an item.
id required | string An identifier |
date | integer <date-time> |
{- "date": 0
}
{- "success": true,
- "message": "string"
}
During text processing, a list of possible meta data has been extracted from each attachment that may be a match to this item. This is returned here, without duplicates.
id required | string An identifier |
{- "corrOrg": [
- {
- "id": "string",
- "name": "string"
}
], - "corrPerson": [
- {
- "id": "string",
- "name": "string"
}
], - "concPerson": [
- {
- "id": "string",
- "name": "string"
}
], - "concEquipment": [
- {
- "id": "string",
- "name": "string"
}
], - "itemDate": [
- 0
], - "dueDate": [
- 0
]
}
Sets the value for a custom field to this item. If a value already exists, it is overwritten. A value must comply to the type of the associated field. It must not be the empty string.
id required | string An identifier |
field required | string <ident> |
value required | string |
{- "field": "string",
- "value": "string"
}
{- "success": true,
- "message": "string"
}
Removes the value for the given custom field. The id
may be
the id of a custom field or its name.
id required | string An identifier |
itemId required | string An identifier for an item |
{- "success": true,
- "message": "string"
}
This submits a job that will re-process the files (either all or the ones specified) of the item and replace their metadata.
If the item is not in "confirmed" state, its associated metada is also updated. Otherwise only the file metadata is updated (text analysis).
itemId required | string An identifier for an item |
ids required | Array of strings <ident> [ items <ident > ] |
{- "ids": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Moves the source
attachment before the target
attachment,
such that source
becomes the immediate neighbor of target
with a lower position.
itemId required | string An identifier for an item |
source required | string <ident> |
target required | string <ident> |
{- "source": "string",
- "target": "string"
}
{- "success": true,
- "message": "string"
}
Returns a list of related items for the given one.
itemId required | string An identifier for an item |
{- "name": "string",
- "items": [
- {
- "id": "string",
- "name": "string",
- "state": "string",
- "date": 0,
- "dueDate": 0,
- "source": "string",
- "direction": "incoming",
- "corrOrg": {
- "id": "string",
- "name": "string"
}, - "corrPerson": {
- "id": "string",
- "name": "string"
}, - "concPerson": {
- "id": "string",
- "name": "string"
}, - "concEquipment": {
- "id": "string",
- "name": "string"
}, - "folder": {
- "id": "string",
- "name": "string"
}, - "attachments": [
- {
- "id": "string",
- "position": 0,
- "name": "string",
- "pageCount": 0
}
], - "tags": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "customfields": [
- {
- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "value": "string"
}
], - "relatedItems": [
- "string"
], - "notes": "string",
- "highlighting": [
- {
- "name": "string",
- "lines": [
- "string"
]
}
]
}
]
}
Deletes the item id
from the list of related items on
itemId
.
itemId required | string An identifier for an item |
id required | string An identifier |
{- "success": true,
- "message": "string"
}
Add one or more items to anothers list of related items. Duplicates are ignored.
item required | string <ident> |
related required | Array of strings <ident> [ items <ident > ] |
{- "item": "string",
- "related": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Remove all given items from the list of related items
item required | string <ident> |
related required | Array of strings <ident> [ items <ident > ] |
{- "item": "string",
- "related": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
A list of items is merged into one item by copying all metadata into the first item in the list.
Metadata is copied into the target item, if there is no value present. So the order of items in the list matters - the first item with a correspondent or folder will win.
For metadata that allow multiple values, like tags or custom fields the values are combined. Notes are concatenated from all items and custom fields with the same name are added together for money/numeric fields, concatenated for text fields or the first value is used for other field types.
After a successful merge, the remaining items are deleted from the database (they cannot be restored).
ids required | Array of strings <ident> [ items <ident > ] |
{- "ids": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Given a list of item ids, deletes all of them.
ids required | Array of strings <ident> [ items <ident > ] |
{- "ids": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Given a list of item ids, restores all of them.
ids required | Array of strings <ident> [ items <ident > ] |
{- "ids": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Sets the name of multiple items at once. The name must not be empty.
items required | Array of strings <ident> [ items <ident > ] |
name required | string |
{- "items": [
- "string"
], - "name": "string"
}
{- "success": true,
- "message": "string"
}
Given a folder id, sets it on all given items. If the folder reference is not present, the folder is removed from all items.
items required | Array of strings <ident> [ items <ident > ] |
ref | string <ident> |
{- "items": [
- "string"
], - "ref": "string"
}
{- "success": true,
- "message": "string"
}
Given multiple item ids and a direction value, sets it to all items.
items required | Array of strings <ident> [ items <ident > ] |
direction required | string <direction> |
{- "items": [
- "string"
], - "direction": "string"
}
{- "success": true,
- "message": "string"
}
Given multiple item ids and a date, sets it to all items as the item date. If no date is present, remove the date from the items.
items required | Array of strings <ident> [ items <ident > ] |
date | integer <date-time> |
{- "items": [
- "string"
], - "date": 0
}
{- "success": true,
- "message": "string"
}
Given multiple item ids and a date value, sets it to all items as the due date. If the date is missing, remove the due-date from the items.
items required | Array of strings <ident> [ items <ident > ] |
date | integer <date-time> |
{- "items": [
- "string"
], - "date": 0
}
{- "success": true,
- "message": "string"
}
Given an organization id, sets it on all given items. If the organization is missing, the reference is removed from all items.
items required | Array of strings <ident> [ items <ident > ] |
ref | string <ident> |
{- "items": [
- "string"
], - "ref": "string"
}
{- "success": true,
- "message": "string"
}
Given an person id, sets it on all given items as correspondent person. If the person is missing, the reference is removed from all items.
items required | Array of strings <ident> [ items <ident > ] |
ref | string <ident> |
{- "items": [
- "string"
], - "ref": "string"
}
{- "success": true,
- "message": "string"
}
Given an person id, sets it on all given items as concerning person. If the person is missing, it is removed from all items.
items required | Array of strings <ident> [ items <ident > ] |
ref | string <ident> |
{- "items": [
- "string"
], - "ref": "string"
}
{- "success": true,
- "message": "string"
}
Given an equipment id, sets it on all given items. If no equipment is given, the reference is removed from all given items.
items required | Array of strings <ident> [ items <ident > ] |
ref | string <ident> |
{- "items": [
- "string"
], - "ref": "string"
}
{- "success": true,
- "message": "string"
}
Given a list of item ids, confirm all of them.
ids required | Array of strings <ident> [ items <ident > ] |
{- "ids": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Given a list of item ids, un-confirm all of them.
ids required | Array of strings <ident> [ items <ident > ] |
{- "ids": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Given a list of item-ids, submits all these items for reprocessing. All attachments of these items will be reprocessed. Item metadata may be changed if an item is not confirmed. Confirmed items are not changed.
ids required | Array of strings <ident> [ items <ident > ] |
{- "ids": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Sets the value for a custom field to multiple given items. If a value already exists, it is overwritten. The value must comply to the associated field type. It must not be the empty string.
items required | Array of strings <ident> [ items <ident > ] |
required | object (CustomFieldValue) Data structure to update the value of a custom field. |
{- "items": [
- "string"
], - "field": {
- "field": "string",
- "value": "string"
}
}
{- "success": true,
- "message": "string"
}
Removes the value for the given custom field from multiple items. The field may be specified by its id or name.
items required | Array of strings <ident> [ items <ident > ] |
name required | string |
{- "items": [
- "string"
], - "name": "string"
}
{- "success": true,
- "message": "string"
}
Given a list of attachment ids, deletes all of them.
ids required | Array of strings <ident> [ items <ident > ] |
{- "ids": [
- "string"
]
}
{- "success": true,
- "message": "string"
}
Get the current state of the job qeue. The job qeue contains all processing tasks and other long-running operations. All users/collectives share processing resources.
{- "progress": [
- {
- "id": "string",
- "name": "string",
- "submitted": 0,
- "priority": "high",
- "state": "waiting",
- "retries": 0,
- "logs": [
- {
- "time": 0,
- "level": "string",
- "message": "string"
}
], - "progress": 0,
- "worker": "string",
- "started": 0,
- "finished": 0
}
], - "completed": [
- {
- "id": "string",
- "name": "string",
- "submitted": 0,
- "priority": "high",
- "state": "waiting",
- "retries": 0,
- "logs": [
- {
- "time": 0,
- "level": "string",
- "message": "string"
}
], - "progress": 0,
- "worker": "string",
- "started": 0,
- "finished": 0
}
], - "queued": [
- {
- "id": "string",
- "name": "string",
- "submitted": 0,
- "priority": "high",
- "state": "waiting",
- "retries": 0,
- "logs": [
- {
- "time": 0,
- "level": "string",
- "message": "string"
}
], - "progress": 0,
- "worker": "string",
- "started": 0,
- "finished": 0
}
]
}
Tries to cancel a job and remove it from the queue. If the job is running, a cancel request is send to the corresponding joex instance. Otherwise the job is removed from the queue.
id required | string An identifier |
{- "success": true,
- "message": "string"
}
A waiting job can change its priority. If the job is not in state waiting, this operation fails.
id required | string An identifier |
priority required | string <priority> Enum: "high" "low" |
{- "priority": "high"
}
{- "success": true,
- "message": "string"
}
For ui purposes, this route checks a calendar event string and either returns the normal form or an error message.
event required | string |
{- "event": "string"
}
{- "success": true,
- "message": "string",
- "event": "string",
- "next": [
- 0
]
}
Return all current notification settings of the authenticated user. Users can be notified on due items via e-mail. This is done by periodically querying items. It is possible to have multiple tasks.
[- {
- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "remindDays": 0,
- "capOverdue": true,
- "tagsInclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "tagsExclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
]
}
]
Create a new notification settings task of the authenticated user. The id field in the input is ignored.
id required | string <ident> |
enabled required | boolean |
summary | string |
Array of objects (NotificationChannelRef) | |
schedule required | string <calevent> |
remindDays required | integer <int32> Used to restrict items by their due dates. All items with a due date lower than (now + remindDays) are searched. |
capOverdue required | boolean If this is true, the search is also restricted to due
dates greater than
|
required | Array of objects (Tag) |
required | Array of objects (Tag) |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "remindDays": 0,
- "capOverdue": true,
- "tagsInclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "tagsExclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
]
}
{- "success": true,
- "message": "string"
}
Change the settings for a notify-due-items task. The task is looked up by its id.
id required | string <ident> |
enabled required | boolean |
summary | string |
Array of objects (NotificationChannelRef) | |
schedule required | string <calevent> |
remindDays required | integer <int32> Used to restrict items by their due dates. All items with a due date lower than (now + remindDays) are searched. |
capOverdue required | boolean If this is true, the search is also restricted to due
dates greater than
|
required | Array of objects (Tag) |
required | Array of objects (Tag) |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "remindDays": 0,
- "capOverdue": true,
- "tagsInclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "tagsExclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
]
}
{- "success": true,
- "message": "string"
}
Return the current settings for a single notify-due-items task of the authenticated user.
id required | string An identifier |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "remindDays": 0,
- "capOverdue": true,
- "tagsInclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "tagsExclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
]
}
Starts the notify-due-items task just once, discarding the schedule and not updating the periodic task.
id required | string <ident> |
enabled required | boolean |
summary | string |
Array of objects (NotificationChannelRef) | |
schedule required | string <calevent> |
remindDays required | integer <int32> Used to restrict items by their due dates. All items with a due date lower than (now + remindDays) are searched. |
capOverdue required | boolean If this is true, the search is also restricted to due
dates greater than
|
required | Array of objects (Tag) |
required | Array of objects (Tag) |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "remindDays": 0,
- "capOverdue": true,
- "tagsInclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
], - "tagsExclude": [
- {
- "id": "string",
- "name": "string",
- "category": "string",
- "created": 0
}
]
}
{- "success": true,
- "message": "string"
}
Return all current settings of the authenticated user.
[- {
- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "query": "string",
- "bookmark": "string",
- "contentStart": "string"
}
]
Create a new periodic-query task of the authenticated user. The id field in the input is ignored.
id required | string <ident> |
enabled required | boolean |
summary | string |
Array of objects (NotificationChannelRef) | |
schedule required | string <calevent> |
query | string <itemquery> |
bookmark | string Name or ID of bookmark to use. |
contentStart | string |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "query": "string",
- "bookmark": "string",
- "contentStart": "string"
}
{- "success": true,
- "message": "string"
}
Change the settings for a periodic-query task. The task is looked up by its id.
id required | string <ident> |
enabled required | boolean |
summary | string |
Array of objects (NotificationChannelRef) | |
schedule required | string <calevent> |
query | string <itemquery> |
bookmark | string Name or ID of bookmark to use. |
contentStart | string |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "query": "string",
- "bookmark": "string",
- "contentStart": "string"
}
{- "success": true,
- "message": "string"
}
Return the current settings for a single periodic-query task of the authenticated user.
id required | string An identifier |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "query": "string",
- "bookmark": "string",
- "contentStart": "string"
}
Starts the periodic-query task just once, discarding the schedule and not updating the periodic task.
id required | string <ident> |
enabled required | boolean |
summary | string |
Array of objects (NotificationChannelRef) | |
schedule required | string <calevent> |
query | string <itemquery> |
bookmark | string Name or ID of bookmark to use. |
contentStart | string |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "channels": [
- {
- "id": "string",
- "channelType": "string",
- "name": "string"
}
], - "schedule": "string",
- "query": "string",
- "bookmark": "string",
- "contentStart": "string"
}
{- "success": true,
- "message": "string"
}
Return the current settings for the scan-mailbox tasks of the authenticated user. Users can periodically fetch mails to be imported into docspell. It is possible to have multiple of these tasks.
{- "items": [
- {
- "id": "string",
- "enabled": true,
- "summary": "string",
- "imapConnection": "string",
- "folders": [
- "string"
], - "scanRecursively": true,
- "schedule": "string",
- "receivedSinceHours": 0,
- "targetFolder": "string",
- "deleteMail": true,
- "direction": "string",
- "itemFolder": "string",
- "tags": {
- "items": [
- "string"
]
}, - "fileFilter": "string",
- "subjectFilter": "string",
- "language": "string",
- "postHandleAll": true,
- "attachmentsOnly": true
}
]
}
Create new settings for a scan-mailbox task. The id field in the input data is ignored.
id required | string <ident> |
enabled required | boolean |
summary | string |
imapConnection required | string <ident> |
folders required | Array of strings |
scanRecursively required | boolean Scan folders recursively for new mails. |
schedule required | string <calevent> |
receivedSinceHours | integer <int32> Look only for mails newer than `receivedSinceHours' hours. |
targetFolder | string The folder to move all mails into that have been successfully submitted to docspell. |
deleteMail required | boolean Whether to delete all successfully imported mails. This only applies, if `targetFolder' is not set. |
direction | string <direction> The direction to apply to items resulting from importing mails. If not set, the value is guessed based on the from and to mail headers and your address book. |
itemFolder | string <ident> The folder id that is applied to items resulting from importing mails. If the folder id is not valid when the task executes, items have no folder set. |
object (StringList) A simple list of strings. | |
fileFilter | string <glob> A glob to filter attachments to import by file name. |
subjectFilter | string <glob> A glob to filter attachments to import by subject. |
language | string <language> The language used for text extraction and analysis when processing mails. |
postHandleAll | boolean |
attachmentsOnly | boolean Import only the attachments e-mails and discard the body |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "imapConnection": "string",
- "folders": [
- "string"
], - "scanRecursively": true,
- "schedule": "string",
- "receivedSinceHours": 0,
- "targetFolder": "string",
- "deleteMail": true,
- "direction": "string",
- "itemFolder": "string",
- "tags": {
- "items": [
- "string"
]
}, - "fileFilter": "string",
- "subjectFilter": "string",
- "language": "string",
- "postHandleAll": true,
- "attachmentsOnly": true
}
{- "success": true,
- "message": "string"
}
Change the settings for a scan-mailbox task. The task is looked up by its id.
id required | string <ident> |
enabled required | boolean |
summary | string |
imapConnection required | string <ident> |
folders required | Array of strings |
scanRecursively required | boolean Scan folders recursively for new mails. |
schedule required | string <calevent> |
receivedSinceHours | integer <int32> Look only for mails newer than `receivedSinceHours' hours. |
targetFolder | string The folder to move all mails into that have been successfully submitted to docspell. |
deleteMail required | boolean Whether to delete all successfully imported mails. This only applies, if `targetFolder' is not set. |
direction | string <direction> The direction to apply to items resulting from importing mails. If not set, the value is guessed based on the from and to mail headers and your address book. |
itemFolder | string <ident> The folder id that is applied to items resulting from importing mails. If the folder id is not valid when the task executes, items have no folder set. |
object (StringList) A simple list of strings. | |
fileFilter | string <glob> A glob to filter attachments to import by file name. |
subjectFilter | string <glob> A glob to filter attachments to import by subject. |
language | string <language> The language used for text extraction and analysis when processing mails. |
postHandleAll | boolean |
attachmentsOnly | boolean Import only the attachments e-mails and discard the body |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "imapConnection": "string",
- "folders": [
- "string"
], - "scanRecursively": true,
- "schedule": "string",
- "receivedSinceHours": 0,
- "targetFolder": "string",
- "deleteMail": true,
- "direction": "string",
- "itemFolder": "string",
- "tags": {
- "items": [
- "string"
]
}, - "fileFilter": "string",
- "subjectFilter": "string",
- "language": "string",
- "postHandleAll": true,
- "attachmentsOnly": true
}
{- "success": true,
- "message": "string"
}
Return the current settings for a single scan-mailbox task of the authenticated user. Users can periodically fetch mails to be imported into docspell.
id required | string An identifier |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "imapConnection": "string",
- "folders": [
- "string"
], - "scanRecursively": true,
- "schedule": "string",
- "receivedSinceHours": 0,
- "targetFolder": "string",
- "deleteMail": true,
- "direction": "string",
- "itemFolder": "string",
- "tags": {
- "items": [
- "string"
]
}, - "fileFilter": "string",
- "subjectFilter": "string",
- "language": "string",
- "postHandleAll": true,
- "attachmentsOnly": true
}
Starts the scan-mailbox task just once, discarding the schedule and not updating the periodic task.
id required | string <ident> |
enabled required | boolean |
summary | string |
imapConnection required | string <ident> |
folders required | Array of strings |
scanRecursively required | boolean Scan folders recursively for new mails. |
schedule required | string <calevent> |
receivedSinceHours | integer <int32> Look only for mails newer than `receivedSinceHours' hours. |
targetFolder | string The folder to move all mails into that have been successfully submitted to docspell. |
deleteMail required | boolean Whether to delete all successfully imported mails. This only applies, if `targetFolder' is not set. |
direction | string <direction> The direction to apply to items resulting from importing mails. If not set, the value is guessed based on the from and to mail headers and your address book. |
itemFolder | string <ident> The folder id that is applied to items resulting from importing mails. If the folder id is not valid when the task executes, items have no folder set. |
object (StringList) A simple list of strings. | |
fileFilter | string <glob> A glob to filter attachments to import by file name. |
subjectFilter | string <glob> A glob to filter attachments to import by subject. |
language | string <language> The language used for text extraction and analysis when processing mails. |
postHandleAll | boolean |
attachmentsOnly | boolean Import only the attachments e-mails and discard the body |
{- "id": "string",
- "enabled": true,
- "summary": "string",
- "imapConnection": "string",
- "folders": [
- "string"
], - "scanRecursively": true,
- "schedule": "string",
- "receivedSinceHours": 0,
- "targetFolder": "string",
- "deleteMail": true,
- "direction": "string",
- "itemFolder": "string",
- "tags": {
- "items": [
- "string"
]
}, - "fileFilter": "string",
- "subjectFilter": "string",
- "language": "string",
- "postHandleAll": true,
- "attachmentsOnly": true
}
{- "success": true,
- "message": "string"
}
Get all custom fields defined for the current collective. The
sort
parameter can be used to control the order of the
returned list. It can take a value from: name
, -name
,
label
, -label
, type
, -type
.
q | string A query string. |
sort | string How to sort the returned list |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "usages": 0,
- "created": 0
}
]
}
Creates a new custom field.
name required | string <ident> |
label | string |
ftype required | string <customfieldtype> Enum: "text" "numeric" "date" "bool" "money" |
{- "name": "string",
- "label": "string",
- "ftype": "text"
}
{- "success": true,
- "message": "string"
}
Returns the details about a custom field.
id required | string An identifier |
{- "id": "string",
- "name": "string",
- "label": "string",
- "ftype": "text",
- "usages": 0,
- "created": 0
}
Change properties of a custom field.
Changing the label has no further impliciations, since it is only used for displaying. The name and type on the other hand have consequences: name must be unique and the type determines how the value is stored internally.
id required | string An identifier |
name required | string <ident> |
label | string |
ftype required | string <customfieldtype> Enum: "text" "numeric" "date" "bool" "money" |
{- "name": "string",
- "label": "string",
- "ftype": "text"
}
{- "success": true,
- "message": "string"
}
Given an URL to an addon (which is a zip file containing a
docspell-meta.yaml
or json descriptor), the addon is
downloaded and installed in docspell.
By default this happens asynchronously and the response only
indicates that installing has been submitted. The result will
be transfered over the websocket channel. With query parameter
sync
installing happens synchronously and it may take a
while to complete (if successful, the addon id is returned).
sync | boolean |
url required | string <uri> |
{
}
{- "success": true,
- "message": "string",
- "id": "string"
}
Deletes the addon from the database and also removes it from all run configurations where it might be referenced.
id required | string An identifier |
{- "success": true,
- "message": "string"
}
Addons are urls to zip files. This call reads the url again and updates the contents in docspell for this addon.
By default this happens asynchronously and the response only
indicates that updating has been submitted. The result will be
transfered over the websocket channel. With query parameter
sync
updating happens synchronously and it may take a while
to complete.
id required | string An identifier |
sync | boolean |
{- "success": true,
- "message": "string"
}
Returns a list of addon run configs.
{- "items": [
- {
- "id": "string",
- "name": "string",
- "enabled": true,
- "userId": "string",
- "schedule": "string",
- "trigger": [
- "process-item"
], - "addons": [
- {
- "addonId": "string",
- "name": "string",
- "version": "string",
- "description": "string",
- "args": "string"
}
]
}
]
}
Adds a new set of configured addons, creating a run configuration.
id required | string <ident> |
name required | string |
enabled required | boolean |
userId | string <ident> An addon can be run on behalf of a user. If not given, no authentication token is generated into the environment of the addon. The user can be given as user_id or by its login name. |
schedule | string <calevent> A schedule must be supplied when a trigger type of 'scheduled' is defined. |
trigger required | Array of strings <addon-trigger-type> [ items <addon-trigger-type > ] Items Enum: "process-item" "reprocess-item" "scheduled" Defines when this task is executed. There must be at least one element. Possible values:
|
required | Array of objects (AddonRef) |
{- "id": "string",
- "name": "string",
- "enabled": true,
- "userId": "string",
- "schedule": "string",
- "trigger": [
- "process-item"
], - "addons": [
- {
- "addonId": "string",
- "name": "string",
- "version": "string",
- "description": "string",
- "args": "string"
}
]
}
{- "success": true,
- "message": "string",
- "id": "string"
}
Updates an existing addon run configuration. The id is taken from the URL and any given id in the request body is ignored.
id required | string An identifier |
id required | string <ident> |
name required | string |
enabled required | boolean |
userId | string <ident> An addon can be run on behalf of a user. If not given, no authentication token is generated into the environment of the addon. The user can be given as user_id or by its login name. |
schedule | string <calevent> A schedule must be supplied when a trigger type of 'scheduled' is defined. |
trigger required | Array of strings <addon-trigger-type> [ items <addon-trigger-type > ] Items Enum: "process-item" "reprocess-item" "scheduled" Defines when this task is executed. There must be at least one element. Possible values:
|
required | Array of objects (AddonRef) |
{- "id": "string",
- "name": "string",
- "enabled": true,
- "userId": "string",
- "schedule": "string",
- "trigger": [
- "process-item"
], - "addons": [
- {
- "addonId": "string",
- "name": "string",
- "version": "string",
- "description": "string",
- "args": "string"
}
]
}
{- "success": true,
- "message": "string"
}
Submits a background task that executes the specified (or all) addons configured to use for an existing item.
itemId required | string <ident> |
additionalItems | Array of strings <ident> [ items <ident > ] Additional items to run addons on. There will be one job submitted per item. |
addonRunConfigIds | Array of strings <ident> [ items <ident > ] If non empty, only select these addon run configs. Otherwise all configured to be run for existing items are executed. |
{- "itemId": "string",
- "additionalItems": [
- "string"
], - "addonRunConfigIds": [
- "string"
]
}
{- "success": true,
- "message": "string"
}