Goto APIs

Documents API

General:

Basics:

Base-URL: https://capi.lagerkoll.com/v1/documents/
Parameters in the url should all be encoded and all data sent should be UTF-8

MAX number of requests per minute is set to 200.
When the limit is hit an error with code 429 is returned, with the header "Retry-After" containing the number of seconds you have to wait for your next request.

Headers:

There are 2 ways to be authenticated when using this API. in both ways you add headers to the request.
1) Use an API-key together with store-id. This would be used when communicating machine to machine and no real person is involved. The API-key is available from where you activated the API. The store-id is also available in the same place.
2) Use a user_id and user_token together with a store-id. You get these values from the login-request. The values are connected to a person and are gained when an actual login to the system has been made.
store: <<STORE>>
user_id: <<USER_ID>>
user_token: <<USER_TOKEN>>
api_key: <<API_KEY>>
Accept: application/json
Content-Type: application/json

Errors:

Code Description
900001 Credentials don't match
900101 Common error
900429 Too many requests
901601 Error getting document
901602 Error copying document
{
  "errorCode" : 900101,
  "errorMessage" : "Something went wrong on the server",
  "errorField" : null,
  "errorData" : null
}

Documents API:

Document

Get document binary

GETUrl: /{document_name : .+}/binary
Headers:
Accept: application/octet-stream or application/json
Get document binary
Body:
Successfull response:

Get document metadata

GETUrl: /{document_name : .+}
Headers:
Accept: application/json or application/xml
Get document metadata
Body:
Successfull response:

{ "documentsCount": 2014, "pages": 1348, "documents": [{ "readPermissions": [{ "storeGroupId": 9958, "paths": [{ "path": "path", "action": "action" }], "name": "name", "id": 9349, "fields": {}, "portal": "portal", "users": 55 }], "filename": "filename", "ownerName": "ownerName", "created": 1713627753013, "description": "description", "filesize": 6739, "type": "type", "ownerId": 6935, "version": "version" }], "pageSize": 625, "page": 3395 }

Get document metadatas

GETUrl:
Headers:
Accept: application/json or application/xml
Get list of document metadatas

Valid parameters:

Parameter Description Default value Allowed values
query
type
page 0
limit 25
order desc asc,desc
sort_column created type,filename,created

Body:
Successfull response:

{ "documentsCount": 2205, "pages": 5654, "documents": [{ "readPermissions": [{ "storeGroupId": 1002, "paths": [{ "path": "path", "action": "action" }], "name": "name", "id": 6069, "fields": {}, "portal": "portal", "users": 4224 }], "filename": "filename", "ownerName": "ownerName", "created": 1713627753014, "description": "description", "filesize": 9639, "type": "type", "ownerId": 284, "version": "version" }], "pageSize": 7224, "page": 1297 }

Upload document

POSTUrl:
Headers:
Accept: application/json or application/xml
Content-type: multipart/form-data
Upload document. Max size is 4Mb.

Valid parameters:

Parameter Description Default value Allowed values
file Inputstream to be uploaded
file
description Description of file
version Version of the file
filename The filename to be stored with the file
read_permissions List of role ids that have permission to read the file. If empty, the file becomes available for all users. If multiple permissions, send multiple fields with the same id
type Type of file

Body:
Successfull response:

{ "readPermissions": [{ "storeGroupId": 9479, "paths": [{ "path": "path", "action": "action" }], "name": "name", "id": 5895, "fields": {}, "portal": "portal", "users": 788 }], "filename": "filename", "ownerName": "ownerName", "created": 1713627753015, "description": "description", "filesize": 5933, "type": "type", "ownerId": 7432, "version": "version" }

Copy document

POSTUrl: /{document_name : .+}/copy
Headers:
Accept: application/json or application/xml
Content-type: application/json or application/xml
Copy a document to a new document with new filename and description
Body:

{ "filename": "filename", "description": "description", "type": "type", "version": "version" }
Successfull response:

{ "readPermissions": [{ "storeGroupId": 3756, "paths": [{ "path": "path", "action": "action" }], "name": "name", "id": 7756, "fields": {}, "portal": "portal", "users": 2469 }], "filename": "filename", "ownerName": "ownerName", "created": 1713627753015, "description": "description", "filesize": 8402, "type": "type", "ownerId": 6584, "version": "version" }

Delete document

DELETEUrl: /{document_name}
Headers:
Accept: application/json or application/xml
Content-type: application/json
Delete document
Body:
Successfull response:

System Document

Get system document binary

GETUrl: /system/{document_name : .+}/binary
Headers:
Accept: application/octet-stream or application/json
Get system document binary
Body:
Successfull response:

Get system document metadatas

GETUrl: /system
Headers:
Accept: application/json or application/xml
Get list of system document metadatas
Body:
Successfull response:

{ "documentsCount": 6680, "pages": 1624, "documents": [{ "readPermissions": [{ "storeGroupId": 9679, "paths": [{ "path": "path", "action": "action" }], "name": "name", "id": 5848, "fields": {}, "portal": "portal", "users": 3093 }], "filename": "filename", "ownerName": "ownerName", "created": 1713627753017, "description": "description", "filesize": 4668, "type": "type", "ownerId": 5752, "version": "version" }], "pageSize": 9969, "page": 286 }

Classes:

Document

Field Type Description Default Mandatory Accepted values Example values Access
description String R,W
version String Can only be set when creating R,W
filename String R,W
type String Can only be set when creating R,W
filesize long Filesize in bytes R
created Date R
ownerId Long Id of the user who created the document R
ownerName String Name of the user who created the document R
readPermissions List Roles that have read access to this document R

DocumentsResponse

Field Type Description Default Mandatory Accepted values Example values Access
page int R
pages int R
pageSize int R
documentsCount int R
documents List R

Path

Field Type Description Default Mandatory Accepted values Example values Access
path String Path of allowed api request R,W
action String Method/action of the request get, post, put, delete, * R,W

Role

Field Type Description Default Mandatory Accepted values Example values Access
id Long R
storeGroupId Long R
name String R,W
paths List List of paths role has access to R,W
fields HashMap List of objects and fields that is filtered out when sending data to api and request data from api R,W
portal String What part of Lagerkoll is the role used ADMIN, SHOP R,W
users int Number of users connected to role R