Back to top

Labfolder ELN API v2 Beta

Latest

Pre-Release Notice

This API is still under active development. This means endpoint semantics and formats might change as we finalize the implementation. There may still be some bugs as well, but we believe getting it into the hands of our users sooner will help the process move faster.

Optional fields might be added to requests and additional fields might be added to responses without notice. To ensure the smoothes possible transition please make sure your code does not rely on the exact object structure returned and ignores unknown properties.

“null” values

We’re aware of an issue with the library that we use to generate the API documentation in which nullable string properties are represented with the value "null" in the documentation. The API will never return “null” (as a string), only either a valid id (in string form “12345”) or null.

As an example, see the properties group_id and folder_id under the List Projects resource

Version

This is API v2 build #

f398ce004ab5f0029b0be8376791b1007f55f973

Access

Location

The API can only be accessed via HTTPS.

You can reach the API for the cloud instance at

https://eln.labfolder.com/api/v2/

Local installations can access the API using the respective domain with the path /api/v2/ appended.

So if your server is reachable at https://labfolder.mycompany.lan the API endpoint is located at

# Note: `/api/v2/` is appended to the standalone server url

https://labfolder.mycompany.lan/api/v2/

Authentication

Requests to the API have to be authenticated using an API token which is received after successfully providing your application credentials to the API.

Once acquired the token can either be provided as the username field for HTTP-Basic authentication (useful for commandline access) or set in the Authorization header using other tools.

The following examples illustrate the two different ways to provide the token when using curl

# via HTTP-Basic
# Note the proceeding ':'

> curl -u "$LABFOLDER_API_TOKEN:" <API_RESOURCE_PATH_GOES_HERE>
# via Authorization header
# Note the format is "Authorization: Token xxxxxx"

> curl -H "Authorization: Token $LABFOLDER_API_TOKEN" <API_RESOURCE_PATH_GOES_HERE>

Endpoints

Signup - Create Account
POST/auth/signup

Create a new user account.

By registering an account via the labfolder API, you agree to our terms of use and privacy policy.

Example URI

POST /auth/signup
Request  Create Account
HideShow
Headers
Content-Type: application/json
Body
{
  "email": "darth.vader@starwars.com",
  "password": "password",
  "first_name": "Anakin",
  "last_name": "Skywalker",
  "role": "Fleet Commander",
  "organization": "Imperium",
  "language": "de"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "email of the user"
    },
    "password": {
      "type": "string",
      "description": "password of the user"
    },
    "first_name": {
      "type": "string",
      "description": "first name of the user"
    },
    "last_name": {
      "type": "string",
      "description": "last name of the user"
    },
    "role": {
      "type": "string",
      "description": "role of the user in his organization"
    },
    "organization": {
      "type": "string",
      "description": "organization the user is member of"
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr"
      ],
      "description": "defines the user language. If not submitted, user language is English"
    }
  },
  "required": [
    "email",
    "password",
    "first_name",
    "last_name"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /auth/login
X-ELN-Access-Token: TFzQgEmfSnFYV5sQ0mI4 - Token to access the ELN pages via browser
Body
{
  "email": "darth.vader@starwars.com",
  "uuid": "123e4567-e89b-12d3-a456-426655440000"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "email the new user has been created with"
    },
    "uuid": {
      "type": "string",
      "description": "a unique key to the user which is to be used across 3rd party applications"
    }
  }
}

Login - Generate Token
POST/auth/login

Generate a token which can be used to make API requests.

Example URI

POST /auth/login
Request  Generate Token
HideShow
Headers
Content-Type: application/json
Body
{
  "user": "darth.vader@starwars.com",
  "password": "password"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "user": {
      "type": "string",
      "description": "email of the user"
    },
    "password": {
      "type": "string",
      "description": "password of the user"
    }
  },
  "required": [
    "user",
    "password"
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "token": "MTZmNTigNWMtNWJ34y00NDgwL12wM2ItZTM4NzFGYzU1NTJm",
  "expires": "2017-09-04T13:27:55.641+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "generated token"
    },
    "expires": {
      "type": "string",
      "description": "expiration date of the token"
    }
  },
  "required": [
    "token",
    "expires"
  ]
}

Concepts

User Agent Required

All requests MUST include a User-Agent header. Please include the name of your application and your e-mail address so we can contact you if needed.

User-Agent: My Application; email@domain.tld

if you do not provide a User-Agent we will return a 400 Bad Request.

Parameters & Body Format

Some GET requests can take optional parameters which are included in the query string and must be UTF-8 encoded.

# Example query string usage

?offset=0&limit=20&sort=-title

The body format of POST, PATCH, PUT, and DELETE request is JSON and the corresponding Content-Type header must be set to application/json.

# Set Content-Type header and provide JSON body

> curl -u "${LABFOLDER_API_TOKEN}:" -H "Content-Type: application/json" -X POST -d {...JSON...} <API_RESOURCE_PATH_GOES_HERE>

Compression

All requests including Accept-Encoding: gzip header wil get compressed content as response.

Accept-Encoding: gzip

if you do not provide Accept-Encoding we will return uncompressed content.

Skipping Response Body

When creating or updating a resource the API can be configured to not return the resulting object in the message body. This can be accomplished by providing a custom header with the request:

`X-LF-SKIP-BODY: true`

No message body will be provided in the response and the HTTP response code will be 204. This may be useful in situations where minimizing bandwidth is a concern and when the resulting resource size is large (for example: table elements or text elements).

Note: if the header is not provided or when a value other than true is given it will be ignored and the API will default to returning the full message body.

Pagination

Some requests return paginated results of items (usually 20 at a time). Paginated items will be returned as a JSON array:

[
    {...some JSON...},
    {...some JSON...},
    {...some JSON...},
    {...some JSON...}
]

The total amount of found items will be available in a header X-Total-Count. This header will always be present for pageable requests.

You can control the offset and number of results returned by adjusting the offset and limit query parameters. All endpoints will limit the number of results returned by the limit parameter and fallback on the allowed maximum if you request too many items. The usual maximum for offset is 50 items but may differ by endpoint.

curl -H "Authorization: Token $LABFOLDER_API_TOKEN" <API_RESOURCE_PATH_GOES_HERE>?limit=1000

[
    {...some JSON...},
    {...some JSON...},
    {...some JSON...},
    {...some JSON...}
]

Client Errors

Client errors are denoted as a 4XX response code. All errors will return JSON with a message attribute explaining what went wrong.

{
    "status": 400,
    "message": "Unable to parse JSON"
}

There are several types of errors:

Authentication and authorization related errors

These will return either a 401 Unauthorized on missing authentication or a 403 Forbidden on missing authorization.

Invalid requests because of invalid HTTP verbs or media types

These will return a 405 Method Not Allowed or 415 Unsupported Media Type respectively.

Missing parameters or invalid body format

A 400 Bad Request is usually returned in case of missing parameters or an invalid body format. The latter could be because of invalid JSON or the wrong object shape (e.g. wrong nesting of objects).

Validation errors

A 422 Unprocessable Entity is returned if the body format is correct but the entity did not pass validation. This denotes a wrong user input and can potentially be signalled to the user.

Timezones & Date Format

Date Format

In general the API returns and expects dates & times in the ISO 8601 format including the timezone specification. For example: 2017-02-27T17:05:06+01:00 for a time or 2017-02-27 for a date.

Timezone

The default timezone returned will be the timezone specified in the user profile of the authenticated user.

Data Access

According to the provided authentication token the requesting user is identified.

Full List Requests

On full list requests, the returned entities always contain all user accessible data and not only the user self-created content, as far as not mentioned differently in the endpoint description.

Groups

Groups

Get Groups
GET/groups{?limit,offset}

Returns all the top level groups (subgroups are not returned) that user belongs to.

Example URI

GET /groups?limit=&offset=
URI Parameters
HideShow
limit
number (optional) Default: 20 

Maximum number of groups to return

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "title": "Luke's Private Group",
    "description": "This group is intended to be used for private projects",
    "id": "46123",
    "owner_id": "11038",
    "type": "BASIC",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display title of the group"
      },
      "description": {
        "type": "string",
        "description": "details about the group usage, functionality, etc."
      },
      "id": {
        "type": "string",
        "description": "the unique id of the group"
      },
      "owner_id": {
        "type": "string",
        "description": "the id of the group owner"
      },
      "type": {
        "type": "string",
        "enum": [
          "BASIC",
          "ADVANCED"
        ],
        "description": "the type of the group"
      },
      "creation_date": {
        "type": "string",
        "description": "date when the group was created"
      },
      "version_date": {
        "type": "string",
        "description": "date when the group was last modified"
      }
    },
    "required": [
      "title",
      "id",
      "owner_id",
      "type",
      "creation_date",
      "version_date"
    ]
  }
}

Subgroups Resource

Get Subgroups
GET/groups/{id}/subgroups{?parent_id,only_root_level,limit,offset}

Returns subgroups of the group

Example URI

GET /groups/1200/subgroups?parent_id=&only_root_level=&limit=&offset=
URI Parameters
HideShow
id
string (required) Example: 1200

id of the group

parent_id
string (optional) 

Only return subgroups that reside within the specified subgroup

only_root_level
boolean (optional) Default: false 

Only return root (top) level subgroups - I.e. subgroups that do not reside within a subgroup

limit
number (optional) Default: 20 

Maximum number of subgroups to return

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "id": "12585",
    "title": "Rogue One",
    "group_id": "1200",
    "parent_id": "12587"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "description": "the unique identifier of the subgroup"
      },
      "title": {
        "type": "string",
        "description": "the title of the subgroup"
      },
      "group_id": {
        "type": "string",
        "description": "the id of the group this subgroup is part of"
      },
      "parent_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the subgroup id to which this subgroup is subordinate"
      }
    },
    "required": [
      "id",
      "title",
      "group_id",
      "parent_id"
    ]
  }
}

Group Memberships

Get Group Memberships
GET/groups/{id}/memberships{?subgroup_id,user_id,project_ids,project_folder_ids,only_root_level,limit,offset}

Returns memberships of users in a group

Example URI

GET /groups/1200/memberships?subgroup_id=234&user_id=11040&project_ids=36275&project_folder_ids=36274&only_root_level=true&limit=&offset=
URI Parameters
HideShow
id
string (required) Example: 1200

id of the group

subgroup_id
string (optional) Example: 234

Only return group members that reside within the specified subgroup

user_id
string (optional) Example: 11040

Only return membership information for the specified user

project_ids
array[string] (optional) Example: 36275

Comma separated list of project ids that have to be accessible for the group members

project_folder_ids
array[string] (optional) Example: 36274

Comma separated list of project folder ids that have to be accessible for the group members

only_root_level
boolean (optional) Default: false Example: true

Only return root (top) level group members - I.e. members that do not reside within a subgroup

limit
number (optional) Default: 20 

Maximum number of subgroups to return

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "id": "12585",
    "group_id": "1200",
    "subgroup_id": "12587",
    "admin": false,
    "user": {
      "id": "3857",
      "first_name": "Luke",
      "last_name": "Skywalker",
      "email": "luke.skywalker@starwars.com"
    }
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "description": "the unique identifier of the group membership"
      },
      "group_id": {
        "type": "string",
        "description": "the id of the group this member belongs to"
      },
      "subgroup_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the subgroup this member belongs to"
      },
      "admin": {
        "type": "boolean",
        "description": "indicator if the group member is admin in this group"
      },
      "user": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "unique user id of the group member"
          },
          "first_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "first name of the member. Not defined if this member has a pending group invitation"
          },
          "last_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "last name of the member. Not defined if this member has a pending group invitation"
          },
          "email": {
            "type": "string",
            "description": "email address of the member"
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email"
        ],
        "description": "user identity entity of the group member"
      }
    },
    "required": [
      "id",
      "group_id",
      "subgroup_id",
      "admin",
      "user"
    ]
  }
}

Projects

Projects Resource

List Projects
GET/projects{?group_id,owner_id,only_root_level,folder_id,project_ids,limit,offset}

Returns a list of projects the user has access to.

Example URI

GET /projects?group_id=1200&owner_id=11038&only_root_level=true&folder_id=36274&project_ids=36279&limit=&offset=
URI Parameters
HideShow
group_id
string (optional) Example: 1200

Only return the projects that belong to the specified group

owner_id
string (optional) Example: 11038

Only return the projects that are owned by the given user

only_root_level
boolean (optional) Default: false Example: true

Only return root (top) level projects - I.e. projects that do not reside within a folder

folder_id
string (optional) Example: 36274

Only return projects that reside within the specified folder

project_ids
array[string] (optional) Example: 36279

A comma separated list of project ids specifying the projects to be returned

limit
number (optional) Default: 20 

Maximum number of projects to return

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "title": "Luke's Private Project",
    "id": "46123",
    "owner_id": "11038",
    "group_id": "null",
    "folder_id": "null",
    "hidden": false,
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display name of the project"
      },
      "id": {
        "type": "string",
        "description": "the unique id of the project"
      },
      "owner_id": {
        "type": "string",
        "description": "the id of the project owner"
      },
      "group_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the group to which the project is associated"
      },
      "folder_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the folder in which the project is stored"
      },
      "hidden": {
        "type": "boolean",
        "description": "indicating if the project is hidden"
      },
      "creation_date": {
        "type": "string",
        "description": "date when the project was created"
      },
      "version_date": {
        "type": "string",
        "description": "date when the project was last modified"
      }
    },
    "required": [
      "title",
      "id",
      "owner_id",
      "group_id",
      "folder_id",
      "hidden",
      "creation_date",
      "version_date"
    ]
  }
}

Create Project
POST/projects

Create a project

Example URI

POST /projects
Request  Create Private Project
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Project"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the project"
    }
  },
  "required": [
    "title"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /projects/1234
Body
{
  "title": "Luke's Private Project",
  "id": "46123",
  "owner_id": "11038",
  "group_id": "null",
  "folder_id": "null",
  "hidden": false,
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the project"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the project"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the project owner"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the project is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the project is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the project is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the project was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the project was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ]
}
Request  Create Private Project in a Folder
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Project",
  "folder_id": "36273"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the project"
    },
    "folder_id": {
      "type": "string",
      "description": "the id of the folder in which the project is stored"
    }
  },
  "required": [
    "title",
    "folder_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /projects/1234
Body
{
  "title": "Luke's Private Project",
  "id": "46123",
  "owner_id": "11038",
  "group_id": "null",
  "folder_id": "36273",
  "hidden": false,
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the project"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the project"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the project owner"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the project is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the project is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the project is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the project was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the project was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ]
}
Request  Create Group Project
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Project",
  "group_id": "1200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the project"
    },
    "group_id": {
      "type": "string",
      "description": "the id of the group to which the project is associated"
    }
  },
  "required": [
    "title",
    "group_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /projects/1234
Body
{
  "title": "Luke's Private Project",
  "id": "46123",
  "owner_id": "11038",
  "group_id": "1200",
  "folder_id": "null",
  "hidden": false,
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the project"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the project"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the project owner"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the project is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the project is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the project is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the project was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the project was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ]
}
Request  Create Group Project in a Folder
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Project",
  "folder_id": "36274",
  "group_id": "1200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the project"
    },
    "folder_id": {
      "type": "string",
      "description": "the id of the folder in which the project is stored"
    },
    "group_id": {
      "type": "string",
      "description": "the id of the group to which the project is associated"
    }
  },
  "required": [
    "title",
    "folder_id",
    "group_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /projects/1234
Body
{
  "title": "Luke's Private Project",
  "id": "46123",
  "owner_id": "11038",
  "group_id": "1200",
  "folder_id": "36273",
  "hidden": false,
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the project"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the project"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the project owner"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the project is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the project is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the project is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the project was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the project was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ]
}

Folders

Folders Resource

List Folders
GET/folders{?group_id,owner_id,only_root_level,parent_folder_id,folder_ids,limit,offset}

Returns a list of folders the user has access to.

Example URI

GET /folders?group_id=1200&owner_id=11038&only_root_level=true&parent_folder_id=36274&folder_ids=36278&limit=&offset=
URI Parameters
HideShow
group_id
string (optional) Example: 1200

Only return the folders that belong to the specified group

owner_id
string (optional) Example: 11038

Only return the folders that are owned by the given user

only_root_level
boolean (optional) Default: false Example: true

Only return root (top) level folders - I.e. folders that do not reside within another folder

parent_folder_id
string (optional) Example: 36274

Only return folders that reside within the specified folder

folder_ids
array[string] (optional) Example: 36278

A comma separated list of project ids specifying the projects to be returned

limit
number (optional) Default: 20 

Maximum number of folders to return

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "id": "46123",
    "title": "Luke's Folder",
    "owner_id": "11038",
    "group_id": "206",
    "parent_folder_id": "null",
    "hidden": false,
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "description": "the unique id of the folder"
      },
      "title": {
        "type": "string",
        "description": "the display name of the folder"
      },
      "owner_id": {
        "type": "string",
        "description": "the id of the folder owner"
      },
      "group_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the group to which the folder is associated"
      },
      "parent_folder_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the folder in which the folder is stored"
      },
      "hidden": {
        "type": "boolean",
        "description": "indicating if the folder is hidden"
      },
      "creation_date": {
        "type": "string",
        "description": "date when the folder was created"
      },
      "version_date": {
        "type": "string",
        "description": "date when the folder was last modified"
      }
    },
    "required": [
      "id",
      "title",
      "owner_id",
      "group_id",
      "parent_folder_id",
      "hidden",
      "creation_date",
      "version_date"
    ]
  }
}

Notebook

Entries

List Entries
GET/entries{?sort,omit_empty_title,title,expand,limit,offset}

Returns the list of entries

Example URI

GET /entries?sort=&omit_empty_title=&title=&expand=&limit=&offset=
URI Parameters
HideShow
sort
string (optional) 

Field to sort the results by. When omitted results are sorted by user application settings

Choices: title -title

omit_empty_title
boolean (optional) Default: false 

omit entries without a title in the result set

title
string (optional) 

partial string to match the entry title

limit
number (optional) Default: 20 

Maximum number of projects to return. The maximum for limit is 50 items.

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

expand
string (optional) 

A comma separated list of related domain objects that should be expanded for all items returned.

Choices: author project

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "title": "Luke's Private Entry",
    "project_id": "36272",
    "id": "2309878",
    "version_id": "5309878",
    "author_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200",
    "hidden": false,
    "element_layout": {
      "rows": [
        {
          "cells": [
            {
              "element_id": "2309983",
              "width": 66
            }
          ]
        }
      ]
    },
    "elements": [
      {
        "id": "2309983",
        "version_id": "0",
        "type": "TEXT"
      }
    ],
    "tags": [
      "luke",
      "star wars"
    ],
    "custom_dates": [
      {
        "name": "validation date",
        "value": "2017-12-25"
      }
    ]
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display name of the entry"
      },
      "project_id": {
        "type": "string",
        "description": "project location of the entry"
      },
      "id": {
        "type": "string",
        "description": "the stable pointer to the most current version `blockId`"
      },
      "version_id": {
        "type": "string",
        "description": "the unique id of the entry"
      },
      "author_id": {
        "type": "string",
        "description": "the unique id of the user created the entry"
      },
      "creation_date": {
        "type": "string",
        "description": "date when the entry was created"
      },
      "version_date": {
        "type": "string",
        "description": "date when this entry was last modified"
      },
      "hidden": {
        "type": "boolean",
        "description": "indicates if the entry is hidden or visible"
      },
      "element_layout": {
        "type": "object",
        "properties": {
          "rows": {
            "type": [
              "array",
              "null"
            ],
            "description": "the notebook row/column layout of elements in the entry"
          }
        },
        "required": [
          "rows"
        ],
        "description": "The layout of the elements in this entry"
      },
      "elements": {
        "type": "array",
        "description": "The elements in this entry"
      },
      "tags": {
        "type": "array",
        "description": "The tags for this entry. Tags are case insensitive."
      },
      "custom_dates": {
        "type": "array",
        "description": "Custom dates for this entry"
      }
    },
    "required": [
      "title",
      "project_id",
      "id",
      "version_id",
      "author_id",
      "creation_date",
      "version_date",
      "hidden",
      "element_layout",
      "elements",
      "tags",
      "custom_dates"
    ]
  }
}

Create Notebook Entry
POST/entries

Create a notebook entry

Example URI

POST /entries
Request  Create Entry with Title
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Entry",
  "project_id": "36272"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    }
  },
  "required": [
    "title",
    "project_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /entries/10945
Body
{
  "title": "Luke's Private Entry",
  "project_id": "36272",
  "id": "2309878",
  "version_id": "5309878",
  "author_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "hidden": false,
  "element_layout": {
    "rows": []
  },
  "elements": [],
  "tags": [],
  "custom_dates": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `blockId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the entry"
    },
    "author_id": {
      "type": "string",
      "description": "the unique id of the user created the entry"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the entry was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when this entry was last modified"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "element_layout": {
      "type": "object",
      "properties": {
        "rows": {
          "type": "array",
          "description": "the notebook row/column layout of elements in the entry"
        }
      },
      "description": "The layout of the elements in this entry"
    },
    "elements": {
      "type": "array",
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "description": "Custom dates for this entry"
    }
  },
  "required": [
    "title",
    "project_id",
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "hidden",
    "element_layout",
    "elements",
    "tags",
    "custom_dates"
  ]
}
Request  Create Entry with Tags
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Entry",
  "project_id": "36272",
  "tags": [
    "luke",
    "star wars"
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "tags": {
      "type": "array",
      "description": "array of strings representing tags"
    }
  },
  "required": [
    "title",
    "project_id",
    "tags"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /entries/10945
Body
{
  "title": "Luke's Private Entry",
  "project_id": "36272",
  "id": "2309878",
  "version_id": "5309878",
  "author_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "hidden": false,
  "element_layout": {
    "rows": []
  },
  "elements": [],
  "tags": [
    "luke",
    "star wars"
  ],
  "custom_dates": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `blockId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the entry"
    },
    "author_id": {
      "type": "string",
      "description": "the unique id of the user created the entry"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the entry was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when this entry was last modified"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "element_layout": {
      "type": "object",
      "properties": {
        "rows": {
          "type": "array",
          "description": "the notebook row/column layout of elements in the entry"
        }
      },
      "description": "The layout of the elements in this entry"
    },
    "elements": {
      "type": "array",
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "description": "Custom dates for this entry"
    }
  },
  "required": [
    "title",
    "project_id",
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "hidden",
    "element_layout",
    "elements",
    "tags",
    "custom_dates"
  ]
}
Request  Create Entry with Custom Dates
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Entry",
  "project_id": "36272",
  "custom_dates": [
    {
      "name": "validation date",
      "value": "2017-12-25"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "custom_dates": {
      "type": "array",
      "description": "array of custom dates"
    }
  },
  "required": [
    "title",
    "project_id",
    "custom_dates"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /entries/10945
Body
{
  "title": "Luke's Private Entry",
  "project_id": "36272",
  "id": "2309878",
  "version_id": "5309878",
  "author_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "hidden": false,
  "element_layout": {
    "rows": []
  },
  "elements": [],
  "tags": [],
  "custom_dates": [
    {
      "name": "validation date",
      "value": "2017-12-25"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `blockId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the entry"
    },
    "author_id": {
      "type": "string",
      "description": "the unique id of the user created the entry"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the entry was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when this entry was last modified"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "element_layout": {
      "type": "object",
      "properties": {
        "rows": {
          "type": "array",
          "description": "the notebook row/column layout of elements in the entry"
        }
      },
      "description": "The layout of the elements in this entry"
    },
    "elements": {
      "type": "array",
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "description": "Custom dates for this entry"
    }
  },
  "required": [
    "title",
    "project_id",
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "hidden",
    "element_layout",
    "elements",
    "tags",
    "custom_dates"
  ]
}

Export

Exports Resource

List All Exports
GET/exports{?status,limit,offset}

Get a list of Exports of all kinds that the requesting user has created. The list is ordered by creation date descending.

Example URI

GET /exports?status=FINISHED&limit=&offset=
URI Parameters
HideShow
status
string (optional) Example: FINISHED

A comma separated list of statuses to be filtered.

Choices: NEW RUNNING FINISHED REMOVED ERROR QUEUED

limit
number (optional) Default: 20 

Maximum number of exports to return. The maximum for limit is 50 items.

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "id": "20e699a3-4764-461f-a4bc-d10d7cbba3f0",
    "user_id": "11038",
    "type": "XHTML",
    "content": {
      "project_ids": [
        "36272"
      ],
      "entry_ids": [],
      "template_ids": [],
      "group_ids": []
    },
    "status": "FINISHED",
    "completion_date": "2019-02-01T13:35:30.789+0200",
    "creation_date": "2019-02-01T13:34:56.789+0200",
    "version_date": "2019-02-01T13:35:30.789+0200",
    "download_filename": "my_labfolder_content.zip",
    "download_href": "https://eln.labfolder.com/api/v2/exports/xhtml/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285"
  },
  {
    "id": "20e699a3-4764-461f-a4bc-d10d7cbba3f0",
    "user_id": "11038",
    "type": "PDF",
    "content": {
      "project_ids": [
        "36272"
      ],
      "entry_ids": [],
      "template_ids": [],
      "group_ids": []
    },
    "status": "FINISHED",
    "completion_date": "2019-02-01T13:35:30.789+0200",
    "creation_date": "2019-02-01T13:34:56.789+0200",
    "version_date": "2019-02-01T13:35:30.789+0200",
    "download_filename": "example_project.pdf",
    "download_href": "https://eln.labfolder.com/api/v2/exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285",
    "settings": {
      "include_page_header": true,
      "include_page_footer": true,
      "include_page_number": true,
      "include_entry_header": true,
      "include_entry_footer": true,
      "include_entry_dates": true,
      "include_tags": true
    }
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": [
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "the unique id of the export"
        },
        "user_id": {
          "type": "string",
          "description": "the unique id of the user, who created the export"
        },
        "type": {
          "type": "string",
          "enum": [
            "XHTML"
          ],
          "description": "the type of export"
        },
        "content": {
          "type": "object",
          "properties": {
            "project_ids": {
              "type": "array",
              "description": "the ids of projects that are contained in the export"
            },
            "entry_ids": {
              "type": "array",
              "description": "the ids of entries that are contained in the export"
            },
            "template_ids": {
              "type": "array",
              "description": "the ids of templates that are contained in the export"
            },
            "group_ids": {
              "type": "array",
              "description": "the ids of complete groups that are contained in the export"
            }
          },
          "required": [
            "project_ids",
            "entry_ids",
            "template_ids",
            "group_ids"
          ],
          "additionalProperties": false,
          "description": "object defining the export content scope"
        },
        "status": {
          "type": "string",
          "enum": [
            "NEW",
            "RUNNING",
            "FINISHED",
            "REMOVED",
            "ERROR",
            "QUEUED"
          ],
          "description": "the status of the export in the export life cycle"
        },
        "completion_date": {
          "type": [
            "string",
            "null"
          ],
          "description": "date when the export file creation was completed"
        },
        "creation_date": {
          "type": "string",
          "description": "date when the export was created"
        },
        "version_date": {
          "type": "string",
          "description": "date when the export was last modified"
        },
        "download_filename": {
          "type": "string",
          "description": "the filename used for the finished export downloadable file"
        },
        "download_href": {
          "type": [
            "string",
            "null"
          ],
          "description": "entity specific pre-signed download URL, that is valid until the date (in milliseconds) from the X-Labfolder-Expires parameter"
        }
      },
      "required": [
        "id",
        "user_id",
        "type",
        "content",
        "status",
        "completion_date",
        "creation_date",
        "version_date",
        "download_filename"
      ]
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "the unique id of the export"
        },
        "user_id": {
          "type": "string",
          "description": "the unique id of the user, who created the export"
        },
        "type": {
          "type": "string",
          "enum": [
            "PDF"
          ],
          "description": "the type of export"
        },
        "content": {
          "type": "object",
          "properties": {
            "project_ids": {
              "type": "array",
              "description": "the ids of projects that are contained in the export"
            },
            "entry_ids": {
              "type": "array",
              "description": "the ids of entries that are contained in the export"
            },
            "template_ids": {
              "type": "array",
              "description": "the ids of templates that are contained in the export"
            },
            "group_ids": {
              "type": "array",
              "description": "the ids of complete groups that are contained in the export"
            }
          },
          "required": [
            "project_ids",
            "entry_ids",
            "template_ids",
            "group_ids"
          ],
          "additionalProperties": false,
          "description": "object defining the export content scope"
        },
        "status": {
          "type": "string",
          "enum": [
            "NEW",
            "RUNNING",
            "FINISHED",
            "REMOVED",
            "ERROR",
            "QUEUED"
          ],
          "description": "the status of the export in the export life cycle"
        },
        "completion_date": {
          "type": [
            "string",
            "null"
          ],
          "description": "date when the export file creation was completed"
        },
        "creation_date": {
          "type": "string",
          "description": "date when the export was created"
        },
        "version_date": {
          "type": "string",
          "description": "date when the export was last modified"
        },
        "download_filename": {
          "type": "string",
          "description": "the filename used for the finished export downloadable file"
        },
        "download_href": {
          "type": [
            "string",
            "null"
          ],
          "description": "entity specific pre-signed download URL, that is valid until the date (in milliseconds) from the X-Labfolder-Expires parameter"
        },
        "settings": {
          "type": "object",
          "properties": {
            "include_page_header": {
              "type": "boolean",
              "description": "defines if PDF contains page headers",
              "default": true
            },
            "include_page_footer": {
              "type": "boolean",
              "description": "defines if PDF contains page footer",
              "default": true
            },
            "include_page_number": {
              "type": "boolean",
              "description": "defines if PDF contains page numbers",
              "default": true
            },
            "include_entry_header": {
              "type": "boolean",
              "description": "defines if entries in the PDF contain an entry headers",
              "default": true
            },
            "include_entry_footer": {
              "type": "boolean",
              "description": "defines if entries in the PDF contain an entry footers",
              "default": true
            },
            "include_entry_dates": {
              "type": "boolean",
              "description": "defines if entries in the PDF contain entry dates",
              "default": true
            },
            "include_tags": {
              "type": "boolean",
              "description": "defines if entries in the PDF contain entry tags",
              "default": true
            }
          },
          "required": [
            "include_page_header",
            "include_page_footer",
            "include_page_number",
            "include_entry_header",
            "include_entry_footer",
            "include_entry_dates",
            "include_tags"
          ]
        }
      },
      "required": [
        "id",
        "user_id",
        "type",
        "content",
        "status",
        "completion_date",
        "creation_date",
        "version_date",
        "download_filename",
        "settings"
      ]
    }
  ]
}

PDF Exports

List PDF Exports
GET/exports/pdf{?status,limit,offset}

Get all created PDF Exports the requesting user has created

Example URI

GET /exports/pdf?status=FINISHED&limit=&offset=
URI Parameters
HideShow
status
string (optional) Example: FINISHED

A comma separated list of statuses to be filtered.

Choices: NEW RUNNING FINISHED REMOVED ERROR QUEUED

limit
number (optional) Default: 20 

Maximum number of exports to return. The maximum for limit is 50 items.

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "id": "20e699a3-4764-461f-a4bc-d10d7cbba3f0",
    "user_id": "11038",
    "type": "PDF",
    "content": {
      "project_ids": [
        "36272"
      ],
      "entry_ids": [],
      "template_ids": [],
      "group_ids": []
    },
    "status": "FINISHED",
    "completion_date": "2019-02-01T13:35:30.789+0200",
    "creation_date": "2019-02-01T13:34:56.789+0200",
    "version_date": "2019-02-01T13:35:30.789+0200",
    "download_filename": "example_project.pdf",
    "download_href": "https://eln.labfolder.com/api/v2/exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285",
    "settings": {
      "include_page_header": true,
      "include_page_footer": true,
      "include_page_number": true,
      "include_entry_header": true,
      "include_entry_footer": true,
      "include_entry_dates": true,
      "include_tags": true
    }
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "description": "the unique id of the export"
      },
      "user_id": {
        "type": "string",
        "description": "the unique id of the user, who created the export"
      },
      "type": {
        "type": "string",
        "enum": [
          "PDF"
        ],
        "description": "the type of export"
      },
      "content": {
        "type": "object",
        "properties": {
          "project_ids": {
            "type": "array",
            "description": "the ids of projects that are contained in the export"
          },
          "entry_ids": {
            "type": "array",
            "description": "the ids of entries that are contained in the export"
          },
          "template_ids": {
            "type": "array",
            "description": "the ids of templates that are contained in the export"
          },
          "group_ids": {
            "type": "array",
            "description": "the ids of complete groups that are contained in the export"
          }
        },
        "required": [
          "project_ids",
          "entry_ids",
          "template_ids",
          "group_ids"
        ],
        "additionalProperties": false,
        "description": "object defining the export content scope"
      },
      "status": {
        "type": "string",
        "enum": [
          "NEW",
          "RUNNING",
          "FINISHED",
          "REMOVED",
          "ERROR",
          "QUEUED"
        ],
        "description": "the status of the export in the export life cycle"
      },
      "completion_date": {
        "type": [
          "string",
          "null"
        ],
        "description": "date when the export file creation was completed"
      },
      "creation_date": {
        "type": "string",
        "description": "date when the export was created"
      },
      "version_date": {
        "type": "string",
        "description": "date when the export was last modified"
      },
      "download_filename": {
        "type": "string",
        "description": "the filename used for the finished export downloadable file"
      },
      "download_href": {
        "type": [
          "string",
          "null"
        ],
        "description": "entity specific pre-signed download URL, that is valid until the date (in milliseconds) from the X-Labfolder-Expires parameter"
      },
      "settings": {
        "type": "object",
        "properties": {
          "include_page_header": {
            "type": "boolean",
            "description": "defines if PDF contains page headers",
            "default": true
          },
          "include_page_footer": {
            "type": "boolean",
            "description": "defines if PDF contains page footer",
            "default": true
          },
          "include_page_number": {
            "type": "boolean",
            "description": "defines if PDF contains page numbers",
            "default": true
          },
          "include_entry_header": {
            "type": "boolean",
            "description": "defines if entries in the PDF contain an entry headers",
            "default": true
          },
          "include_entry_footer": {
            "type": "boolean",
            "description": "defines if entries in the PDF contain an entry footers",
            "default": true
          },
          "include_entry_dates": {
            "type": "boolean",
            "description": "defines if entries in the PDF contain entry dates",
            "default": true
          },
          "include_tags": {
            "type": "boolean",
            "description": "defines if entries in the PDF contain entry tags",
            "default": true
          }
        },
        "required": [
          "include_page_header",
          "include_page_footer",
          "include_page_number",
          "include_entry_header",
          "include_entry_footer",
          "include_entry_dates",
          "include_tags"
        ]
      }
    },
    "required": [
      "id",
      "user_id",
      "type",
      "content",
      "status",
      "completion_date",
      "creation_date",
      "version_date",
      "download_filename",
      "settings"
    ]
  }
}

Get PDF Export
GET/exports/pdf/{id}

Returns the current version of the PDF export.

Example URI

GET /exports/pdf/ced8ca60-660b-4916-96a7-76b3258db135
URI Parameters
HideShow
id
string (required) Example: ced8ca60-660b-4916-96a7-76b3258db135

id of the PDF export

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "20e699a3-4764-461f-a4bc-d10d7cbba3f0",
  "user_id": "11038",
  "type": "PDF",
  "content": {
    "project_ids": [
      "36272"
    ],
    "entry_ids": [],
    "template_ids": [],
    "group_ids": []
  },
  "status": "FINISHED",
  "completion_date": "2019-02-01T13:35:30.789+0200",
  "creation_date": "2019-02-01T13:34:56.789+0200",
  "version_date": "2019-02-01T13:35:30.789+0200",
  "download_filename": "example_project.pdf",
  "download_href": "https://eln.labfolder.com/api/v2/exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285",
  "settings": {
    "include_page_header": true,
    "include_page_footer": true,
    "include_page_number": true,
    "include_entry_header": true,
    "include_entry_footer": true,
    "include_entry_dates": true,
    "include_tags": true
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the unique id of the export"
    },
    "user_id": {
      "type": "string",
      "description": "the unique id of the user, who created the export"
    },
    "type": {
      "type": "string",
      "enum": [
        "PDF"
      ],
      "description": "the type of export"
    },
    "content": {
      "type": "object",
      "properties": {
        "project_ids": {
          "type": "array",
          "description": "the ids of projects that are contained in the export"
        },
        "entry_ids": {
          "type": "array",
          "description": "the ids of entries that are contained in the export"
        },
        "template_ids": {
          "type": "array",
          "description": "the ids of templates that are contained in the export"
        },
        "group_ids": {
          "type": "array",
          "description": "the ids of complete groups that are contained in the export"
        }
      },
      "required": [
        "project_ids",
        "entry_ids",
        "template_ids",
        "group_ids"
      ],
      "additionalProperties": false,
      "description": "object defining the export content scope"
    },
    "status": {
      "type": "string",
      "enum": [
        "NEW",
        "RUNNING",
        "FINISHED",
        "REMOVED",
        "ERROR",
        "QUEUED"
      ],
      "description": "the status of the export in the export life cycle"
    },
    "completion_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "date when the export file creation was completed"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the export was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the export was last modified"
    },
    "download_filename": {
      "type": "string",
      "description": "the filename used for the finished export downloadable file"
    },
    "download_href": {
      "type": [
        "string",
        "null"
      ],
      "description": "entity specific pre-signed download URL, that is valid until the date (in milliseconds) from the X-Labfolder-Expires parameter"
    },
    "settings": {
      "type": "object",
      "properties": {
        "include_page_header": {
          "type": "boolean",
          "description": "defines if PDF contains page headers",
          "default": true
        },
        "include_page_footer": {
          "type": "boolean",
          "description": "defines if PDF contains page footer",
          "default": true
        },
        "include_page_number": {
          "type": "boolean",
          "description": "defines if PDF contains page numbers",
          "default": true
        },
        "include_entry_header": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain an entry headers",
          "default": true
        },
        "include_entry_footer": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain an entry footers",
          "default": true
        },
        "include_entry_dates": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain entry dates",
          "default": true
        },
        "include_tags": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain entry tags",
          "default": true
        }
      },
      "required": [
        "include_page_header",
        "include_page_footer",
        "include_page_number",
        "include_entry_header",
        "include_entry_footer",
        "include_entry_dates",
        "include_tags"
      ]
    }
  },
  "required": [
    "id",
    "user_id",
    "type",
    "content",
    "status",
    "completion_date",
    "creation_date",
    "version_date",
    "download_filename",
    "settings"
  ],
  "additionalProperties": false
}

Download PDF Export File
GET/exports/pdf/{id}/download

Download the result file of a finished PDF export.

Example URI

GET /exports/pdf/ced8ca60-660b-4916-96a7-76b3258db135/download
URI Parameters
HideShow
id
string (required) Example: ced8ca60-660b-4916-96a7-76b3258db135

id of the PDF export

Response  200
HideShow
Headers
Content-Type: application/pdf
Content-Disposition: `attachment;filename="labfolder_export.pdf"`

Create PDF Export
POST/exports/pdf

Create a PDF export of a project, a template, a single entry or all content the requesting user is the owner of.

Only one project ID, template ID, entry ID or group ID is valid to be submitted at a time to create a PDF export. However you can create a full export of all the content you own by simply not specifying any project_ids, template_ids, entry_ids or group_ids in the request.

Example URI

POST /exports/pdf
Request  Create PDF Export
HideShow
Headers
Content-Type: application/json
Body
{
  "download_filename": "example project",
  "settings": {},
  "content": {
    "project_ids": [
      "36272"
    ],
    "entry_ids": [],
    "template_ids": [],
    "group_ids": []
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "download_filename": {
      "type": "string",
      "description": "the filename that should be used for the finished export downloadable file"
    },
    "settings": {
      "type": "object",
      "properties": {
        "include_page_header": {
          "type": "boolean",
          "description": "defines if PDF contains page headers",
          "default": true
        },
        "include_page_footer": {
          "type": "boolean",
          "description": "defines if PDF contains page footer",
          "default": true
        },
        "include_page_number": {
          "type": "boolean",
          "description": "defines if PDF contains page numbers",
          "default": true
        },
        "include_entry_header": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain an entry headers",
          "default": true
        },
        "include_entry_footer": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain an entry footers",
          "default": true
        },
        "include_entry_dates": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain entry dates",
          "default": true
        },
        "include_tags": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain entry tags",
          "default": true
        }
      },
      "description": "json object defining custom settings for export content"
    },
    "content": {
      "type": "object",
      "properties": {
        "project_ids": {
          "type": "array",
          "description": "the ids of projects to be exported"
        },
        "entry_ids": {
          "type": "array",
          "description": "the ids of entries to be exported"
        },
        "template_ids": {
          "type": "array",
          "description": "the ids of templates to be exported"
        },
        "group_ids": {
          "type": "array",
          "description": "the ids of groups to be exported"
        }
      },
      "additionalProperties": false,
      "description": "object defining the export content scope"
    }
  }
}
Response  202
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0
Body
{
  "id": "20e699a3-4764-461f-a4bc-d10d7cbba3f0",
  "user_id": "11038",
  "type": "PDF",
  "content": {
    "project_ids": [
      "36272"
    ],
    "entry_ids": [],
    "template_ids": [],
    "group_ids": []
  },
  "status": "FINISHED",
  "completion_date": "2019-02-01T13:35:30.789+0200",
  "creation_date": "2019-02-01T13:34:56.789+0200",
  "version_date": "2019-02-01T13:35:30.789+0200",
  "download_filename": "example_project.pdf",
  "download_href": "https://eln.labfolder.com/api/v2/exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285",
  "settings": {
    "include_page_header": true,
    "include_page_footer": true,
    "include_page_number": true,
    "include_entry_header": true,
    "include_entry_footer": true,
    "include_entry_dates": true,
    "include_tags": true
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the unique id of the export"
    },
    "user_id": {
      "type": "string",
      "description": "the unique id of the user, who created the export"
    },
    "type": {
      "type": "string",
      "enum": [
        "PDF"
      ],
      "description": "the type of export"
    },
    "content": {
      "type": "object",
      "properties": {
        "project_ids": {
          "type": "array",
          "description": "the ids of projects that are contained in the export"
        },
        "entry_ids": {
          "type": "array",
          "description": "the ids of entries that are contained in the export"
        },
        "template_ids": {
          "type": "array",
          "description": "the ids of templates that are contained in the export"
        },
        "group_ids": {
          "type": "array",
          "description": "the ids of complete groups that are contained in the export"
        }
      },
      "required": [
        "project_ids",
        "entry_ids",
        "template_ids",
        "group_ids"
      ],
      "additionalProperties": false,
      "description": "object defining the export content scope"
    },
    "status": {
      "type": "string",
      "enum": [
        "NEW",
        "RUNNING",
        "FINISHED",
        "REMOVED",
        "ERROR",
        "QUEUED"
      ],
      "description": "the status of the export in the export life cycle"
    },
    "completion_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "date when the export file creation was completed"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the export was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the export was last modified"
    },
    "download_filename": {
      "type": "string",
      "description": "the filename used for the finished export downloadable file"
    },
    "download_href": {
      "type": [
        "string",
        "null"
      ],
      "description": "entity specific pre-signed download URL, that is valid until the date (in milliseconds) from the X-Labfolder-Expires parameter"
    },
    "settings": {
      "type": "object",
      "properties": {
        "include_page_header": {
          "type": "boolean",
          "description": "defines if PDF contains page headers",
          "default": true
        },
        "include_page_footer": {
          "type": "boolean",
          "description": "defines if PDF contains page footer",
          "default": true
        },
        "include_page_number": {
          "type": "boolean",
          "description": "defines if PDF contains page numbers",
          "default": true
        },
        "include_entry_header": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain an entry headers",
          "default": true
        },
        "include_entry_footer": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain an entry footers",
          "default": true
        },
        "include_entry_dates": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain entry dates",
          "default": true
        },
        "include_tags": {
          "type": "boolean",
          "description": "defines if entries in the PDF contain entry tags",
          "default": true
        }
      },
      "required": [
        "include_page_header",
        "include_page_footer",
        "include_page_number",
        "include_entry_header",
        "include_entry_footer",
        "include_entry_dates",
        "include_tags"
      ]
    }
  },
  "required": [
    "id",
    "user_id",
    "type",
    "content",
    "status",
    "completion_date",
    "creation_date",
    "version_date",
    "download_filename",
    "settings"
  ],
  "additionalProperties": false
}

XHTML Exports

List XHTML Exports
GET/exports/xhtml{?status,limit,offset}

Get all created XHTML Exports the requesting user has created

Example URI

GET /exports/xhtml?status=FINISHED&limit=&offset=
URI Parameters
HideShow
status
string (optional) Example: FINISHED

A comma separated list of statuses to be filtered.

Choices: NEW RUNNING FINISHED REMOVED ERROR QUEUED

limit
number (optional) Default: 20 

Maximum number of exports to return. The maximum for limit is 50 items.

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "id": "20e699a3-4764-461f-a4bc-d10d7cbba3f0",
    "user_id": "11038",
    "type": "XHTML",
    "content": {
      "project_ids": [
        "36272"
      ],
      "entry_ids": [],
      "template_ids": [],
      "group_ids": []
    },
    "status": "FINISHED",
    "completion_date": "2019-02-01T13:35:30.789+0200",
    "creation_date": "2019-02-01T13:34:56.789+0200",
    "version_date": "2019-02-01T13:35:30.789+0200",
    "download_filename": "my_labfolder_content.zip",
    "download_href": "https://eln.labfolder.com/api/v2/exports/xhtml/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "description": "the unique id of the export"
      },
      "user_id": {
        "type": "string",
        "description": "the unique id of the user, who created the export"
      },
      "type": {
        "type": "string",
        "enum": [
          "XHTML"
        ],
        "description": "the type of export"
      },
      "content": {
        "type": "object",
        "properties": {
          "project_ids": {
            "type": "array",
            "description": "the ids of projects that are contained in the export"
          },
          "entry_ids": {
            "type": "array",
            "description": "the ids of entries that are contained in the export"
          },
          "template_ids": {
            "type": "array",
            "description": "the ids of templates that are contained in the export"
          },
          "group_ids": {
            "type": "array",
            "description": "the ids of complete groups that are contained in the export"
          }
        },
        "required": [
          "project_ids",
          "entry_ids",
          "template_ids",
          "group_ids"
        ],
        "additionalProperties": false,
        "description": "object defining the export content scope"
      },
      "status": {
        "type": "string",
        "enum": [
          "NEW",
          "RUNNING",
          "FINISHED",
          "REMOVED",
          "ERROR",
          "QUEUED"
        ],
        "description": "the status of the export in the export life cycle"
      },
      "completion_date": {
        "type": [
          "string",
          "null"
        ],
        "description": "date when the export file creation was completed"
      },
      "creation_date": {
        "type": "string",
        "description": "date when the export was created"
      },
      "version_date": {
        "type": "string",
        "description": "date when the export was last modified"
      },
      "download_filename": {
        "type": "string",
        "description": "the filename used for the finished export downloadable file"
      },
      "download_href": {
        "type": [
          "string",
          "null"
        ],
        "description": "entity specific pre-signed download URL, that is valid until the date (in milliseconds) from the X-Labfolder-Expires parameter"
      }
    },
    "required": [
      "id",
      "user_id",
      "type",
      "content",
      "status",
      "completion_date",
      "creation_date",
      "version_date",
      "download_filename"
    ]
  }
}

Get XHTML Export
GET/exports/xhtml/{id}

Returns the current version of the XHTML export.

Example URI

GET /exports/xhtml/a6e15cda-a48c-463c-bcc4-cf92c8323d8b
URI Parameters
HideShow
id
string (required) Example: a6e15cda-a48c-463c-bcc4-cf92c8323d8b

id of the XHTML export

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "20e699a3-4764-461f-a4bc-d10d7cbba3f0",
  "user_id": "11038",
  "type": "XHTML",
  "content": {
    "project_ids": [
      "36272"
    ],
    "entry_ids": [],
    "template_ids": [],
    "group_ids": []
  },
  "status": "FINISHED",
  "completion_date": "2019-02-01T13:35:30.789+0200",
  "creation_date": "2019-02-01T13:34:56.789+0200",
  "version_date": "2019-02-01T13:35:30.789+0200",
  "download_filename": "my_labfolder_content.zip",
  "download_href": "https://eln.labfolder.com/api/v2/exports/xhtml/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the unique id of the export"
    },
    "user_id": {
      "type": "string",
      "description": "the unique id of the user, who created the export"
    },
    "type": {
      "type": "string",
      "enum": [
        "XHTML"
      ],
      "description": "the type of export"
    },
    "content": {
      "type": "object",
      "properties": {
        "project_ids": {
          "type": "array",
          "description": "the ids of projects that are contained in the export"
        },
        "entry_ids": {
          "type": "array",
          "description": "the ids of entries that are contained in the export"
        },
        "template_ids": {
          "type": "array",
          "description": "the ids of templates that are contained in the export"
        },
        "group_ids": {
          "type": "array",
          "description": "the ids of complete groups that are contained in the export"
        }
      },
      "required": [
        "project_ids",
        "entry_ids",
        "template_ids",
        "group_ids"
      ],
      "additionalProperties": false,
      "description": "object defining the export content scope"
    },
    "status": {
      "type": "string",
      "enum": [
        "NEW",
        "RUNNING",
        "FINISHED",
        "REMOVED",
        "ERROR",
        "QUEUED"
      ],
      "description": "the status of the export in the export life cycle"
    },
    "completion_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "date when the export file creation was completed"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the export was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the export was last modified"
    },
    "download_filename": {
      "type": "string",
      "description": "the filename used for the finished export downloadable file"
    },
    "download_href": {
      "type": [
        "string",
        "null"
      ],
      "description": "entity specific pre-signed download URL, that is valid until the date (in milliseconds) from the X-Labfolder-Expires parameter"
    }
  },
  "required": [
    "id",
    "user_id",
    "type",
    "content",
    "status",
    "completion_date",
    "creation_date",
    "version_date",
    "download_filename"
  ],
  "additionalProperties": false
}

Download XHTML Export File
GET/exports/xhtml/{id}/download

Download the result file of a finished XHTML export.

Example URI

GET /exports/xhtml/a6e15cda-a48c-463c-bcc4-cf92c8323d8b/download
URI Parameters
HideShow
id
string (required) Example: a6e15cda-a48c-463c-bcc4-cf92c8323d8b

id of the XHTML export

Response  200
HideShow
Headers
Content-Type: application/zip
Content-Disposition: `attachment;filename="my_labfolder_data.zip"`

Create XHTML Export
POST/exports/xhtml

Create a XHTML export of all content (Projects with their Entries & Templates) the requesting user owns.

Example URI

POST /exports/xhtml
Request  Create XHTML Export
Response  202
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /exports/xhtml/20e699a3-4764-461f-a4bc-d10d7cbba3f0
Body
{
  "id": "20e699a3-4764-461f-a4bc-d10d7cbba3f0",
  "user_id": "11038",
  "type": "XHTML",
  "content": {
    "project_ids": [
      "36272"
    ],
    "entry_ids": [],
    "template_ids": [],
    "group_ids": []
  },
  "status": "FINISHED",
  "completion_date": "2019-02-01T13:35:30.789+0200",
  "creation_date": "2019-02-01T13:34:56.789+0200",
  "version_date": "2019-02-01T13:35:30.789+0200",
  "download_filename": "my_labfolder_content.zip",
  "download_href": "https://eln.labfolder.com/api/v2/exports/xhtml/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the unique id of the export"
    },
    "user_id": {
      "type": "string",
      "description": "the unique id of the user, who created the export"
    },
    "type": {
      "type": "string",
      "enum": [
        "XHTML"
      ],
      "description": "the type of export"
    },
    "content": {
      "type": "object",
      "properties": {
        "project_ids": {
          "type": "array",
          "description": "the ids of projects that are contained in the export"
        },
        "entry_ids": {
          "type": "array",
          "description": "the ids of entries that are contained in the export"
        },
        "template_ids": {
          "type": "array",
          "description": "the ids of templates that are contained in the export"
        },
        "group_ids": {
          "type": "array",
          "description": "the ids of complete groups that are contained in the export"
        }
      },
      "required": [
        "project_ids",
        "entry_ids",
        "template_ids",
        "group_ids"
      ],
      "additionalProperties": false,
      "description": "object defining the export content scope"
    },
    "status": {
      "type": "string",
      "enum": [
        "NEW",
        "RUNNING",
        "FINISHED",
        "REMOVED",
        "ERROR",
        "QUEUED"
      ],
      "description": "the status of the export in the export life cycle"
    },
    "completion_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "date when the export file creation was completed"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the export was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the export was last modified"
    },
    "download_filename": {
      "type": "string",
      "description": "the filename used for the finished export downloadable file"
    },
    "download_href": {
      "type": [
        "string",
        "null"
      ],
      "description": "entity specific pre-signed download URL, that is valid until the date (in milliseconds) from the X-Labfolder-Expires parameter"
    }
  },
  "required": [
    "id",
    "user_id",
    "type",
    "content",
    "status",
    "completion_date",
    "creation_date",
    "version_date",
    "download_filename"
  ],
  "additionalProperties": false
}

Material Database

Material Databases

List Material Databases
GET/mdb/databases

Returns the list of all material databases

Example URI

GET /mdb/databases
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "title": "Luke's Private MDB",
    "id": "c8ea2e7e-3755-497f-bd03-6b568dda025b",
    "owner_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display name of the mdb"
      },
      "id": {
        "type": "string",
        "description": "the unique id of the mdb"
      },
      "owner_id": {
        "type": "string",
        "description": "the id of the original author of this mdb"
      },
      "creation_date": {
        "type": "string",
        "description": "the creation date of the mdb"
      },
      "version_date": {
        "type": "string",
        "description": "the last modification date of the mdb"
      }
    },
    "required": [
      "title",
      "id",
      "owner_id",
      "creation_date",
      "version_date"
    ]
  }
}

Get Material Database
GET/mdb/databases/{id}

Returns the material database

Example URI

GET /mdb/databases/1935c7cf-d340-4dc2-a0ed-f3ac85bc2874
URI Parameters
HideShow
id
string (required) Example: 1935c7cf-d340-4dc2-a0ed-f3ac85bc2874

id of the mdb

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's Private MDB",
  "id": "c8ea2e7e-3755-497f-bd03-6b568dda025b",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the mdb"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the mdb"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author of this mdb"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "creation_date",
    "version_date"
  ]
}

Create Material Database
POST/mdb/databases

Create a material database

Example URI

POST /mdb/databases
Request  Create Material Database
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private MDB"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the mdb"
    }
  },
  "required": [
    "title"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /mdb/databases/1234
Body
{
  "title": "Luke's Private MDB",
  "id": "c8ea2e7e-3755-497f-bd03-6b568dda025b",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the mdb"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the mdb"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author of this mdb"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "creation_date",
    "version_date"
  ]
}

Update Material Database
PUT/mdb/databases/{id}

Update a material database

Example URI

PUT /mdb/databases/c8ea2e7e-3755-497f-bd03-6b568dda025b
URI Parameters
HideShow
id
string (required) Example: c8ea2e7e-3755-497f-bd03-6b568dda025b

id of the mdb

Request  Update Material Database
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private MDB",
  "id": "c8ea2e7e-3755-497f-bd03-6b568dda025b"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the mdb"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the mdb"
    }
  },
  "required": [
    "title",
    "id"
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's Private MDB",
  "id": "c8ea2e7e-3755-497f-bd03-6b568dda025b",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the mdb"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the mdb"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author of this mdb"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "creation_date",
    "version_date"
  ]
}

Delete Material Database
DELETE/mdb/databases/{id}

Deletes the Material Database. Note: the entity is not deleted, but is flagged as ‘hidden’.

Example URI

DELETE /mdb/databases/c8ea2e7e-3755-497f-bd03-6b568dda025b
URI Parameters
HideShow
id
string (required) Example: c8ea2e7e-3755-497f-bd03-6b568dda025b

id of the mdb

Response  204

MDB Categories

List Categories
GET/mdb/categories{?mdb_id}

Returns the list of all mdb categories for the given material database

Example URI

GET /mdb/categories?mdb_id=1935c7cf-d340-4dc2-a0ed-f3ac85bc2874
URI Parameters
HideShow
mdb_id
string (required) Example: 1935c7cf-d340-4dc2-a0ed-f3ac85bc2874

id of the material database

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "title": "Luke's Private Vehicles",
    "attributes": [
      {
        "type": "Text",
        "title": "Model",
        "mandatory": false
      }
    ],
    "mdb_id": "8f20ed8d-2e28-41c7-8233-d47874167a70",
    "id": "76625e69-52eb-40b5-a610-99ab8b801cf9",
    "creator_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display name of the mdb"
      },
      "attributes": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Text",
                "Date",
                "Number"
              ]
            },
            "title": {
              "type": "string",
              "description": "the display title of the attribute"
            },
            "mandatory": {
              "type": "boolean",
              "description": "is a value mandatory for this attribute"
            }
          },
          "required": [
            "type",
            "title",
            "mandatory"
          ]
        },
        "description": "The attributes for this item category"
      },
      "mdb_id": {
        "type": "string",
        "description": "the id of the material database this category is associated with"
      },
      "id": {
        "type": "string",
        "description": "the id of the category"
      },
      "creator_id": {
        "type": "string",
        "description": "the id of the original author"
      },
      "creation_date": {
        "type": "string",
        "description": "the creation date of the item category"
      },
      "version_date": {
        "type": "string",
        "description": "the last modification date of the item category"
      }
    },
    "required": [
      "title",
      "mdb_id",
      "id",
      "creator_id",
      "creation_date",
      "version_date"
    ]
  }
}

Get Category
GET/mdb/categories/{id}

Returns the category

Example URI

GET /mdb/categories/e87e6534-2ae0-4139-bc48-cc668f330069
URI Parameters
HideShow
id
string (required) Example: e87e6534-2ae0-4139-bc48-cc668f330069

id of the category

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's Private Vehicles",
  "attributes": [
    {
      "type": "Text",
      "title": "Model",
      "mandatory": false
    }
  ],
  "mdb_id": "8f20ed8d-2e28-41c7-8233-d47874167a70",
  "id": "76625e69-52eb-40b5-a610-99ab8b801cf9",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the mdb"
    },
    "attributes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Text",
              "Date",
              "Number"
            ]
          },
          "title": {
            "type": "string",
            "description": "the display title of the attribute"
          },
          "mandatory": {
            "type": "boolean",
            "description": "is a value mandatory for this attribute"
          }
        },
        "required": [
          "type",
          "title",
          "mandatory"
        ]
      },
      "description": "The attributes for this item category"
    },
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this category is associated with"
    },
    "id": {
      "type": "string",
      "description": "the id of the category"
    },
    "creator_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the item category"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the item category"
    }
  },
  "required": [
    "title",
    "mdb_id",
    "id",
    "creator_id",
    "creation_date",
    "version_date"
  ]
}

Delete Category
DELETE/mdb/categories/{id}

Deletes the Category. Note: the entity is not deleted, but is flagged as ‘hidden’.

Example URI

DELETE /mdb/categories/b10b785d-d87d-48cf-9c0b-d7be08f377b2
URI Parameters
HideShow
id
string (required) Example: b10b785d-d87d-48cf-9c0b-d7be08f377b2

id of the category to delete

Response  204

MDB Category Attributes

List Default Category Attributes
GET/mdb/categories/attributes/default

Returns the default list of category attributes

Example URI

GET /mdb/categories/attributes/default
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "title": "General",
    "attributes": [
      {
        "type": "Text",
        "title": "Model",
        "mandatory": false
      }
    ]
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display title"
      },
      "attributes": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Text",
                "Date",
                "Number"
              ]
            },
            "title": {
              "type": "string",
              "description": "the display title of the attribute"
            },
            "mandatory": {
              "type": "boolean",
              "description": "is a value mandatory for this attribute"
            }
          },
          "required": [
            "type",
            "title",
            "mandatory"
          ]
        },
        "description": "the fields of the group"
      }
    },
    "required": [
      "title"
    ]
  }
}

MDB Items

List Items
GET/mdb/items{?category_id,keyword,expand}

Returns the list of all items sorted by display title

Example URI

GET /mdb/items?category_id=&keyword=&expand=
URI Parameters
HideShow
category_id
string (optional) 

The category id to show items for. If none provided will show all items.

keyword
string (optional) 

The search term to filter items by title. If not provided it will not filter.

expand
string (optional) 

A command separated list of related domain objects that should be expanded for all items returned.

Choices: category

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
    "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
    "title": "X-Wing Fighter",
    "id": "1d573349-347b-4e46-a956-863d4e2db356",
    "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
    "creator_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version": 8,
    "version_count": 10,
    "version_date": "2017-02-15T12:34:56.789+0200",
    "version_author_id": "11040",
    "custom_attributes": {
      "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
    },
    "status": "IN_STOCK"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "mdb_id": {
        "type": "string",
        "description": "the id of the material database this item belongs to"
      },
      "category_id": {
        "type": "string",
        "description": "the id of the category used for creating this item `templateId`"
      },
      "title": {
        "type": "string",
        "description": "the display name of the item"
      },
      "id": {
        "type": "string",
        "description": "the stable pointer to the most current version `itemId`"
      },
      "version_id": {
        "type": "string",
        "description": "the unique id of the mdb item"
      },
      "creator_id": {
        "type": "string",
        "description": "the id of the original author of this item"
      },
      "creation_date": {
        "type": "string",
        "description": "the creation date of the mdb item"
      },
      "version": {
        "type": "number",
        "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
      },
      "version_count": {
        "type": "number",
        "description": "the total number of versions available"
      },
      "version_date": {
        "type": "string",
        "description": "the last modification date of the mdb item"
      },
      "version_author_id": {
        "type": "string",
        "description": "the id of the person that edited this version of the item"
      },
      "custom_attributes": {
        "type": "object",
        "properties": {
          "0553c003-9014-47ef-9522-115ad7d4b3a1": {
            "type": [
              "string",
              "null"
            ],
            "description": "The attribute id plus it's associated value"
          }
        },
        "description": "The attribute values of this mdb item according to the category field"
      },
      "status": {
        "type": "string",
        "enum": [
          "IN_STOCK",
          "OUT_STOCK",
          "DELETED",
          "ORDERED"
        ],
        "description": "the stock status of the item"
      }
    },
    "required": [
      "mdb_id",
      "category_id",
      "title",
      "id",
      "version_id",
      "creator_id",
      "creation_date",
      "version",
      "version_count",
      "version_date",
      "version_author_id",
      "custom_attributes",
      "status"
    ]
  }
}
Request  ?expand=category
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
    "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
    "title": "X-Wing Fighter",
    "id": "1d573349-347b-4e46-a956-863d4e2db356",
    "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
    "creator_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version": 8,
    "version_count": 10,
    "version_date": "2017-02-15T12:34:56.789+0200",
    "version_author_id": "11040",
    "custom_attributes": {
      "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
    },
    "status": "IN_STOCK",
    "category": {
      "title": "Luke's Private Vehicles",
      "attributes": [
        {
          "type": "Text",
          "title": "Model",
          "mandatory": false
        }
      ],
      "mdb_id": "8f20ed8d-2e28-41c7-8233-d47874167a70",
      "id": "76625e69-52eb-40b5-a610-99ab8b801cf9",
      "creator_id": "11038",
      "creation_date": "2017-02-10T12:34:56.789+0200",
      "version_date": "2017-02-15T12:34:56.789+0200"
    }
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "mdb_id": {
        "type": "string",
        "description": "the id of the material database this item belongs to"
      },
      "category_id": {
        "type": "string",
        "description": "the id of the category used for creating this item `templateId`"
      },
      "title": {
        "type": "string",
        "description": "the display name of the item"
      },
      "id": {
        "type": "string",
        "description": "the stable pointer to the most current version `itemId`"
      },
      "version_id": {
        "type": "string",
        "description": "the unique id of the mdb item"
      },
      "creator_id": {
        "type": "string",
        "description": "the id of the original author of this item"
      },
      "creation_date": {
        "type": "string",
        "description": "the creation date of the mdb item"
      },
      "version": {
        "type": "number",
        "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
      },
      "version_count": {
        "type": "number",
        "description": "the total number of versions available"
      },
      "version_date": {
        "type": "string",
        "description": "the last modification date of the mdb item"
      },
      "version_author_id": {
        "type": "string",
        "description": "the id of the person that edited this version of the item"
      },
      "custom_attributes": {
        "type": "object",
        "properties": {
          "0553c003-9014-47ef-9522-115ad7d4b3a1": {
            "type": [
              "string",
              "null"
            ],
            "description": "The attribute id plus it's associated value"
          }
        },
        "description": "The attribute values of this mdb item according to the category field"
      },
      "status": {
        "type": "string",
        "enum": [
          "IN_STOCK",
          "OUT_STOCK",
          "DELETED",
          "ORDERED"
        ],
        "description": "the stock status of the item"
      },
      "category": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "the display name of the mdb"
          },
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "Text",
                    "Date",
                    "Number"
                  ]
                },
                "title": {
                  "type": "string",
                  "description": "the display title of the attribute"
                },
                "mandatory": {
                  "type": "boolean",
                  "description": "is a value mandatory for this attribute"
                }
              },
              "required": [
                "type",
                "title",
                "mandatory"
              ]
            },
            "description": "The attributes for this item category"
          },
          "mdb_id": {
            "type": "string",
            "description": "the id of the material database this category is associated with"
          },
          "id": {
            "type": "string",
            "description": "the id of the category"
          },
          "creator_id": {
            "type": "string",
            "description": "the id of the original author"
          },
          "creation_date": {
            "type": "string",
            "description": "the creation date of the item category"
          },
          "version_date": {
            "type": "string",
            "description": "the last modification date of the item category"
          }
        },
        "required": [
          "title",
          "mdb_id",
          "id",
          "creator_id",
          "creation_date",
          "version_date"
        ],
        "description": "the category referenced by the `category_id` property"
      }
    },
    "required": [
      "mdb_id",
      "category_id",
      "title",
      "id",
      "version_id",
      "creator_id",
      "creation_date",
      "version",
      "version_count",
      "version_date",
      "version_author_id",
      "custom_attributes",
      "status",
      "category"
    ]
  }
}

Get Item
GET/mdb/items/{id}/{?expand}

Returns the current version of a material database item

TODO: should we mention 404 response for deleted items here?

Example URI

GET /mdb/items/d395ff8e-3430-4cb5-8d34-b0a3399bf6b3/?expand=
URI Parameters
HideShow
id
string (required) Example: d395ff8e-3430-4cb5-8d34-b0a3399bf6b3

stable id of item

expand
string (optional) 

A command separated list of related domain objects that should be expanded for all items returned.

Choices: category

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "id": "1d573349-347b-4e46-a956-863d4e2db356",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version": 8,
  "version_count": 10,
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version_author_id": "11040",
  "custom_attributes": {
    "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
  },
  "status": "IN_STOCK"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `itemId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the mdb item"
    },
    "creator_id": {
      "type": "string",
      "description": "the id of the original author of this item"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb item"
    },
    "version": {
      "type": "number",
      "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
    },
    "version_count": {
      "type": "number",
      "description": "the total number of versions available"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb item"
    },
    "version_author_id": {
      "type": "string",
      "description": "the id of the person that edited this version of the item"
    },
    "custom_attributes": {
      "type": "object",
      "properties": {
        "0553c003-9014-47ef-9522-115ad7d4b3a1": {
          "type": [
            "string",
            "null"
          ],
          "description": "The attribute id plus it's associated value"
        }
      },
      "description": "The attribute values of this mdb item according to the category field"
    },
    "status": {
      "type": "string",
      "enum": [
        "IN_STOCK",
        "OUT_STOCK",
        "DELETED",
        "ORDERED"
      ],
      "description": "the stock status of the item"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "id",
    "version_id",
    "creator_id",
    "creation_date",
    "version",
    "version_count",
    "version_date",
    "version_author_id",
    "custom_attributes",
    "status"
  ]
}
Request  ?expand=category
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "id": "1d573349-347b-4e46-a956-863d4e2db356",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version": 8,
  "version_count": 10,
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version_author_id": "11040",
  "custom_attributes": {
    "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
  },
  "status": "IN_STOCK",
  "category": {
    "title": "Luke's Private Vehicles",
    "attributes": [
      {
        "type": "Text",
        "title": "Model",
        "mandatory": false
      }
    ],
    "mdb_id": "8f20ed8d-2e28-41c7-8233-d47874167a70",
    "id": "76625e69-52eb-40b5-a610-99ab8b801cf9",
    "creator_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `itemId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the mdb item"
    },
    "creator_id": {
      "type": "string",
      "description": "the id of the original author of this item"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb item"
    },
    "version": {
      "type": "number",
      "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
    },
    "version_count": {
      "type": "number",
      "description": "the total number of versions available"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb item"
    },
    "version_author_id": {
      "type": "string",
      "description": "the id of the person that edited this version of the item"
    },
    "custom_attributes": {
      "type": "object",
      "properties": {
        "0553c003-9014-47ef-9522-115ad7d4b3a1": {
          "type": [
            "string",
            "null"
          ],
          "description": "The attribute id plus it's associated value"
        }
      },
      "description": "The attribute values of this mdb item according to the category field"
    },
    "status": {
      "type": "string",
      "enum": [
        "IN_STOCK",
        "OUT_STOCK",
        "DELETED",
        "ORDERED"
      ],
      "description": "the stock status of the item"
    },
    "category": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "the display name of the mdb"
        },
        "attributes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Text",
                  "Date",
                  "Number"
                ]
              },
              "title": {
                "type": "string",
                "description": "the display title of the attribute"
              },
              "mandatory": {
                "type": "boolean",
                "description": "is a value mandatory for this attribute"
              }
            },
            "required": [
              "type",
              "title",
              "mandatory"
            ]
          },
          "description": "The attributes for this item category"
        },
        "mdb_id": {
          "type": "string",
          "description": "the id of the material database this category is associated with"
        },
        "id": {
          "type": "string",
          "description": "the id of the category"
        },
        "creator_id": {
          "type": "string",
          "description": "the id of the original author"
        },
        "creation_date": {
          "type": "string",
          "description": "the creation date of the item category"
        },
        "version_date": {
          "type": "string",
          "description": "the last modification date of the item category"
        }
      },
      "required": [
        "title",
        "mdb_id",
        "id",
        "creator_id",
        "creation_date",
        "version_date"
      ],
      "description": "the category referenced by the `category_id` property"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "id",
    "version_id",
    "creator_id",
    "creation_date",
    "version",
    "version_count",
    "version_date",
    "version_author_id",
    "custom_attributes",
    "status",
    "category"
  ]
}

Get Item Version
GET/mdb/items/{id}/versions/{version_id}/{?expand}

Returns the specified version of a material database item

Example URI

GET /mdb/items/d395ff8e-3430-4cb5-8d34-b0a3399bf6b3/versions/2493713e-9316-47b5-b9c8-c83332bdee30/?expand=
URI Parameters
HideShow
id
string (required) Example: d395ff8e-3430-4cb5-8d34-b0a3399bf6b3

stable id of item

version_id
string (required) Example: 2493713e-9316-47b5-b9c8-c83332bdee30

version of the item

expand
string (optional) 

A command separated list of related domain objects that should be expanded for all items returned.

Choices: category

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "id": "1d573349-347b-4e46-a956-863d4e2db356",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version": 8,
  "version_count": 10,
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version_author_id": "11040",
  "custom_attributes": {
    "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
  },
  "status": "IN_STOCK"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `itemId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the mdb item"
    },
    "creator_id": {
      "type": "string",
      "description": "the id of the original author of this item"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb item"
    },
    "version": {
      "type": "number",
      "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
    },
    "version_count": {
      "type": "number",
      "description": "the total number of versions available"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb item"
    },
    "version_author_id": {
      "type": "string",
      "description": "the id of the person that edited this version of the item"
    },
    "custom_attributes": {
      "type": "object",
      "properties": {
        "0553c003-9014-47ef-9522-115ad7d4b3a1": {
          "type": [
            "string",
            "null"
          ],
          "description": "The attribute id plus it's associated value"
        }
      },
      "description": "The attribute values of this mdb item according to the category field"
    },
    "status": {
      "type": "string",
      "enum": [
        "IN_STOCK",
        "OUT_STOCK",
        "DELETED",
        "ORDERED"
      ],
      "description": "the stock status of the item"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "id",
    "version_id",
    "creator_id",
    "creation_date",
    "version",
    "version_count",
    "version_date",
    "version_author_id",
    "custom_attributes",
    "status"
  ]
}
Request  ?expand=category
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "id": "1d573349-347b-4e46-a956-863d4e2db356",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version": 8,
  "version_count": 10,
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version_author_id": "11040",
  "custom_attributes": {
    "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
  },
  "status": "IN_STOCK",
  "category": {
    "title": "Luke's Private Vehicles",
    "attributes": [
      {
        "type": "Text",
        "title": "Model",
        "mandatory": false
      }
    ],
    "mdb_id": "8f20ed8d-2e28-41c7-8233-d47874167a70",
    "id": "76625e69-52eb-40b5-a610-99ab8b801cf9",
    "creator_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `itemId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the mdb item"
    },
    "creator_id": {
      "type": "string",
      "description": "the id of the original author of this item"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb item"
    },
    "version": {
      "type": "number",
      "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
    },
    "version_count": {
      "type": "number",
      "description": "the total number of versions available"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb item"
    },
    "version_author_id": {
      "type": "string",
      "description": "the id of the person that edited this version of the item"
    },
    "custom_attributes": {
      "type": "object",
      "properties": {
        "0553c003-9014-47ef-9522-115ad7d4b3a1": {
          "type": [
            "string",
            "null"
          ],
          "description": "The attribute id plus it's associated value"
        }
      },
      "description": "The attribute values of this mdb item according to the category field"
    },
    "status": {
      "type": "string",
      "enum": [
        "IN_STOCK",
        "OUT_STOCK",
        "DELETED",
        "ORDERED"
      ],
      "description": "the stock status of the item"
    },
    "category": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "the display name of the mdb"
        },
        "attributes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Text",
                  "Date",
                  "Number"
                ]
              },
              "title": {
                "type": "string",
                "description": "the display title of the attribute"
              },
              "mandatory": {
                "type": "boolean",
                "description": "is a value mandatory for this attribute"
              }
            },
            "required": [
              "type",
              "title",
              "mandatory"
            ]
          },
          "description": "The attributes for this item category"
        },
        "mdb_id": {
          "type": "string",
          "description": "the id of the material database this category is associated with"
        },
        "id": {
          "type": "string",
          "description": "the id of the category"
        },
        "creator_id": {
          "type": "string",
          "description": "the id of the original author"
        },
        "creation_date": {
          "type": "string",
          "description": "the creation date of the item category"
        },
        "version_date": {
          "type": "string",
          "description": "the last modification date of the item category"
        }
      },
      "required": [
        "title",
        "mdb_id",
        "id",
        "creator_id",
        "creation_date",
        "version_date"
      ],
      "description": "the category referenced by the `category_id` property"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "id",
    "version_id",
    "creator_id",
    "creation_date",
    "version",
    "version_count",
    "version_date",
    "version_author_id",
    "custom_attributes",
    "status",
    "category"
  ]
}

Create Item
POST/mdb/items

Create a material database item

Example URI

POST /mdb/items
Request  Create Item
HideShow
Headers
Content-Type: application/json
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /mdb/items/1d573349-347b-4e46-a956-863d4e2db356
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "id": "1d573349-347b-4e46-a956-863d4e2db356",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version": 8,
  "version_count": 10,
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version_author_id": "11040",
  "custom_attributes": {
    "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
  },
  "status": "IN_STOCK"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `itemId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the mdb item"
    },
    "creator_id": {
      "type": "string",
      "description": "the id of the original author of this item"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb item"
    },
    "version": {
      "type": "number",
      "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
    },
    "version_count": {
      "type": "number",
      "description": "the total number of versions available"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb item"
    },
    "version_author_id": {
      "type": "string",
      "description": "the id of the person that edited this version of the item"
    },
    "custom_attributes": {
      "type": "object",
      "properties": {
        "0553c003-9014-47ef-9522-115ad7d4b3a1": {
          "type": [
            "string",
            "null"
          ],
          "description": "The attribute id plus it's associated value"
        }
      },
      "description": "The attribute values of this mdb item according to the category field"
    },
    "status": {
      "type": "string",
      "enum": [
        "IN_STOCK",
        "OUT_STOCK",
        "DELETED",
        "ORDERED"
      ],
      "description": "the stock status of the item"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "id",
    "version_id",
    "creator_id",
    "creation_date",
    "version",
    "version_count",
    "version_date",
    "version_author_id",
    "custom_attributes",
    "status"
  ]
}
Request  Create Item with Custom Attribute
HideShow
Headers
Content-Type: application/json
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "custom_attributes": {
    "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "custom_attributes": {
      "type": "object",
      "properties": {
        "0553c003-9014-47ef-9522-115ad7d4b3a1": {
          "type": [
            "string",
            "null"
          ],
          "description": "The attribute id plus it's associated value"
        }
      },
      "description": "The attribute values of this mdb item according to the category field"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "custom_attributes"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /mdb/items/1d573349-347b-4e46-a956-863d4e2db356
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "id": "1d573349-347b-4e46-a956-863d4e2db356",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version": 8,
  "version_count": 10,
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version_author_id": "11040",
  "custom_attributes": {
    "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
  },
  "status": "IN_STOCK"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `itemId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the mdb item"
    },
    "creator_id": {
      "type": "string",
      "description": "the id of the original author of this item"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb item"
    },
    "version": {
      "type": "number",
      "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
    },
    "version_count": {
      "type": "number",
      "description": "the total number of versions available"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb item"
    },
    "version_author_id": {
      "type": "string",
      "description": "the id of the person that edited this version of the item"
    },
    "custom_attributes": {
      "type": "object",
      "properties": {
        "0553c003-9014-47ef-9522-115ad7d4b3a1": {
          "type": [
            "string",
            "null"
          ],
          "description": "The attribute id plus it's associated value"
        }
      },
      "description": "The attribute values of this mdb item according to the category field"
    },
    "status": {
      "type": "string",
      "enum": [
        "IN_STOCK",
        "OUT_STOCK",
        "DELETED",
        "ORDERED"
      ],
      "description": "the stock status of the item"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "id",
    "version_id",
    "creator_id",
    "creation_date",
    "version",
    "version_count",
    "version_date",
    "version_author_id",
    "custom_attributes",
    "status"
  ]
}
Request  Create Item With Custom Stock Status
HideShow
Headers
Content-Type: application/json
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "status": "IN_STOCK"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "status": {
      "type": "string",
      "enum": [
        "IN_STOCK",
        "OUT_STOCK",
        "DELETED",
        "ORDERED"
      ],
      "description": "the stock status of the item"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "status"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /mdb/items/1d573349-347b-4e46-a956-863d4e2db356
Body
{
  "mdb_id": "1935c7cf-d340-4dc2-a0ed-f3ac85bc2874",
  "category_id": "e87e6534-2ae0-4139-bc48-cc668f330069",
  "title": "X-Wing Fighter",
  "id": "1d573349-347b-4e46-a956-863d4e2db356",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version": 8,
  "version_count": 10,
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version_author_id": "11040",
  "custom_attributes": {
    "0553c003-9014-47ef-9522-115ad7d4b3a1": "1001"
  },
  "status": "IN_STOCK"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "mdb_id": {
      "type": "string",
      "description": "the id of the material database this item belongs to"
    },
    "category_id": {
      "type": "string",
      "description": "the id of the category used for creating this item `templateId`"
    },
    "title": {
      "type": "string",
      "description": "the display name of the item"
    },
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version `itemId`"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the mdb item"
    },
    "creator_id": {
      "type": "string",
      "description": "the id of the original author of this item"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the mdb item"
    },
    "version": {
      "type": "number",
      "description": "the version number (it is automatically incremented for each modification on the item) `itemVersion`"
    },
    "version_count": {
      "type": "number",
      "description": "the total number of versions available"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the mdb item"
    },
    "version_author_id": {
      "type": "string",
      "description": "the id of the person that edited this version of the item"
    },
    "custom_attributes": {
      "type": "object",
      "properties": {
        "0553c003-9014-47ef-9522-115ad7d4b3a1": {
          "type": [
            "string",
            "null"
          ],
          "description": "The attribute id plus it's associated value"
        }
      },
      "description": "The attribute values of this mdb item according to the category field"
    },
    "status": {
      "type": "string",
      "enum": [
        "IN_STOCK",
        "OUT_STOCK",
        "DELETED",
        "ORDERED"
      ],
      "description": "the stock status of the item"
    }
  },
  "required": [
    "mdb_id",
    "category_id",
    "title",
    "id",
    "version_id",
    "creator_id",
    "creation_date",
    "version",
    "version_count",
    "version_date",
    "version_author_id",
    "custom_attributes",
    "status"
  ]
}

Delete Item
DELETE/mdb/items/{id}

Deletes the Item. Note: the entity is not deleted, but is flagged as ‘hidden’.

Example URI

DELETE /mdb/items/e8292212-2cce-433c-afb9-a39236b5f0ca
URI Parameters
HideShow
id
string (required) Example: e8292212-2cce-433c-afb9-a39236b5f0ca

id of the item

Response  204

Entry Elements

An Entry Element is a single element inside a notebook entry. An entry can consist of multiple elements laid out in a grid. These elements can be of different types. For example text elements, file elements (for upload files), image elements (for images) and tables.

Element for each type can be managed through different endpoints which are described in detail in the following sections. You need to create an entry first before you can add elements to it.

All operations on elements are automatically versioned through the containing entry. A new entry version will be created for each added, edited or removed element.

The following operations are available for elements:

File elements

Files can be added to notebook entries through the use of File Elements.

Currently it is possible to upload all kinds of file types. Known types will trigger front end functionality (e.g. Extract…).

Here are the supported types for frontend functionality:

Images

  • PNG/X-PNG (image/png, image/x-png)

  • JPG/JPEG/PJPG/PJPEG (image/jpg, image/jpeg, image/pjpg, image/pjpeg)

  • GIF (image/gif)

  • BMP (image/bmp)

  • TIFF (image/tiff)

Spreadsheets

  • MS Office Excel (application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)

Texts

  • MS Office Word (application/msword)

  • CSV (text/csv)

Create File Element
POST/elements/file{?entry_id,file_name}

Create a file element for the provided notebook entry.

Send the raw binary content of the file as the request body using the appropriate (matching) Content-Type header.

Example URI

POST /elements/file?entry_id=938302&file_name=results.png
URI Parameters
HideShow
entry_id
string (required) Example: 938302

id of the entry to add the file element to.

file_name
string (required) Example: results.png

The name of the file

Request  /elements/file?entry_id=938302&file_name=results.png
HideShow
Headers
Content-Type: image/png
Body
... file content as binary ...
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /elements/file/67f7eb4dc5755c25a1555d2d5ecfd389406b3791
Body
{
  "id": "767930",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "FILE",
  "file_name": "results.png",
  "file_size": 14020,
  "content_type": "image/png"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "FILE"
      ],
      "description": "Denotes that this is a file element. The value is always `FILE`"
    },
    "file_name": {
      "type": "string",
      "description": "The name of the file"
    },
    "file_size": {
      "type": "number",
      "description": "The size of the file in bytes"
    },
    "content_type": {
      "type": "string",
      "description": "The type of the binary content which is sent on header parameter `Content-Type`"
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "file_name",
    "file_size",
    "content_type"
  ]
}

Get File Element
GET/elements/file/{id}

Returns the current version of the file element

Example URI

GET /elements/file/67f7eb4dc5755c25a1555d2d5ecfd389406b3791
URI Parameters
HideShow
id
string (required) Example: 67f7eb4dc5755c25a1555d2d5ecfd389406b3791

stable id of file element

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "767930",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "FILE",
  "file_name": "results.png",
  "file_size": 14020,
  "content_type": "image/png"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "FILE"
      ],
      "description": "Denotes that this is a file element. The value is always `FILE`"
    },
    "file_name": {
      "type": "string",
      "description": "The name of the file"
    },
    "file_size": {
      "type": "number",
      "description": "The size of the file in bytes"
    },
    "content_type": {
      "type": "string",
      "description": "The type of the binary content which is sent on header parameter `Content-Type`"
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "file_name",
    "file_size",
    "content_type"
  ]
}

Download File
GET/elements/file/{id}/download

Access the file stored in the current version of the file element. If a file exists, the Content-Type header will match that of the file being accessed. If the file is empty, no content will be returned.

Example URI

GET /elements/file/67f7eb4dc5755c25a1555d2d5ecfd389406b3791/download
URI Parameters
HideShow
id
string (required) Example: 67f7eb4dc5755c25a1555d2d5ecfd389406b3791

stable id of file element

Response  200
HideShow
Headers
Content-Type: image/png
Body
... file content as binary ...

Data elements

Structured data can be added to notebook entries through the use of Data Elements.

There are three types of data elements: Individual Elements, Groups, and Material Elements.

Individual Elements

Individual elements are single measurements or observations which can contain <title> <value> <unit>.

NaCL    300     mg
<title> <value> <unit>

as JSON:

{
  'title': 'NaCL',
  'value': '300',
  'unit': 'mg',
  'type': 'SINGLE_DATA_ELEMENT'
}

When creating a data element it is not always necessary to provide a value for all possible fields. You can omit the value when creating a placeholder to fill out later (when creating within a template entry).

NaCl     mg
<title>  <value>

as JSON:

{
  'title': 'NaCL',
  'unit': 'mg',
  'type': 'SINGLE_DATA_ELEMENT'
}

You can also omit the unit when providing dimensionless data.

Success  true
<title>  <value>

as JSON:

{
  'title': 'Success',
  'value': 'true',
  'type': 'SINGLE_DATA_ELEMENT'
}

Supported Units

  • m/s^2 (Acceleration)

  • pmol (Amount of substance)

  • nmol (Amount of substance)

  • µmol (Amount of substance)

  • mmol (Amount of substance)

  • mol (Amount of substance)

  • kmol (Amount of substance)

  • Mmol (Amount of substance)

  • rad/s^2 (Angular Acceleration)

  • kg/m^2 s^-1 (Angular Momentum)

  • rad/s (Angular Speed)

  • Da (Atomic Mass)

  • u (Atomic Mass)

  • µF (Capacitance)

  • F (Capacitance)

  • rpm (Centrifugation)

  • G-force (Centrifugation)

  • J/mol (Chemical Potential)

  • particles (Counts)

  • copies (Counts)

  • cells (Counts)

  • kg/m^3 (Density)

  • nm (Diameter)

  • µm (Diameter)

  • mm (Diameter)

  • cm (Diameter)

  • m (Diameter)

  • 1:x (Dilution)

  • x:1 (Dilution)

  • C (Electric Charge)

  • C/m^3 (Electric Charge Density)

  • S (Electric Conductance)

  • C/m^2 (Electric Displacement)

  • V/m (Electric Field Strength)

  • C (Electric Flux)

  • S/m (Electrical Conductivity)

  • S/cm (Electrical Conductivity)

  • nA (Electrical Current)

  • µA (Electrical Current)

  • mA (Electrical Current)

  • A (Electrical Current)

  • mV (Electrical Potential)

  • V (Electrical Potential)

  • kV (Electrical Potential)

  • ohm (Electrical Resistance)

  • ohm m (Electrical Resistivity)

  • cm^2 V^-1 s^-1 (Electron mobility)

  • cal (Energy)

  • kcal (Energy)

  • J (Energy)

  • kJ (Energy)

  • MJ (Energy)

  • J/m^3 (Energy Density)

  • J/mol (Enthalpy)

  • cal/mol (Enthalpy)

  • kJ/mol (Enthalpy)

  • J K^-1 kg^-1 (Entropy)

  • J K^-1 mol^-1 (Entropy)

  • U/µg (Enzyme Activity)

  • U/mg (Enzyme Activity)

  • U/µL (Enzyme Activity)

  • U/mL (Enzyme Activity)

  • C/kg (Exposure (X and gamma rays))

  • % of total (Flow Cytometry)

  • % of parent (Flow Cytometry)

  • events (Flow Cytometry)

  • mL/min (Flow Rate)

  • m^3/s (Flow Rate)

  • sccm (Flow Rate)

  • N (Force)

  • Hz (Frequency)

  • Pa (Fugacity)

  • J (Heat)

  • J/K (Heat Capacity)

  • lx (Illuminance)

  • cd sr m^-2 (Illuminance)

  • phot (Illuminance)

  • m (Length)

  • mm (Length)

  • nm (Length)

  • µm (Length)

  • cm (Length)

  • lm (Luminous Flux)

  • cd (Luminous Intensity)

  • Wb m (Magnetic Dipole Moment)

  • A/m (Magnetic Field Strength)

  • V s (Magnetic Flux)

  • Wb (Magnetic Flux)

  • T (Magnetic Flux Density)

  • Wb/m^2 (Magnetic Flux Density)

  • A m^2 (Magnetic Moment)

  • Wb/m^2 (Magnetic Moment)

  • T (Magnetic Polarization)

  • Wb/m^2 (Magnetic Polarization)

  • A (Magnetic Potential Difference)

  • A m^2/kg (Magnetization (Mass))

  • Wb m/kg (Magnetization (Mass))

  • A/m (Magnetization (Volume))

  • pg (Mass)

  • g (Mass)

  • mg (Mass)

  • µg (Mass)

  • ng (Mass)

  • kg (Mass)

  • % (Mass concentration)

  • pg/µL (Mass concentration)

  • µg/µL (Mass concentration)

  • pg/mL (Mass concentration)

  • ng/mL (Mass concentration)

  • mg/mL (Mass concentration)

  • g/L (Mass concentration)

  • mg/L (Mass concentration)

  • g/mL (Mass concentration)

  • ng/µl (Mass concentration)

  • µg/L (Mass concentration)

  • µg/mL (Mass concentration)

  • kg (Mass of Entity)

  • pack (Material/Packaging)

  • case (Material/Packaging)

  • each (Material/Packaging)

  • count (Material/Packaging)

  • units (Material/Packaging)

  • yM (Molar concentration)

  • zM (Molar concentration)

  • aM (Molar concentration)

  • fM (Molar concentration)

  • pM (Molar concentration)

  • nM (Molar concentration)

  • µM (Molar concentration)

  • mM (Molar concentration)

  • M (Molar concentration)

  • g/mol (Molar mass)

  • m^3/mol (Molar Volume)

  • % (Percent)

  • percentile (Percent)

  • H/m (Permeability)

  • Wb/A m (Permeability)

  • F/m (Permittivity)

  • W (Power)

  • Pa (Pressure)

  • bar (Pressure)

  • Torr (Pressure)

  • atm (Pressure)

  • Bq (Radioactivity)

  • Ci (Radioactivity)

  • mol/m^3 (Solubility)

  • m/s (Speed)

  • m/s (Speed of Light (Medium))

  • m/s (Speed of Light (Vacuum))

  • m^3/kg (Susceptibility (Mass))

  • H m^2/kg (Susceptibility (Mass))

  • H/m (Susceptibility (volume))

  • Wb/A m (Susceptibility (volume))

  • °C (Temperature)

  • °F (Temperature)

  • K (Temperature)

  • °C/s (Temperature Ramp Rate)

  • °C/min (Temperature Ramp Rate)

  • °C/h (Temperature Ramp Rate)

  • K/min (Temperature Ramp Rate)

  • K/h (Temperature Ramp Rate)

  • J/K (Thermal capacity)

  • kg m^2/K s^2 (Thermal capacity)

  • sec (Time)

  • msec (Time)

  • minute(s) (Time)

  • hour(s) (Time)

  • day(s) (Time)

  • month(s) (Time)

  • year(s) (Time)

  • PFU/mL (Titer)

  • PFU/µL (Titer)

  • TCID50/mL (Titer)

  • TCID50/µL (Titer)

  • copies/mL (Titer)

  • copies/µL (Titer)

  • IU/mL (Titer)

  • IU/µL (Titer)

  • LPs/mL (Titer)

  • LPs/µL (Titer)

  • cells/mL (Titer)

  • cells/µL (Titer)

  • cells/m^2 (Titer)

  • cells/cm^2 (Titer)

  • N m (Torque)

  • L (Volume)

  • mL (Volume)

  • µL (Volume)

  • nL (Volume)

  • cl (Volume)

  • dl (Volume)

  • % v/v (Volume concentration)

  • % w/v (Volume concentration)

  • % w/w (Volume concentration)

  • N (Weight)

  • J (Work)

Data Element Groups

Data Element Groups are used to create structure around other data elements. Groups only have a <title>. Additional elements can be associated with the group using the children property

<title>
Solution XYZ

as JSON (a Data Element Group without children):

{
  'title': 'Solution ABC',
  'type': 'DATA_ELEMENT_GROUP'
}

or (a Data Element Group with children)

{
  'title': 'Solution DEF',
  'type': 'DATA_ELEMENT_GROUP',
  'children': [
    {
      'title': 'NaCL',
      'value': '300',
      'unit': 'mg',
      'type': 'SINGLE_DATA_ELEMENT'
    },
    {
      'title': 'Water',
      'value': '1000',
      'unit': 'mL',
      'type': 'SINGLE_DATA_ELEMENT'
    }
  ]
}

You can nest groups within groups but only at the top level. Nested groups can’t have other groups as children.

Create Data Element
POST/elements/data

Create a data element container for the provided notebook entry.

Example URI

POST /elements/data
Request  Create Data Element Group
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938302",
  "data_elements": [
    {
      "type": "DATA_ELEMENT_GROUP",
      "title": "Solution XYZ",
      "children": [
        {
          "type": "SINGLE_DATA_ELEMENT",
          "title": "NaCl",
          "value": "200",
          "unit": "mL"
        },
        {
          "type": "SINGLE_DATA_ELEMENT",
          "title": "Love",
          "value": "900",
          "unit": "mL"
        },
        {
          "type": "SINGLE_DATA_ELEMENT",
          "title": "Water",
          "value": "300",
          "unit": "mL"
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which the element will be created in."
    },
    "data_elements": {
      "type": "array",
      "description": "The data elements. See description of data elements for details on format."
    }
  },
  "required": [
    "entry_id",
    "data_elements"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /elements/data/767930
Body
{
  "id": "767930",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "DATA",
  "data_elements": [
    {
      "type": "DATA_ELEMENT_GROUP",
      "title": "Solution XYZ",
      "children": [
        {
          "type": "SINGLE_DATA_ELEMENT",
          "title": "NaCl",
          "value": "200",
          "unit": "mL"
        },
        {
          "type": "SINGLE_DATA_ELEMENT",
          "title": "Love",
          "value": "900",
          "unit": "mL"
        },
        {
          "type": "SINGLE_DATA_ELEMENT",
          "title": "Water",
          "value": "300",
          "unit": "mL"
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "DATA"
      ],
      "description": "Denotes that this is a data elements entry element. The value is always `DATA`"
    },
    "data_elements": {
      "type": "array",
      "description": "The data elements. See description of data elements for details on format."
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "data_elements"
  ]
}
Request  Create Single Data Element
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938302",
  "data_elements": [
    {
      "type": "SINGLE_DATA_ELEMENT",
      "title": "Water",
      "value": "300",
      "unit": "mL"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which the element will be created in."
    },
    "data_elements": {
      "type": "array",
      "description": "The data elements. See description of data elements for details on format."
    }
  },
  "required": [
    "entry_id",
    "data_elements"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /elements/data/767930
Body
{
  "id": "767930",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "DATA",
  "data_elements": [
    {
      "type": "SINGLE_DATA_ELEMENT",
      "title": "Water",
      "value": "300",
      "unit": "mL"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "DATA"
      ],
      "description": "Denotes that this is a data elements entry element. The value is always `DATA`"
    },
    "data_elements": {
      "type": "array",
      "description": "The data elements. See description of data elements for details on format."
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "data_elements"
  ]
}
Request  Create Material Data Element
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938302",
  "data_elements": [
    {
      "type": "MATERIAL_DATA_ELEMENT",
      "item_id": "d395ff8e-3430-4cb5-8d34-b0a3399bf6b3"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which the element will be created in."
    },
    "data_elements": {
      "type": "array",
      "description": "The data elements. See description of data elements for details on format."
    }
  },
  "required": [
    "entry_id",
    "data_elements"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /elements/data/767930
Body
{
  "id": "767930",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "DATA",
  "data_elements": [
    {
      "type": "MATERIAL_DATA_ELEMENT",
      "item_id": "d395ff8e-3430-4cb5-8d34-b0a3399bf6b3"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "DATA"
      ],
      "description": "Denotes that this is a data elements entry element. The value is always `DATA`"
    },
    "data_elements": {
      "type": "array",
      "description": "The data elements. See description of data elements for details on format."
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "data_elements"
  ]
}
Request  Create Descriptive Data Element
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938302",
  "data_elements": [
    {
      "type": "DESCRIPTIVE_DATA_ELEMENT",
      "title": "Descriptive XYZ",
      "description": "Some very scientific and hard to understand description which will ruin the nature first and then rescue it"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which the element will be created in."
    },
    "data_elements": {
      "type": "array",
      "description": "The data elements. See description of data elements for details on format."
    }
  },
  "required": [
    "entry_id",
    "data_elements"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /elements/data/767930
Body
{
  "id": "767930",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "DATA",
  "data_elements": [
    {
      "type": "DESCRIPTIVE_DATA_ELEMENT",
      "title": "Descriptive XYZ",
      "description": "Some very scientific and hard to understand description which will ruin the nature first and then rescue it"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "DATA"
      ],
      "description": "Denotes that this is a data elements entry element. The value is always `DATA`"
    },
    "data_elements": {
      "type": "array",
      "description": "The data elements. See description of data elements for details on format."
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "data_elements"
  ]
}

Table elements

Table Data can be added to notebook entries. Table element may have a title and content in the Grapecity Spread.JS format. The object sent in the field content must be valid according to the Grapecity Documentation for JSON schema.

Get Table Element
GET/elements/table/{id}

Returns the current version of the table element

Example URI

GET /elements/table/0801c8932f4567dc59eeb806d3c2f2be592a99ac
URI Parameters
HideShow
id
string (required) Example: 0801c8932f4567dc59eeb806d3c2f2be592a99ac

stable id of table element

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "0801c8932f4567dc59eeb806d3c2f2be592a99ac",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "TABLE",
  "title": "Rebellion Table",
  "content": null
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "TABLE"
      ],
      "description": "Denotes that this is a table element. The value is always `TABLE`"
    },
    "title": {
      "type": [
        "string",
        "null"
      ],
      "description": "The title of the table"
    },
    "content": {
      "type": [
        "object",
        "null"
      ],
      "properties": {},
      "description": "The JSON content of the table element"
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "title",
    "content"
  ]
}

Get Table Element Version
GET/elements/table/{id}/version/{versionId}

Returns the table element in the specified entry version

Example URI

GET /elements/table/0801c8932f4567dc59eeb806d3c2f2be592a99ac/version/2309984
URI Parameters
HideShow
id
string (required) Example: 0801c8932f4567dc59eeb806d3c2f2be592a99ac

stable id of table element

versionId
string (required) Example: 2309984

element version id of the table element

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "0801c8932f4567dc59eeb806d3c2f2be592a99ac",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "TABLE",
  "title": "Rebellion Table",
  "content": null
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "TABLE"
      ],
      "description": "Denotes that this is a table element. The value is always `TABLE`"
    },
    "title": {
      "type": [
        "string",
        "null"
      ],
      "description": "The title of the table"
    },
    "content": {
      "type": [
        "object",
        "null"
      ],
      "properties": {},
      "description": "The JSON content of the table element"
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "title",
    "content"
  ]
}

Create Table Element
POST/elements/table

Create a table element container for the provided notebook entry.

Example URI

POST /elements/table
Request  Create Table Element
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938302",
  "title": "New Table Title",
  "content": {}
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "The id of the notebook entry"
    },
    "title": {
      "type": "string",
      "description": "The title of the table"
    },
    "content": {
      "type": "object",
      "properties": {},
      "description": "The JSON content of the table element"
    }
  },
  "required": [
    "entry_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /elements/table/0801c8932f4567dc59eeb806d3c2f2be592a99ac
Body
{
  "id": "0801c8932f4567dc59eeb806d3c2f2be592a99ac",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "TABLE",
  "title": "Rebellion Table",
  "content": null
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "TABLE"
      ],
      "description": "Denotes that this is a table element. The value is always `TABLE`"
    },
    "title": {
      "type": [
        "string",
        "null"
      ],
      "description": "The title of the table"
    },
    "content": {
      "type": [
        "object",
        "null"
      ],
      "properties": {},
      "description": "The JSON content of the table element"
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "title",
    "content"
  ]
}

Update Table Element
PUT/elements/table/{id}

Update a table element container for the provided notebook entry.

Example URI

PUT /elements/table/0801c8932f4567dc59eeb806d3c2f2be592a99ac
URI Parameters
HideShow
id
string (required) Example: 0801c8932f4567dc59eeb806d3c2f2be592a99ac

stable id of table element

Request  Update Table Element
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938302",
  "title": "Updated Table Title",
  "content": {},
  "id": "0801c8932f4567dc59eeb806d3c2f2be592a99ac"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "The id of the notebook entry"
    },
    "title": {
      "type": "string",
      "description": "The title of the table"
    },
    "content": {
      "type": "object",
      "properties": {},
      "description": "The JSON content of the table element"
    },
    "id": {
      "type": "string",
      "description": "The id of the table element"
    }
  },
  "required": [
    "entry_id",
    "id"
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "0801c8932f4567dc59eeb806d3c2f2be592a99ac",
  "entry_id": "938302",
  "version_id": "767930",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_type": "TABLE",
  "title": "Rebellion Table",
  "content": null
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the stable pointer to the most current version"
    },
    "entry_id": {
      "type": "string",
      "description": "the id of the stable pointer to the entry"
    },
    "version_id": {
      "type": "string",
      "description": "the unique id of the element"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the entry element (first version)"
    },
    "version_date": {
      "type": "string",
      "description": "the creation date of the entry element version (same with the creation date on the first version)"
    },
    "element_type": {
      "type": "string",
      "enum": [
        "TABLE"
      ],
      "description": "Denotes that this is a table element. The value is always `TABLE`"
    },
    "title": {
      "type": [
        "string",
        "null"
      ],
      "description": "The title of the table"
    },
    "content": {
      "type": [
        "object",
        "null"
      ],
      "properties": {},
      "description": "The JSON content of the table element"
    }
  },
  "required": [
    "id",
    "entry_id",
    "version_id",
    "owner_id",
    "creation_date",
    "version_date",
    "element_type",
    "title",
    "content"
  ]
}

Signature Workflows

A Signature Workflow is a procedure in which the intentions, actions, and people responsible for undertaking a reviewing process are set out through one or more sequential signatures.

The following operations are available for signature workflows:

Signature Workflows Resource

List Signature Workflows
GET/signature-workflows{?group_id,project_id,folder_id,status,limit,offset,expand}

Returns the list of all signature workflows. Exactly one of the parameters group_id, project_id, or folder_id must be provided.

Example URI

GET /signature-workflows?group_id=1200&project_id=&folder_id=&status=DRAFT&limit=&offset=&expand=
URI Parameters
HideShow
group_id
string (optional) Example: 1200

Only return the workflows that belong to the specified group

project_id
string (optional) 

Only return the workflows that are applicable to the specified project

folder_id
string (optional) 

Only return the workflows that are applicable to the specified folder

status
string (optional) Example: DRAFT

A comma separated list of statuses to be filtered.

Choices: DRAFT PUBLISHED ACTIVE HIDDEN

expand
string (optional) 

A comma separated list of related domain objects that should be expanded for all workflows returned.

Choices: owner

limit
number (optional) Default: 20 

Maximum number of signature workflow to return

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "title": "Luke's Signature Workflow",
    "group_id": "1200",
    "project_ids": [
      "36276"
    ],
    "folder_ids": [
      "36277"
    ],
    "target_project_id": "Hello, world!",
    "signature_definitions": [
      {
        "title": "Luke's First Signature",
        "approval_intention": {
          "label": "Signed By",
          "body": "I hereby certify that I carried out the documented steps"
        },
        "rejection_intention": {
          "label": "Rejected By",
          "body": "I observe that the documented results do not match with my findings"
        },
        "signable_by_author": true,
        "rejectable_by_reviewer": false,
        "notify_reviewer_by_email": false,
        "actions": [
          {
            "triggered_by": "APPROVAL",
            "type": "ADD_COMMENT",
            "body": "{}"
          }
        ],
        "signee_ids": [
          "11038"
        ]
      },
      {
        "title": "Luke's First Signature",
        "approval_intention": {
          "label": "Signed By",
          "body": "I hereby certify that I carried out the documented steps"
        },
        "rejection_intention": {
          "label": "Rejected By",
          "body": "I observe that the documented results do not match with my findings"
        },
        "signable_by_author": true,
        "rejectable_by_reviewer": false,
        "notify_reviewer_by_email": false,
        "actions": [
          {
            "triggered_by": "APPROVAL",
            "type": "ADD_COMMENT",
            "body": "{}"
          }
        ],
        "signee_ids": [
          "11038"
        ]
      }
    ],
    "status": "DRAFT",
    "id": "6b08850a-3901-4499-b6f6-c0e15c72a19c",
    "owner_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display name of the signature workflow"
      },
      "group_id": {
        "type": "string",
        "description": "the group id which the workflow belongs to"
      },
      "project_ids": {
        "type": "array",
        "description": "the project ids which the workflow is applicable to"
      },
      "folder_ids": {
        "type": "array",
        "description": "the folder ids which the workflow is applicable to"
      },
      "target_project_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the target project id which the entry will be moved to when the workflow is completed"
      },
      "signature_definitions": {
        "type": "array",
        "description": "the signature steps of the workflow as an ordered list"
      },
      "status": {
        "type": "string",
        "enum": [
          "DRAFT",
          "PUBLISHED",
          "ACTIVE",
          "HIDDEN"
        ],
        "description": "the status of the workflow"
      },
      "id": {
        "type": "string",
        "description": "the unique id of the workflow"
      },
      "owner_id": {
        "type": "string",
        "description": "the id of the original author of this signature workflow"
      },
      "creation_date": {
        "type": "string",
        "description": "the creation date of the workflow"
      },
      "version_date": {
        "type": "string",
        "description": "the last modification date of the workflow"
      }
    },
    "required": [
      "title",
      "group_id",
      "project_ids",
      "folder_ids",
      "target_project_id",
      "signature_definitions",
      "status",
      "id",
      "owner_id",
      "creation_date",
      "version_date"
    ]
  }
}

Get Signature Workflow
GET/signature-workflows/{id}

Returns the signature workflow

Example URI

GET /signature-workflows/c8ea2e7e-3755-497f-bd03-6b568dda025b
URI Parameters
HideShow
id
string (required) Example: c8ea2e7e-3755-497f-bd03-6b568dda025b

the unique id of the workflow

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's Signature Workflow",
  "group_id": "1200",
  "project_ids": [
    "36276"
  ],
  "folder_ids": [
    "36277"
  ],
  "target_project_id": "Hello, world!",
  "signature_definitions": [
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    },
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    }
  ],
  "status": "DRAFT",
  "id": "6b08850a-3901-4499-b6f6-c0e15c72a19c",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the signature workflow"
    },
    "group_id": {
      "type": "string",
      "description": "the group id which the workflow belongs to"
    },
    "project_ids": {
      "type": "array",
      "description": "the project ids which the workflow is applicable to"
    },
    "folder_ids": {
      "type": "array",
      "description": "the folder ids which the workflow is applicable to"
    },
    "target_project_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the target project id which the entry will be moved to when the workflow is completed"
    },
    "signature_definitions": {
      "type": "array",
      "description": "the signature steps of the workflow as an ordered list"
    },
    "status": {
      "type": "string",
      "enum": [
        "DRAFT",
        "PUBLISHED",
        "ACTIVE",
        "HIDDEN"
      ],
      "description": "the status of the workflow"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the workflow"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author of this signature workflow"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the workflow"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the workflow"
    }
  },
  "required": [
    "title",
    "group_id",
    "project_ids",
    "folder_ids",
    "target_project_id",
    "signature_definitions",
    "status",
    "id",
    "owner_id",
    "creation_date",
    "version_date"
  ]
}

Create Signature Workflow
POST/signature-workflows

Create a signature workflow

Example URI

POST /signature-workflows
Request  Create Signature Workflow
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Signature Workflow",
  "group_id": "1200",
  "project_ids": [
    "36276"
  ],
  "folder_ids": [
    "36277"
  ],
  "target_project_id": "Hello, world!",
  "signature_definitions": [
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    },
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    }
  ],
  "status": "DRAFT"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the signature workflow"
    },
    "group_id": {
      "type": "string",
      "description": "the group id which the workflow belongs to"
    },
    "project_ids": {
      "type": "array",
      "description": "the project ids which the workflow is applicable to"
    },
    "folder_ids": {
      "type": "array",
      "description": "the folder ids which the workflow is applicable to"
    },
    "target_project_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the target project id which the entry will be moved to when the workflow is completed"
    },
    "signature_definitions": {
      "type": "array",
      "description": "the signature steps of the workflow as an ordered list"
    },
    "status": {
      "type": "string",
      "enum": [
        "DRAFT",
        "PUBLISHED",
        "ACTIVE",
        "HIDDEN"
      ],
      "description": "the status of the workflow"
    }
  },
  "required": [
    "title",
    "group_id",
    "project_ids",
    "folder_ids",
    "target_project_id",
    "signature_definitions",
    "status"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /signature-workflows/1d573349-347b-4e46-a956-863d4e2db356
Body
{
  "title": "Luke's Signature Workflow",
  "group_id": "1200",
  "project_ids": [
    "36276"
  ],
  "folder_ids": [
    "36277"
  ],
  "target_project_id": "Hello, world!",
  "signature_definitions": [
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    },
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    }
  ],
  "status": "DRAFT",
  "id": "6b08850a-3901-4499-b6f6-c0e15c72a19c",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the signature workflow"
    },
    "group_id": {
      "type": "string",
      "description": "the group id which the workflow belongs to"
    },
    "project_ids": {
      "type": "array",
      "description": "the project ids which the workflow is applicable to"
    },
    "folder_ids": {
      "type": "array",
      "description": "the folder ids which the workflow is applicable to"
    },
    "target_project_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the target project id which the entry will be moved to when the workflow is completed"
    },
    "signature_definitions": {
      "type": "array",
      "description": "the signature steps of the workflow as an ordered list"
    },
    "status": {
      "type": "string",
      "enum": [
        "DRAFT",
        "PUBLISHED",
        "ACTIVE",
        "HIDDEN"
      ],
      "description": "the status of the workflow"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the workflow"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author of this signature workflow"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the workflow"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the workflow"
    }
  },
  "required": [
    "title",
    "group_id",
    "project_ids",
    "folder_ids",
    "target_project_id",
    "signature_definitions",
    "status",
    "id",
    "owner_id",
    "creation_date",
    "version_date"
  ]
}

Update Signature Workflow
PUT/signature-workflows/{id}

Update an existing signature workflow

Example URI

PUT /signature-workflows/6b08850a-3901-4499-b6f6-c0e15c72a19c
URI Parameters
HideShow
id
string (required) Example: 6b08850a-3901-4499-b6f6-c0e15c72a19c

id of the signature workflow to update

Request  Update Signature Workflow
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Signature Workflow",
  "group_id": "1200",
  "project_ids": [
    "36276"
  ],
  "folder_ids": [
    "36277"
  ],
  "target_project_id": "Hello, world!",
  "signature_definitions": [
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    },
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    }
  ],
  "status": "DRAFT",
  "id": "6b08850a-3901-4499-b6f6-c0e15c72a19c"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the signature workflow"
    },
    "group_id": {
      "type": "string",
      "description": "the group id which the workflow belongs to"
    },
    "project_ids": {
      "type": "array",
      "description": "the project ids which the workflow is applicable to"
    },
    "folder_ids": {
      "type": "array",
      "description": "the folder ids which the workflow is applicable to"
    },
    "target_project_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the target project id which the entry will be moved to when the workflow is completed"
    },
    "signature_definitions": {
      "type": "array",
      "description": "the signature steps of the workflow as an ordered list"
    },
    "status": {
      "type": "string",
      "enum": [
        "DRAFT",
        "PUBLISHED",
        "ACTIVE",
        "HIDDEN"
      ],
      "description": "the status of the workflow"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the workflow"
    }
  },
  "required": [
    "title",
    "group_id",
    "project_ids",
    "folder_ids",
    "target_project_id",
    "signature_definitions",
    "status",
    "id"
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's Signature Workflow",
  "group_id": "1200",
  "project_ids": [
    "36276"
  ],
  "folder_ids": [
    "36277"
  ],
  "target_project_id": "Hello, world!",
  "signature_definitions": [
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    },
    {
      "title": "Luke's First Signature",
      "approval_intention": {
        "label": "Signed By",
        "body": "I hereby certify that I carried out the documented steps"
      },
      "rejection_intention": {
        "label": "Rejected By",
        "body": "I observe that the documented results do not match with my findings"
      },
      "signable_by_author": true,
      "rejectable_by_reviewer": false,
      "notify_reviewer_by_email": false,
      "actions": [
        {
          "triggered_by": "APPROVAL",
          "type": "ADD_COMMENT",
          "body": "{}"
        }
      ],
      "signee_ids": [
        "11038"
      ]
    }
  ],
  "status": "DRAFT",
  "id": "6b08850a-3901-4499-b6f6-c0e15c72a19c",
  "owner_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the signature workflow"
    },
    "group_id": {
      "type": "string",
      "description": "the group id which the workflow belongs to"
    },
    "project_ids": {
      "type": "array",
      "description": "the project ids which the workflow is applicable to"
    },
    "folder_ids": {
      "type": "array",
      "description": "the folder ids which the workflow is applicable to"
    },
    "target_project_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the target project id which the entry will be moved to when the workflow is completed"
    },
    "signature_definitions": {
      "type": "array",
      "description": "the signature steps of the workflow as an ordered list"
    },
    "status": {
      "type": "string",
      "enum": [
        "DRAFT",
        "PUBLISHED",
        "ACTIVE",
        "HIDDEN"
      ],
      "description": "the status of the workflow"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the workflow"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the original author of this signature workflow"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the workflow"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the workflow"
    }
  },
  "required": [
    "title",
    "group_id",
    "project_ids",
    "folder_ids",
    "target_project_id",
    "signature_definitions",
    "status",
    "id",
    "owner_id",
    "creation_date",
    "version_date"
  ]
}

Get Signature Definition
GET/signature-workflows/{workflow_id}/signature-definitions/{definition_id}{?expand}

Returns the specific signature definition of the workflow

Example URI

GET /signature-workflows/c8ea2e7e-3755-497f-bd03-6b568dda025b/signature-definitions/441646aa-449e-4d46-a493-c0cf6406db21?expand=
URI Parameters
HideShow
workflow_id
string (required) Example: c8ea2e7e-3755-497f-bd03-6b568dda025b

the unique id of the signature workflow

definition_id
string (required) Example: 441646aa-449e-4d46-a493-c0cf6406db21

the unique id of the signature definition

expand
string (optional) 

Choices: signees

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's First Signature",
  "approval_intention": {
    "label": "Signed By",
    "body": "I hereby certify that I carried out the documented steps"
  },
  "rejection_intention": {
    "label": "Rejected By",
    "body": "I observe that the documented results do not match with my findings"
  },
  "signable_by_author": true,
  "rejectable_by_reviewer": false,
  "notify_reviewer_by_email": false,
  "actions": [
    {
      "triggered_by": "APPROVAL",
      "type": "ADD_COMMENT",
      "body": "{}"
    }
  ],
  "signee_ids": [
    "11038"
  ],
  "id": "c8ea2e7e-3755-497f-bd03-6b568dda025b",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the signature definition"
    },
    "approval_intention": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "description": "the label of the signature intention"
        },
        "body": {
          "type": "string",
          "description": "the content body of the signature intention"
        }
      },
      "required": [
        "label",
        "body"
      ],
      "description": "the approval intention of the signature definition"
    },
    "rejection_intention": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "label": {
          "type": "string",
          "description": "the label of the signature intention"
        },
        "body": {
          "type": "string",
          "description": "the content body of the signature intention"
        }
      },
      "required": [
        "label",
        "body"
      ],
      "description": "the rejection intention of the signature definition"
    },
    "signable_by_author": {
      "type": "boolean",
      "description": "indicates that the author of the entry can apply the signature"
    },
    "rejectable_by_reviewer": {
      "type": "boolean",
      "description": "indicates that the reviewer of the entry can reject"
    },
    "notify_reviewer_by_email": {
      "type": "boolean",
      "description": "indicates that reviewers are notified by email when they receive a review request"
    },
    "actions": {
      "type": "array",
      "description": "the actions taking place following the signature step"
    },
    "signee_ids": {
      "type": "array",
      "description": "possible reviewers/signees user ids of the signature"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the signature definition"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the signature definition"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the signature definition"
    }
  },
  "required": [
    "title",
    "approval_intention",
    "id",
    "creation_date",
    "version_date"
  ]
}

Signatures Resource

A Signature is applied to an entry and documents the authorizing of a cheque for the entries content.

List Signatures
GET/signatures{?entry_id,entry_version_id,expand}

Returns the list of signatures

Note that exactly one of the parameters entry_id or entry_version_id is mandatory to provide with the request.

Example URI

GET /signatures?entry_id=938302&entry_version_id=&expand=
URI Parameters
HideShow
entry_id
string (optional) Example: 938302

filter signatures being applied to latest version of specific entry

entry_version_id
string (optional) 

filter signatures being applied to specific entry version

expand
string (optional) 

Choices: owner

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "entry_id": "938303",
    "signature_definition_id": "441646aa-449e-4d46-a493-c0cf6406db21",
    "intention": {
      "label": "Signed By",
      "body": "I hereby certify that I carried out the documented steps"
    },
    "type": "APPROVAL",
    "id": "21e16a61-fd64-4b55-b679-7a0c74cf855b",
    "owner_id": "11038",
    "biometric_doc_id": "465862",
    "hash": "90b30ef9902ae4c4c691d2d78c2f8fa0aa785afbc5545286b310f68e91dd2299c84a2484f0419fc5eaa7de598940799e1091c4948926ae1c9488dddae180bb80",
    "hash_version": 4,
    "creation_date": "2018-11-07T16:32:12.729+0200"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "entry_id": {
        "type": "string",
        "description": "the id of the entry that is signed with the signature"
      },
      "signature_definition_id": {
        "type": "string",
        "description": "id of the signature definition as defined in the signature workflow"
      },
      "intention": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "the label of the signature intention"
          },
          "body": {
            "type": "string",
            "description": "the content body of the signature intention"
          }
        },
        "required": [
          "label",
          "body"
        ],
        "description": "the intention describing the signature"
      },
      "type": {
        "type": "string",
        "enum": [
          "APPROVAL",
          "REJECTION"
        ],
        "description": "signature submit type"
      },
      "id": {
        "type": "string",
        "description": "uuid of the entry signature"
      },
      "owner_id": {
        "type": "string",
        "description": "the unique id of the user who created the signature"
      },
      "biometric_doc_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "file id containing the biometric signature"
      },
      "hash": {
        "type": "string",
        "description": "SHA hash value of the entry content"
      },
      "hash_version": {
        "type": "number",
        "description": "indicating which version of the internal hash implementation was used to produce the hash value"
      },
      "creation_date": {
        "type": "string",
        "description": "timestamp of the signature creation"
      }
    },
    "required": [
      "entry_id",
      "signature_definition_id",
      "intention",
      "type",
      "id",
      "owner_id",
      "biometric_doc_id",
      "hash",
      "hash_version",
      "creation_date"
    ]
  }
}

Create Signature
POST/signatures

Create a signature for an entry

Example URI

POST /signatures
Request  Create Signature
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938303",
  "signature_definition_id": "441646aa-449e-4d46-a493-c0cf6406db21",
  "intention": {
    "label": "Signed By",
    "body": "I hereby certify that I carried out the documented steps"
  },
  "type": "APPROVAL",
  "biometric_sign_data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlMAQObYZgAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII="
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "the id of the entry that is signed with the signature"
    },
    "signature_definition_id": {
      "type": "string",
      "description": "id of the signature definition as defined in the signature workflow"
    },
    "intention": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "description": "the label of the signature intention"
        },
        "body": {
          "type": "string",
          "description": "the content body of the signature intention"
        }
      },
      "required": [
        "label",
        "body"
      ],
      "description": "the intention describing the signature"
    },
    "type": {
      "type": "string",
      "enum": [
        "APPROVAL",
        "REJECTION"
      ],
      "description": "signature submit type"
    },
    "biometric_sign_data": {
      "type": "string",
      "description": "base64 encoded image data, containing biometrical signature"
    }
  },
  "required": [
    "entry_id",
    "signature_definition_id",
    "intention",
    "type"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /signatures/1d573349-347b-4e46-a956-863d4e2db356
Body
{
  "entry_id": "938303",
  "signature_definition_id": "441646aa-449e-4d46-a493-c0cf6406db21",
  "intention": {
    "label": "Signed By",
    "body": "I hereby certify that I carried out the documented steps"
  },
  "type": "APPROVAL",
  "id": "21e16a61-fd64-4b55-b679-7a0c74cf855b",
  "owner_id": "11038",
  "biometric_doc_id": "465862",
  "hash": "90b30ef9902ae4c4c691d2d78c2f8fa0aa785afbc5545286b310f68e91dd2299c84a2484f0419fc5eaa7de598940799e1091c4948926ae1c9488dddae180bb80",
  "hash_version": 4,
  "creation_date": "2018-11-07T16:32:12.729+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "the id of the entry that is signed with the signature"
    },
    "signature_definition_id": {
      "type": "string",
      "description": "id of the signature definition as defined in the signature workflow"
    },
    "intention": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "description": "the label of the signature intention"
        },
        "body": {
          "type": "string",
          "description": "the content body of the signature intention"
        }
      },
      "required": [
        "label",
        "body"
      ],
      "description": "the intention describing the signature"
    },
    "type": {
      "type": "string",
      "enum": [
        "APPROVAL",
        "REJECTION"
      ],
      "description": "signature submit type"
    },
    "id": {
      "type": "string",
      "description": "uuid of the entry signature"
    },
    "owner_id": {
      "type": "string",
      "description": "the unique id of the user who created the signature"
    },
    "biometric_doc_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "file id containing the biometric signature"
    },
    "hash": {
      "type": "string",
      "description": "SHA hash value of the entry content"
    },
    "hash_version": {
      "type": "number",
      "description": "indicating which version of the internal hash implementation was used to produce the hash value"
    },
    "creation_date": {
      "type": "string",
      "description": "timestamp of the signature creation"
    }
  },
  "required": [
    "entry_id",
    "signature_definition_id",
    "intention",
    "type",
    "id",
    "owner_id",
    "biometric_doc_id",
    "hash",
    "hash_version",
    "creation_date"
  ]
}

Signature Requests Resource

List Signature Requests
GET/signature-requests{?reviewer_id,expand,limit,offset}

Returns the list of all signature requests, which are applied to entries the user can access.

Example URI

GET /signature-requests?reviewer_id=11039&expand=&limit=&offset=
URI Parameters
HideShow
reviewer_id
string (optional) Example: 11039

Filter signature requests by requested reviewer

expand
string (optional) 

A comma separated list of related domain objects that should be expanded for all items returned

Choices: owner reviewer

limit
number (optional) Default: 20 

Maximum number of signature requests to return

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "entry_id": "938303",
    "signature_definition_id": "791c1a54-3e97-453d-b219-4c338dea5ff7",
    "reviewer_id": "11039",
    "id": "21e16a61-fd64-4b55-b679-7a0c74cf855b",
    "owner_id": "11038",
    "signature_id": "null",
    "creation_date": "2018-11-07T16:32:12.729+0200",
    "fulfilled_date": "null"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "entry_id": {
        "type": "string",
        "description": "id of the entry that is to be reviewed"
      },
      "signature_definition_id": {
        "type": "string",
        "description": "id of the signature definition as defined in the signature workflow"
      },
      "reviewer_id": {
        "type": "string",
        "description": "id of the user who is requested to review the entry"
      },
      "id": {
        "type": "string",
        "description": "id of the review request"
      },
      "owner_id": {
        "type": "string",
        "description": "id of the user who requested the review"
      },
      "signature_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "id of the signature which fulfills this request"
      },
      "creation_date": {
        "type": "string",
        "description": "timestamp of the review request"
      },
      "fulfilled_date": {
        "type": [
          "string",
          "null"
        ],
        "description": "timestamp of the review fulfilled"
      }
    },
    "required": [
      "entry_id",
      "signature_definition_id",
      "reviewer_id",
      "id",
      "owner_id",
      "creation_date"
    ]
  }
}

Create Signature Request
POST/signature-requests

Create a signature request for an entry to be reviewed by a reviewer

Example URI

POST /signature-requests
Request  Create Signature Request
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938303",
  "signature_definition_id": "791c1a54-3e97-453d-b219-4c338dea5ff7",
  "reviewer_id": "11039"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "id of the entry that is to be reviewed"
    },
    "signature_definition_id": {
      "type": "string",
      "description": "id of the signature definition as defined in the signature workflow"
    },
    "reviewer_id": {
      "type": "string",
      "description": "id of the user who is requested to review the entry"
    }
  },
  "required": [
    "entry_id",
    "signature_definition_id",
    "reviewer_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /signature-requests/21e16a61-fd64-4b55-b679-7a0c74cf855b
Body
{
  "entry_id": "938303",
  "signature_definition_id": "791c1a54-3e97-453d-b219-4c338dea5ff7",
  "reviewer_id": "11039",
  "id": "21e16a61-fd64-4b55-b679-7a0c74cf855b",
  "owner_id": "11038",
  "signature_id": "null",
  "creation_date": "2018-11-07T16:32:12.729+0200",
  "fulfilled_date": "null"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "id of the entry that is to be reviewed"
    },
    "signature_definition_id": {
      "type": "string",
      "description": "id of the signature definition as defined in the signature workflow"
    },
    "reviewer_id": {
      "type": "string",
      "description": "id of the user who is requested to review the entry"
    },
    "id": {
      "type": "string",
      "description": "id of the review request"
    },
    "owner_id": {
      "type": "string",
      "description": "id of the user who requested the review"
    },
    "signature_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "id of the signature which fulfills this request"
    },
    "creation_date": {
      "type": "string",
      "description": "timestamp of the review request"
    },
    "fulfilled_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "timestamp of the review fulfilled"
    }
  },
  "required": [
    "entry_id",
    "signature_definition_id",
    "reviewer_id",
    "id",
    "owner_id",
    "creation_date"
  ]
}

Signature Workflow Executions Resource

List SignatureWorkflowExecution
GET/signature-workflow-executions{?entry_id,first_signee_id,signature_workflow_id,status,expand,limit,offset}

Returns the list of signature workflows the user has access to

Example URI

GET /signature-workflow-executions?entry_id=938302&first_signee_id=11038&signature_workflow_id=c8ea2e7e-3755-497f-bd03-6b568dda025b&status=ACTIVE&expand=&limit=&offset=
URI Parameters
HideShow
entry_id
string (optional) Example: 938302

filter signatures being applied to latest version of specific entry

first_signee_id
string (optional) Example: 11038

filter execution with only the given first signee id

signature_workflow_id
string (optional) Example: c8ea2e7e-3755-497f-bd03-6b568dda025b

filter execution for only the given signature workflow id

status
enum (optional) Example: ACTIVE

filter by current satus of the execution

Choices: ACTIVE APPROVED REJECTED

expand
string (optional) 

Choices: first_signee signature_request next_signature_definition

limit
number (optional) Default: 20 

Maximum number of signature workflow executions to return

offset
number (optional) Default: 0 

Offset into result-set (useful for pagination)

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "id": "86a2e72c-ca99-438b-b910-3d86806d561d",
    "entry_id": "96853",
    "first_signee_id": "11038",
    "signature_request_id": "32765a7d-4785-4b23-a314-cdce2c90e2b0",
    "next_signature_definition_id": "f2fb283e-3178-4935-8a78-d2a512108f83",
    "status": "ACTIVE",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "description": "the id of the workflow execution"
      },
      "entry_id": {
        "type": "string",
        "description": "the id of the entry for which the workflow execution is processed"
      },
      "first_signee_id": {
        "type": "string",
        "description": "the id of the first signee in this workflow execution"
      },
      "signature_request_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the current signature request int the workflow execution"
      },
      "next_signature_definition_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the next signature definition in the workflow execution"
      },
      "status": {
        "type": "string",
        "enum": [
          "ACTIVE",
          "APPROVED",
          "REJECTED"
        ],
        "description": "the execution status of the workflow execution"
      },
      "creation_date": {
        "type": "string",
        "description": "the creation date of the workflow execution"
      },
      "version_date": {
        "type": "string",
        "description": "the last modification date of the workflow execution"
      }
    },
    "required": [
      "id",
      "entry_id",
      "first_signee_id",
      "signature_request_id",
      "next_signature_definition_id",
      "status",
      "creation_date",
      "version_date"
    ]
  }
}

Delete SignatureWorkflowExecution
DELETE/signature-workflow-executions/{id}

Deletes the signature workflow execution as well as its last assigned request and revokes all previously applied signatures.

Example URI

DELETE /signature-workflow-executions/20158d69-3f7c-4ef3-afe6-7159723ee180
URI Parameters
HideShow
id
string (optional) Example: 20158d69-3f7c-4ef3-afe6-7159723ee180

id of the signature workflow execution

Response  204

Generated by aglio on 17 Apr 2019