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 smoothest possible transition please make sure your code does not rely on the exact object structure returned and ignores unknown properties.

As a general guideline for error handling, more emphasis should be paid to the status codes rather than the error messages.

“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

Identity Access Management (IAM)

Labfolder has a feature IAM, in which we delegate our application security to the Labforward Identity & Access Management (IAM) application.

This feature will be enabled for cloud users for the time being. Once enabled, all users should log into Labfolder using a browser where they will be prompted to reset their passwords. Following the password reset, users can use the POST /auth/login endpoint as before to login and retrieve their authentication tokens.

Please be notified that -

  • Tokens will be JWT tokens with a slightly shorter expiry date, but they will serve the same purpose and have the same use as before.

  • There is no support for HTTP-Basic API calls. Only use the Authorization header method.

Version

This is API v2 build #

ab641314d86009b37ebfc019ea4eb98740f035f4

Changelog

2023-06-14

Added

  • Added a new endpoint to list all available Incident Reports

  • Added a new endpoint to download Incident Report data

2023-05-03

Added

  • Added a new (and preferred) format for authentication via Authorization header - Authorization: Bearer xxxxx

Access

Location

The API can only be accessed via HTTPS.

You can reach the API for the cloud instance at

https://labfolder.labforward.app/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…

  1. set in the Authorization header using other tools, or
  2. the username field for HTTP-Basic authentication (Only available when IAM Feature is disabled)

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

# via Authorization header

# Preferred approach -
> curl -H "Authorization: Bearer $LABFOLDER_API_TOKEN" <API_RESOURCE_PATH_GOES_HERE>

# OR deprecated approach -
> curl -H "Authorization: Bearer $LABFOLDER_API_TOKEN" <API_RESOURCE_PATH_GOES_HERE>
# via HTTP-Basic (Only available when IAM Feature is disabled)
# Note the proceeding ':'

> curl -u "$LABFOLDER_API_TOKEN:" <API_RESOURCE_PATH_GOES_HERE>

Endpoints

Login - Generate Token
POST/auth/login

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

Example URI

POST /api/v2/auth/login
Request  Generate Token
HideShow
Headers
Content-Type: application/json
Body
{
  "user": "luke.skywalker@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"
  ]
}

Logout - Invalidate Tokens
POST/auth/logout

Invalidate all API access tokens.

Example URI

POST /api/v2/auth/logout
Response  204

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>

File upload formats

For an upload of a file you can send pure arbitrary byte data in the request.
However, you may also choose to upload a file using Base64 encoding. To do so, it is required to add the header Content-Transfer-Encoding : base64, and the body should contain contents of the file as Base64 string.

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: Bearer $LABFOLDER_API_TOKEN" <API_RESOURCE_PATH_GOES_HERE>?limit=1000

OR

curl -H "Authorization: Bearer $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.000+0100 for a time or 2017-02-27 for a date.

Timezone

The date time will be returned in the timezone of the server.

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

List Groups
GET/groups{?type,limit,offset}

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

Example URI

GET /api/v2/groups?type=BASIC&limit=&offset=
URI Parameters
HideShow
type
string (optional) Example: BASIC

Group type to be filtered

Choices: BASIC ADVANCED

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"
    ]
  }
}

Group

Get Group
GET/groups/{id}

Returns the specified group.

Example URI

GET /api/v2/groups/1200
URI Parameters
HideShow
id
string (required) Example: 1200

id of the group

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
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": "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"
  ],
  "additionalProperties": false
}

Get Group Tree
GET/groups/{id}/tree

Returns tree of group, it’s subgroup and members

Example URI

GET /api/v2/groups/1200/tree
URI Parameters
HideShow
id
string (required) Example: 1200

id of the group.

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "1200",
  "name": "Rebellion",
  "children": [
    {
      "id": "12585",
      "admin": false,
      "user": {
        "id": "3857",
        "first_name": "Luke",
        "last_name": "Skywalker",
        "email": "luke.skywalker@starwars.com",
        "deactivated": false,
        "profile_picture_hash": "abc",
        "iam_id": "d229cc70-455d-421d-9938-b2d8b4dee79e"
      },
      "type": "MEMBER"
    },
    {
      "id": "12585",
      "title": "Rogue One",
      "type": "SUBGROUP",
      "children": [
        {
          "id": "12585",
          "admin": false,
          "user": {
            "id": "3857",
            "first_name": "Luke",
            "last_name": "Skywalker",
            "email": "luke.skywalker@starwars.com",
            "deactivated": false,
            "profile_picture_hash": "abc",
            "iam_id": "d229cc70-455d-421d-9938-b2d8b4dee79e"
          },
          "type": "MEMBER"
        },
        {}
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the id of the group"
    },
    "name": {
      "type": "string",
      "description": "name of the group"
    },
    "children": {
      "type": "array",
      "items": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "the unique identifier of the group tree membership"
            },
            "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"
                },
                "deactivated": {
                  "type": "boolean",
                  "description": "the flags shows if the user's account is deactivated"
                },
                "profile_picture_hash": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "profile picture hash for the picture url of the user"
                },
                "iam_id": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "user uuid identifying the user in IAM"
                }
              },
              "required": [
                "id",
                "first_name",
                "last_name",
                "email",
                "deactivated",
                "profile_picture_hash",
                "iam_id"
              ],
              "description": "user identity entity of the group member"
            },
            "type": {
              "type": "string",
              "enum": [
                "MEMBER"
              ],
              "description": "the type of group tree node"
            }
          },
          "required": [
            "id",
            "admin",
            "user",
            "type"
          ]
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "the unique identifier of the subgroup"
            },
            "title": {
              "type": "string",
              "description": "the title of the subgroup"
            },
            "type": {
              "type": "string",
              "enum": [
                "SUBGROUP"
              ],
              "description": "the type of group tree node"
            },
            "children": {
              "type": "array",
              "items": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "the unique identifier of the group tree membership"
                    },
                    "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"
                        },
                        "deactivated": {
                          "type": "boolean",
                          "description": "the flags shows if the user's account is deactivated"
                        },
                        "profile_picture_hash": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "profile picture hash for the picture url of the user"
                        },
                        "iam_id": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "user uuid identifying the user in IAM"
                        }
                      },
                      "required": [
                        "id",
                        "first_name",
                        "last_name",
                        "email",
                        "deactivated",
                        "profile_picture_hash",
                        "iam_id"
                      ],
                      "description": "user identity entity of the group member"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "MEMBER"
                      ],
                      "description": "the type of group tree node"
                    }
                  },
                  "required": [
                    "id",
                    "admin",
                    "user",
                    "type"
                  ]
                },
                {
                  "type": "object",
                  "properties": {}
                }
              ],
              "description": "child members and subgroups will be represented recursively"
            }
          },
          "required": [
            "id",
            "title",
            "type"
          ]
        }
      ],
      "description": "child members and subgroups will be represented recursively"
    }
  },
  "required": [
    "id",
    "name",
    "children"
  ],
  "additionalProperties": false
}

Subgroups Resource

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

Returns subgroups of the group

Example URI

GET /api/v2/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

List 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 /api/v2/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
string (optional) Example: 36275

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

project_folder_ids
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 group members to return - Maximum allowed value is 100

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",
      "deactivated": false,
      "profile_picture_hash": "bhOwHTKEjrPTDeiMtTnc",
      "iam_id": "d229cc70-455d-421d-9938-b2d8b4dee79e"
    }
  }
]
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"
          },
          "deactivated": {
            "type": "boolean",
            "description": "the flags shows if the user's account is deactivated"
          },
          "profile_picture_hash": {
            "type": [
              "string",
              "null"
            ],
            "description": "a hash to be used for the profile picture location url"
          },
          "iam_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "user uuid identifying the user in IAM"
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email",
          "deactivated",
          "profile_picture_hash",
          "iam_id"
        ],
        "description": "user identity entity of the group member"
      }
    },
    "required": [
      "id",
      "group_id",
      "subgroup_id",
      "admin",
      "user"
    ]
  }
}

Get Group Membership
GET/group-memberships/{id}

Returns the specified group membership

Example URI

GET /api/v2/group-memberships/3132
URI Parameters
HideShow
id
string (required) Example: 3132

id of the group membership

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",
    "deactivated": false,
    "profile_picture_hash": "bhOwHTKEjrPTDeiMtTnc",
    "iam_id": "d229cc70-455d-421d-9938-b2d8b4dee79e"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "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"
        },
        "deactivated": {
          "type": "boolean",
          "description": "the flags shows if the user's account is deactivated"
        },
        "profile_picture_hash": {
          "type": [
            "string",
            "null"
          ],
          "description": "a hash to be used for the profile picture location url"
        },
        "iam_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "user uuid identifying the user in IAM"
        }
      },
      "required": [
        "id",
        "first_name",
        "last_name",
        "email",
        "deactivated",
        "profile_picture_hash",
        "iam_id"
      ],
      "description": "user identity entity of the group member"
    }
  },
  "required": [
    "id",
    "group_id",
    "subgroup_id",
    "admin",
    "user"
  ],
  "additionalProperties": false
}

Create Group Membership
POST/group-memberships

Create a new group membership. This is how new group members may be invited to a group or subgroup.

Example URI

POST /api/v2/group-memberships
Request  Create new group membership in group
HideShow
Headers
Content-Type: application/json
Body
{
  "email": "princess.leia@starwars.com",
  "group_id": "1203"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The email of the person to invite to your group"
    },
    "group_id": {
      "type": "string",
      "description": "The group id"
    }
  },
  "required": [
    "email",
    "group_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /group-memberships/12585
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",
    "deactivated": false,
    "profile_picture_hash": "bhOwHTKEjrPTDeiMtTnc",
    "iam_id": "d229cc70-455d-421d-9938-b2d8b4dee79e"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "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"
        },
        "deactivated": {
          "type": "boolean",
          "description": "the flags shows if the user's account is deactivated"
        },
        "profile_picture_hash": {
          "type": [
            "string",
            "null"
          ],
          "description": "a hash to be used for the profile picture location url"
        },
        "iam_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "user uuid identifying the user in IAM"
        }
      },
      "required": [
        "id",
        "first_name",
        "last_name",
        "email",
        "deactivated",
        "profile_picture_hash",
        "iam_id"
      ],
      "description": "user identity entity of the group member"
    }
  },
  "required": [
    "id",
    "group_id",
    "subgroup_id",
    "admin",
    "user"
  ],
  "additionalProperties": false
}
Request  Create new group membership in subgroup
HideShow
Headers
Content-Type: application/json
Body
{
  "email": "han.solo@starwars.com",
  "group_id": "1203",
  "subgroup_id": "235"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The email of the person to invite to your group"
    },
    "group_id": {
      "type": "string",
      "description": "The group id"
    },
    "subgroup_id": {
      "type": "string",
      "description": "id of the subgroup to which the member is added"
    }
  },
  "required": [
    "email",
    "group_id",
    "subgroup_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /group-memberships/12585
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",
    "deactivated": false,
    "profile_picture_hash": "bhOwHTKEjrPTDeiMtTnc",
    "iam_id": "d229cc70-455d-421d-9938-b2d8b4dee79e"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "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"
        },
        "deactivated": {
          "type": "boolean",
          "description": "the flags shows if the user's account is deactivated"
        },
        "profile_picture_hash": {
          "type": [
            "string",
            "null"
          ],
          "description": "a hash to be used for the profile picture location url"
        },
        "iam_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "user uuid identifying the user in IAM"
        }
      },
      "required": [
        "id",
        "first_name",
        "last_name",
        "email",
        "deactivated",
        "profile_picture_hash",
        "iam_id"
      ],
      "description": "user identity entity of the group member"
    }
  },
  "required": [
    "id",
    "group_id",
    "subgroup_id",
    "admin",
    "user"
  ],
  "additionalProperties": false
}

Delete Group Membership
DELETE/group-memberships/{id}

Delete a group membership. This endpoint can be used to:

  • leave a group, either on their own accord, or by a group admin.

  • decline a membership invitation

In order to be removed from a group, a user must have no project, template, or folder ownership within the group context.

Example URI

DELETE /api/v2/group-memberships/3135
URI Parameters
HideShow
id
string (required) Example: 3135

id of the group membership

Response  204

Projects

Projects Resource

List Projects
GET/projects{?group_id,owner_id,owner_ids,only_root_level,folder_id,project_ids,title,private_projects_only,creation_date_from,creation_date_to,modification_date_from,modification_date_to,expand,limit,offset}

Returns a list of projects the user has access to.

Example URI

GET /api/v2/projects?group_id=1200&owner_id=11038&owner_ids=11038,11039&only_root_level=true&folder_id=36274&project_ids=36279&title=My project&private_projects_only=true&creation_date_from=2023-02-08&creation_date_to=2023-02-09&modification_date_from=2023-02-08&modification_date_to=2023-02-09&expand=owner&limit=&offset=
URI Parameters
HideShow
group_id
string (optional) Example: 1200

Only return projects that belong to the specified group. Please note that this param is deprecated and will removed in the future. Its usage shall be replaced with group_ids, which is a comma separated list that contains one or more group IDs.

group_ids
string (optional) Example: 1200,1201

Only return projects that belong to the specified groups (comma separated list)

owner_id
string (optional) Example: 11038

Only return projects that are owned by the given user. Please note that this param is deprecated and will removed in the future. Its usage shall be replaced with owner_ids, which is a comma separated list that contains one or more user IDs.

owner_ids
string (optional) Example: 11038,11039

Only return projects that are owned by the given users (comma separated list)

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
string (optional) Example: 36279

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

title
string (optional) Example: My project

Only return projects with a title containing this string

private_projects_only
boolean (optional) Example: true

Only return the user’s private projects

creation_date_from
date (optional) Example: 2023-02-08

Only return projects that were created past or at the specified date

creation_date_to
date (optional) Example: 2023-02-09

Only return projects that were created before or at the specified date

modification_date_from
date (optional) Example: 2023-02-08

Only return projects that were edited past or at the specified date

modification_date_to
date (optional) Example: 2023-02-09

Only return projects that were edited before or at the specified date

expand
string (optional) Example: owner

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

Choices: owner

limit
number (optional) Default: 20 

Maximum number of projects to return - Maximum allowed limit is 100

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",
    "collaborative": false
  }
]
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, null is used for the private projects"
      },
      "folder_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the closest accessible parent folder in which the project is located. null is used projects which are not in a parent folder or don't have closest accessible parent folder"
      },
      "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"
      },
      "collaborative": {
        "type": "boolean",
        "description": "boolean flag indicating whether the project is collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. a project only shows as collaborative when the multi-author feature is enabled. its value is always false when the feature is disabled."
      }
    },
    "required": [
      "title",
      "id",
      "owner_id",
      "group_id",
      "folder_id",
      "hidden",
      "creation_date",
      "version_date",
      "collaborative"
    ]
  }
}

Create Project
POST/projects

Create a project

Example URI

POST /api/v2/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",
  "collaborative": false
}
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, null is used for the private projects"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the closest accessible parent folder in which the project is located. null is used projects which are not in a parent folder or don't have closest accessible parent folder"
    },
    "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"
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project is collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. a project only shows as collaborative when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date",
    "collaborative"
  ]
}
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",
  "collaborative": false
}
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, null is used for the private projects"
    },
    "folder_id": {
      "type": "string",
      "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"
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project is collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. a project only shows as collaborative when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date",
    "collaborative"
  ]
}
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",
  "collaborative": false
}
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",
      "description": "the id of the group to which the project is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the closest accessible parent folder in which the project is located. null is used projects which are not in a parent folder or don't have closest accessible parent folder"
    },
    "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"
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project is collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. a project only shows as collaborative when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date",
    "collaborative"
  ]
}
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",
  "collaborative": false
}
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",
      "description": "the id of the group to which the project is associated"
    },
    "folder_id": {
      "type": "string",
      "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"
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project is collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. a project only shows as collaborative when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date",
    "collaborative"
  ]
}

Update Project
PATCH/projects/{id}

This endpoint complies with RFC 6902, the specification for JSON Patch.

  • Update a project’s owner.

  • Update a project parent folder given it’s id and return the modified objects.

  • Update a project’s visibility, meaning hiding and unhiding projects.

The supported operations will grow in time.

Example URI

PATCH /api/v2/projects/36275
URI Parameters
HideShow
id
string (required) Example: 36275

the unique id of the project

Request  Change Project Owner
HideShow

Please note that, for change owner operation, the ‘value’ of the patch operation should be the new owner membership id, not the new owner id.

Headers
Content-Type: application/json-patch+json
Body
[
  {
    "op": "replace",
    "path": "/owner_id",
    "value": "3130"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "op": {
        "type": "string",
        "enum": [
          "replace"
        ],
        "description": "The replace operation defined by RFC 6902"
      },
      "path": {
        "type": "string",
        "enum": [
          "/owner_id"
        ],
        "description": "JSON Pointer notation to the owner of the project"
      },
      "value": {
        "type": "string",
        "description": "the unique identifier of the group membership of the new owner"
      }
    },
    "required": [
      "op",
      "path",
      "value"
    ]
  }
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
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",
  "collaborative": false
}
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, null is used for the private projects"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the closest accessible parent folder in which the project is located. null is used projects which are not in a parent folder or don't have closest accessible parent folder"
    },
    "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"
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project is collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. a project only shows as collaborative when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date",
    "collaborative"
  ],
  "additionalProperties": false
}
Request  Move Project to another folder
HideShow
Headers
Content-Type: application/json-patch+json
Body
[
  {
    "op": "replace",
    "path": "/folder_id",
    "value": "36284"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "op": {
        "type": "string",
        "enum": [
          "replace"
        ],
        "description": "The replace operation defined by RFC 6902"
      },
      "path": {
        "type": "string",
        "enum": [
          "/folder_id"
        ],
        "description": "JSON Pointer notation to the folder the mentioned project will be moved into"
      },
      "value": {
        "type": "string",
        "description": "id of the new parent folder"
      }
    },
    "required": [
      "op",
      "path",
      "value"
    ]
  }
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
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",
  "collaborative": false
}
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, null is used for the private projects"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the closest accessible parent folder in which the project is located. null is used projects which are not in a parent folder or don't have closest accessible parent folder"
    },
    "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"
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project is collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. a project only shows as collaborative when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date",
    "collaborative"
  ],
  "additionalProperties": false
}
Request  Change Project Visibility
HideShow
Headers
Content-Type: application/json-patch+json
Body
[
  {
    "op": "replace",
    "path": "/hidden",
    "value": false
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "op": {
        "type": "string",
        "enum": [
          "replace"
        ],
        "description": "The replace operation defined by RFC 6902"
      },
      "path": {
        "type": "string",
        "description": "JSON Pointer notation to the whether the project is hidden"
      },
      "value": {
        "type": "boolean",
        "description": "a boolean indicating whether the project should be hidden"
      }
    },
    "required": [
      "op",
      "path",
      "value"
    ]
  }
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
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",
  "collaborative": false
}
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, null is used for the private projects"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the closest accessible parent folder in which the project is located. null is used projects which are not in a parent folder or don't have closest accessible parent folder"
    },
    "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"
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project is collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. a project only shows as collaborative when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date",
    "collaborative"
  ],
  "additionalProperties": false
}

Update Project Access
PUT/projects/{id}/access

Update the access settings of a project.
A project can be either shared with specific members, subgroups or with the whole group. Sharing it with subgroups or the group will automatically enable access for any new member joining these group structures. The project owner is always added to the access settings membership IDs automatically, to guarantee that she has access at any time.

If the project is located in a folder, all access settings of that folder will cascade to the respective project, even if you do not provide those within your request. This means the response might slightly differ from the request for this and other reasons mentioned above.

Example URI

PUT /api/v2/projects/36275/access
URI Parameters
HideShow
id
string (required) Example: 36275

id of the project

Request  Update Project Access
HideShow
Headers
Content-Type: application/json
Body
{
  "project_id": "36275",
  "group_membership_ids": [
    "3127",
    "3129"
  ],
  "subgroup_ids": [
    "234"
  ],
  "full_group_access": false,
  "collaborative": false
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "id of the project"
    },
    "group_membership_ids": {
      "type": "array",
      "items": [
        {
          "type": "string"
        },
        {
          "type": "string"
        }
      ],
      "description": "ids of memberships that have access to the project granted"
    },
    "subgroup_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "ids of subgroups which members have access to the project granted"
    },
    "full_group_access": {
      "type": "boolean",
      "description": "boolean flag indicating if all group members have access to the project granted. if this has value 'true', it makes setting the id fields obsolete."
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project should be collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. its default value is false. making a project collaborative is only possible when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "project_id",
    "group_membership_ids",
    "subgroup_ids",
    "full_group_access"
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "project_id": "36275",
  "group_membership_ids": [
    "3127",
    "3129"
  ],
  "subgroup_ids": [
    "234"
  ],
  "full_group_access": false,
  "collaborative": false
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "id of the project"
    },
    "group_membership_ids": {
      "type": "array",
      "items": [
        {
          "type": "string"
        },
        {
          "type": "string"
        }
      ],
      "description": "ids of memberships that have access to the project granted"
    },
    "subgroup_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "ids of subgroups which members have access to the project granted"
    },
    "full_group_access": {
      "type": "boolean",
      "description": "boolean flag indicating if all group members have access to the project granted. if this has value 'true', it makes setting the id fields obsolete."
    },
    "collaborative": {
      "type": "boolean",
      "description": "boolean flag indicating whether the project should be collaborative. when this is true, every entry within this project can be edited by all project members instead of by its author only. its default value is false. making a project collaborative is only possible when the multi-author feature is enabled. its value is always false when the feature is disabled."
    }
  },
  "required": [
    "project_id",
    "group_membership_ids",
    "subgroup_ids",
    "full_group_access"
  ],
  "additionalProperties": false
}

Folders

Folders Resource

List Folders
GET/folders{?group_id,owner_id,owner_ids,only_root_level,content_type,parent_folder_id,folder_ids,title,private_folders_only,creation_date_from,creation_date_to,modification_date_from,modification_date_to,expand,limit,offset}

Returns a list of folders the user has access to.

Example URI

GET /api/v2/folders?group_id=1200&owner_id=11038&owner_ids=11038,11039&only_root_level=true&content_type=&parent_folder_id=36274&folder_ids=36278&title=My folder&private_folders_only=true&creation_date_from=2023-02-08&creation_date_to=2023-02-09&modification_date_from=2023-02-08&modification_date_to=2023-02-09&expand=owner&limit=&offset=
URI Parameters
HideShow
group_id
string (optional) Example: 1200

Only return folders that belong to the specified group. Please note that this param is deprecated and will removed in the future. Its usage shall be replaced with group_ids, which is a comma separated list that contains one or more group IDs.

group_ids
string (optional) Example: 1200,1201

Only return folders that belong to the specified groups (comma separated list)

owner_id
string (optional) Example: 11038

Only return folders that are owned by the given user. Please note that this param is deprecated and will removed in the future. Its usage shall be replaced with owner_ids, which is a comma separated list that contains one or more user IDs.

owner_ids
string (optional) Example: 11038,11039

Only return folders that are owned by the given users (comma separated list)

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

content_type
string (optional) Default: PROJECTS 

The desired type of folders to retrieve

Choices: PROJECTS TEMPLATES

parent_folder_id
string (optional) Example: 36274

Only return folders that reside within the specified folder

folder_ids
string (optional) Example: 36278

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

title
string (optional) Example: My folder

Only return folders with a title containing this string

private_folders_only
boolean (optional) Example: true

Only return the user’s private folders

creation_date_from
date (optional) Example: 2023-02-08

Only return folders that were created past or at the specified date

creation_date_to
date (optional) Example: 2023-02-09

Only return folders that were created before or at the specified date

modification_date_from
date (optional) Example: 2023-02-08

Only return folders that were edited past or at the specified date

modification_date_to
date (optional) Example: 2023-02-09

Only return folders that were edited before or at the specified date

expand
string (optional) Example: owner

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

Choices: owner

limit
number (optional) Default: 20 

Maximum number of folders to return - Maximum allowed limit is 100

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": "1200",
    "parent_folder_id": "null",
    "hidden": false,
    "content_type": "Hello, world!",
    "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 closest accessible parent folder in which the folder is located for the user. null is used folders which are not in a parent folder or don't have closest accessible parent folder"
      },
      "hidden": {
        "type": "boolean",
        "description": "indicating if the folder is hidden"
      },
      "content_type": {
        "type": "string",
        "enum": [
          "PROJECTS",
          "TEMPLATES",
          "PROJECTS"
        ],
        "default": "PROJECTS",
        "description": "indicates if this folder holds Projects or Templates"
      },
      "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",
      "content_type",
      "creation_date",
      "version_date"
    ]
  }
}

Create Folder
POST/folders

Create a folder. A folder may either contain projects or templates, as well as children folders of the same type. A private folder is intended for your use only, while a group folder may be shared with the members of that group.

Example URI

POST /api/v2/folders
Request  Create top-level Private Folder to hold Projects
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Folder",
  "content_type": "PROJECTS"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the folder"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicate if the folder should hold Projects or Templates"
    }
  },
  "required": [
    "title"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /folders/46123
Body
{
  "id": "46123",
  "title": "Luke's Private Folder",
  "owner_id": "11038",
  "group_id": "null",
  "parent_folder_id": "null",
  "hidden": false,
  "content_type": "PROJECTS",
  "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": {
    "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": "null is used for the private folders"
    },
    "parent_folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the closest accessible parent folder in which the folder is located for the user. null is used folders which are not in a parent folder or don't have closest accessible parent folder"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the folder is hidden"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicates if this folder holds Projects or Templates"
    },
    "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",
    "content_type",
    "creation_date",
    "version_date"
  ]
}
Request  Create top-level Private Folder to hold Templates
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Folder",
  "content_type": "TEMPLATES"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the folder"
    },
    "content_type": {
      "type": "string",
      "description": "indicate if the folder should hold Projects or Templates"
    }
  },
  "required": [
    "title"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /folders/46123
Body
{
  "id": "46123",
  "title": "Luke's Private Folder",
  "owner_id": "11038",
  "group_id": "null",
  "parent_folder_id": "null",
  "hidden": false,
  "content_type": "TEMPLATES",
  "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": {
    "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": "null is used for the private folders"
    },
    "parent_folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the closest accessible parent folder in which the folder is located for the user. null is used folders which are not in a parent folder or don't have closest accessible parent folder"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the folder is hidden"
    },
    "content_type": {
      "type": "string",
      "description": "indicates if this folder holds Projects or Templates"
    },
    "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",
    "content_type",
    "creation_date",
    "version_date"
  ]
}
Request  Create Private Folder as a Child of an Existing Private Folder
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Folder",
  "content_type": "PROJECTS",
  "parent_folder_id": "36273"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the folder"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicate if the folder should hold Projects or Templates"
    },
    "parent_folder_id": {
      "type": "string"
    }
  },
  "required": [
    "title",
    "parent_folder_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /folders/46123
Body
{
  "id": "46123",
  "title": "Luke's Private Folder",
  "owner_id": "11038",
  "group_id": "null",
  "parent_folder_id": "36273",
  "hidden": false,
  "content_type": "PROJECTS",
  "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": {
    "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": "null is used for the private folders"
    },
    "parent_folder_id": {
      "type": "string",
      "description": "the id of the closest accessible parent folder in which the folder is located for the user. null is used folders which are not in a parent folder or don't have closest accessible parent folder"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the folder is hidden"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicates if this folder holds Projects or Templates"
    },
    "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",
    "content_type",
    "creation_date",
    "version_date"
  ]
}
Request  Create a top-level Group Folder to hold Projects
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Group Folder",
  "content_type": "PROJECTS",
  "group_id": "1200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the folder"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicate if the folder should hold Projects or Templates"
    },
    "group_id": {
      "type": "string",
      "description": "the id of the group to which the folder is associated"
    }
  },
  "required": [
    "title",
    "group_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /folders/46123
Body
{
  "id": "46123",
  "title": "Group Folder",
  "owner_id": "11038",
  "group_id": "1200",
  "parent_folder_id": "null",
  "hidden": false,
  "content_type": "PROJECTS",
  "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": {
    "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 closest accessible parent folder in which the folder is located for the user. null is used folders which are not in a parent folder or don't have closest accessible parent folder"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the folder is hidden"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicates if this folder holds Projects or Templates"
    },
    "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",
    "content_type",
    "creation_date",
    "version_date"
  ]
}
Request  Create a top-level Group Folder to hold Templates
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Group Folder",
  "content_type": "TEMPLATES",
  "group_id": "1200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the folder"
    },
    "content_type": {
      "type": "string",
      "description": "indicate if the folder should hold Projects or Templates"
    },
    "group_id": {
      "type": "string",
      "description": "the id of the group to which the folder is associated"
    }
  },
  "required": [
    "title",
    "group_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /folders/46123
Body
{
  "id": "46123",
  "title": "Group Folder",
  "owner_id": "11038",
  "group_id": "1200",
  "parent_folder_id": "null",
  "hidden": false,
  "content_type": "TEMPLATES",
  "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": {
    "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 closest accessible parent folder in which the folder is located for the user. null is used folders which are not in a parent folder or don't have closest accessible parent folder"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the folder is hidden"
    },
    "content_type": {
      "type": "string",
      "description": "indicates if this folder holds Projects or Templates"
    },
    "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",
    "content_type",
    "creation_date",
    "version_date"
  ]
}
Request  Create Group Folder as a Child of an Existing Group Folder
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Group Folder",
  "content_type": "PROJECTS",
  "group_id": "1200",
  "parent_folder_id": "36274"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the folder"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicate if the folder should hold Projects or Templates"
    },
    "group_id": {
      "type": "string",
      "description": "the id of the group to which the folder is associated"
    },
    "parent_folder_id": {
      "type": "string"
    }
  },
  "required": [
    "title",
    "group_id",
    "parent_folder_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /projects/46123
Body
{
  "id": "46123",
  "title": "Group Folder",
  "owner_id": "11038",
  "group_id": "1200",
  "parent_folder_id": "36274",
  "hidden": false,
  "content_type": "PROJECTS",
  "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": {
    "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",
      "description": "the id of the closest accessible parent folder in which the folder is located for the user. null is used folders which are not in a parent folder or don't have closest accessible parent folder"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the folder is hidden"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicates if this folder holds Projects or Templates"
    },
    "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",
    "content_type",
    "creation_date",
    "version_date"
  ]
}

Update Folder
PATCH/folders/{id}

This endpoint complies with RFC 6902, the specification for JSON Patch. Please note that the ‘value’ of the patch operation should be the new owner membership id, not the new owner id.

Update a folder’s owner. The supported operations will grow in time.

Example URI

PATCH /api/v2/folders/36292
URI Parameters
HideShow
id
string (required) Example: 36292

the unique id of the folder

Request  Change Folder Owner
HideShow
Headers
Content-Type: application/json-patch+json
Body
[
  {
    "op": "replace",
    "path": "/owner_id",
    "value": "3128"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "op": {
        "type": "string",
        "enum": [
          "replace"
        ],
        "description": "The replace operation defined by RFC 6902"
      },
      "path": {
        "type": "string",
        "enum": [
          "/owner_id"
        ],
        "description": "JSON Pointer notation to the owner of the folder"
      },
      "value": {
        "type": "string",
        "description": "the unique identifier of the group membership of the new owner"
      }
    },
    "required": [
      "op",
      "path",
      "value"
    ]
  }
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "46123",
  "title": "Luke's Folder",
  "owner_id": "11038",
  "group_id": "1200",
  "parent_folder_id": "null",
  "hidden": false,
  "content_type": "Hello, world!",
  "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": {
    "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 closest accessible parent folder in which the folder is located for the user. null is used folders which are not in a parent folder or don't have closest accessible parent folder"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the folder is hidden"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "PROJECTS",
        "TEMPLATES",
        "PROJECTS"
      ],
      "default": "PROJECTS",
      "description": "indicates if this folder holds Projects or Templates"
    },
    "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",
    "content_type",
    "creation_date",
    "version_date"
  ],
  "additionalProperties": false
}

Update Folder Access
PUT/folders/{id}/access

Update the access settings of a folder.
A folder can be either shared with specific members, subgroups or with the whole group. Sharing it with subgroups or the group will automatically enable access for any new member joining these group structures. The folder owner is always added to the access settings membership IDs automatically, to guarantee that she has access at any time.

If the folder is located inside another folder, all access settings of the parent folder will cascade to the respective folder, even if you do not provide those within your request. This means the response might slightly differ from the request for this and other reasons mentioned above.

Example URI

PUT /api/v2/folders/36274/access
URI Parameters
HideShow
id
string (required) Example: 36274

id of the folder

Request  Update Folder Access
HideShow
Headers
Content-Type: application/json
Body
{
  "folder_id": "36274",
  "group_membership_ids": [
    "3127",
    "3129"
  ],
  "subgroup_ids": [
    "234"
  ],
  "full_group_access": false
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "folder_id": {
      "type": "string",
      "description": "id of the folder"
    },
    "group_membership_ids": {
      "type": "array",
      "items": [
        {
          "type": "string"
        },
        {
          "type": "string"
        }
      ],
      "description": "ids of memberships that have access to the folder granted"
    },
    "subgroup_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "ids of subgroups which members have access to the folder granted"
    },
    "full_group_access": {
      "type": "boolean",
      "description": "boolean flag indicating if all group members have access to the folder granted. if this has value 'true', it makes setting the id fields obsolete."
    }
  },
  "required": [
    "folder_id",
    "group_membership_ids",
    "subgroup_ids",
    "full_group_access"
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "folder_id": "36274",
  "group_membership_ids": [
    "3127",
    "3129"
  ],
  "subgroup_ids": [
    "234"
  ],
  "full_group_access": false
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "folder_id": {
      "type": "string",
      "description": "id of the folder"
    },
    "group_membership_ids": {
      "type": "array",
      "items": [
        {
          "type": "string"
        },
        {
          "type": "string"
        }
      ],
      "description": "ids of memberships that have access to the folder granted"
    },
    "subgroup_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "ids of subgroups which members have access to the folder granted"
    },
    "full_group_access": {
      "type": "boolean",
      "description": "boolean flag indicating if all group members have access to the folder granted. if this has value 'true', it makes setting the id fields obsolete."
    }
  },
  "required": [
    "folder_id",
    "group_membership_ids",
    "subgroup_ids",
    "full_group_access"
  ],
  "additionalProperties": false
}

Templates

Templates Resource

Create Template
POST/templates

Create a Template

Example URI

POST /api/v2/templates
Request  Create Private Template
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Template"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the template"
    }
  },
  "required": [
    "title"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /templates/53124
Body
{
  "title": "Luke's Private Template",
  "id": "36280",
  "owner_id": "11038",
  "entry_id": "548613",
  "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 template"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the template"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the template owner"
    },
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which is stored inside the template"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the template is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the template is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the template is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the template was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the template was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "entry_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ]
}
Request  Create Private Template in a Folder
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Template",
  "folder_id": "36282"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the template"
    },
    "folder_id": {
      "type": "string",
      "description": "the id of the folder in which the template is stored"
    }
  },
  "required": [
    "title",
    "folder_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /templates/53124
Body
{
  "title": "Luke's Private Template",
  "id": "36280",
  "owner_id": "11038",
  "entry_id": "548613",
  "group_id": "null",
  "folder_id": "36281",
  "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 template"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the template"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the template owner"
    },
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which is stored inside the template"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the template is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the template is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the template is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the template was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the template was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "entry_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ],
  "additionalProperties": false
}
Request  Create Group Template
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Template",
  "group_id": "1200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the template"
    },
    "group_id": {
      "type": "string",
      "description": "the id of the group to which the template is associated"
    }
  },
  "required": [
    "title",
    "group_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /templates/53124
Body
{
  "title": "Luke's Private Template",
  "id": "36280",
  "owner_id": "11038",
  "entry_id": "548613",
  "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 template"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the template"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the template owner"
    },
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which is stored inside the template"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the template is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the template is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the template is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the template was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the template was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "entry_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ],
  "additionalProperties": false
}
Request  Create Group Template in a Folder
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Luke's Private Template",
  "folder_id": "36281",
  "group_id": "1200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the template"
    },
    "folder_id": {
      "type": "string",
      "description": "the id of the folder in which the template is stored"
    },
    "group_id": {
      "type": "string",
      "description": "the id of the group to which the template is associated"
    }
  },
  "required": [
    "title",
    "folder_id",
    "group_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /templates/53124
Body
{
  "title": "Luke's Private Template",
  "id": "36280",
  "owner_id": "11038",
  "entry_id": "548613",
  "group_id": "1200",
  "folder_id": "36281",
  "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 template"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the template"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the template owner"
    },
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which is stored inside the template"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the template is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the template is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the template is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the template was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the template was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "entry_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ],
  "additionalProperties": false
}
Request  Create Template from an Existing Entry
HideShow

Creates a new template using the source entry identified in the Source-Id header. Note that the templates target group must be the same group as that of the source entry. Further, you must have read access to the source entry.

Headers
Content-Type: application/json
Source-Id: 938304
Body
{
  "title": "Luke's Private Template",
  "group_id": "1200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the template"
    },
    "group_id": {
      "type": "string",
      "description": "The id of the group to which the template is associated. This has to be the same group ID as the one of the source entry"
    }
  },
  "required": [
    "title",
    "group_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /templates/53124
Body
{
  "title": "Luke's Private Template",
  "id": "36280",
  "owner_id": "11038",
  "entry_id": "548613",
  "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 template"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the template"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the template owner"
    },
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which is stored inside the template"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the template is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the template is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the template is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the template was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the template was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "entry_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ],
  "additionalProperties": false
}

Get Template
GET/templates/{id}{?expand}

Returns the latest version of a template

Example URI

GET /api/v2/templates/36280?expand=
URI Parameters
HideShow
id
string (required) Example: 36280

id of the template

expand
string (optional) 

A comma separated list of related domain objects that should be expanded for the template returned

Choices: entry owner

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's Private Template",
  "id": "36280",
  "owner_id": "11038",
  "entry_id": "548613",
  "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 template"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the template"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the template owner"
    },
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which is stored inside the template"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the template is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the template is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the template is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the template was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the template was last modified"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "entry_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date"
  ],
  "additionalProperties": false
}
Request  ?expand=entry
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's Private Template",
  "id": "36280",
  "owner_id": "11038",
  "entry_id": "548613",
  "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",
  "entry": {
    "id": "548613",
    "version_id": "5309878",
    "author_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_date": "2017-02-15T12:34:56.789+0200",
    "element_layout": {
      "rows": [
        {
          "cells": [
            {
              "element_version_id": "2309983",
              "width": 60
            }
          ]
        }
      ]
    },
    "elements": [
      {
        "id": "e79cfbb5d2cb5a39b7a821a3ae0476e6605adcc2",
        "version_id": "2309983",
        "type": "TEXT"
      }
    ],
    "tags": [
      "luke",
      "star wars"
    ],
    "custom_dates": [
      {
        "name": "validation date",
        "value": "2017-12-25"
      }
    ],
    "template_id": "36280"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display name of the template"
    },
    "id": {
      "type": "string",
      "description": "the unique id of the template"
    },
    "owner_id": {
      "type": "string",
      "description": "the id of the template owner"
    },
    "entry_id": {
      "type": "string",
      "description": "the stable id of the entry which is stored inside the template"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the template is associated"
    },
    "folder_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the folder in which the template is stored"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicating if the template is hidden"
    },
    "creation_date": {
      "type": "string",
      "description": "date when the template was created"
    },
    "version_date": {
      "type": "string",
      "description": "date when the template was last modified"
    },
    "entry": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "the unique id of the entry"
        },
        "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"
        },
        "element_layout": {
          "type": "object",
          "properties": {
            "rows": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "object",
                "properties": {
                  "cells": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "object",
                      "properties": {
                        "element_version_id": {
                          "type": "string",
                          "description": "The version id of this element"
                        },
                        "width": {
                          "type": "number",
                          "description": "The width of the cell in percentage, where 0 means that available width is filled"
                        }
                      },
                      "required": [
                        "element_version_id",
                        "width"
                      ]
                    }
                  }
                },
                "required": [
                  "cells"
                ]
              },
              "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",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The stable id of the element"
              },
              "version_id": {
                "type": "string",
                "description": "The version id of this element"
              },
              "type": {
                "type": "string",
                "enum": [
                  "DATA",
                  "FILE",
                  "IMAGE",
                  "TABLE",
                  "TEXT",
                  "WELL_PLATE"
                ],
                "description": "The type of the element"
              }
            },
            "required": [
              "id",
              "version_id",
              "type"
            ]
          },
          "description": "The elements in this entry"
        },
        "tags": {
          "type": "array",
          "items": [
            {
              "type": "string"
            },
            {
              "type": "string"
            }
          ],
          "description": "The tags for this entry. Tags are case insensitive."
        },
        "custom_dates": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the custom date. Names are case insensitive."
              },
              "value": {
                "type": "string",
                "description": "The value of this custom date"
              }
            },
            "required": [
              "name",
              "value"
            ]
          },
          "description": "Custom dates for this entry"
        },
        "template_id": {
          "type": "string",
          "description": "template location of the entry"
        }
      },
      "required": [
        "id",
        "version_id",
        "author_id",
        "creation_date",
        "version_date",
        "element_layout",
        "elements",
        "tags",
        "custom_dates",
        "template_id"
      ],
      "description": "the entry referenced by the `entry_id` property"
    }
  },
  "required": [
    "title",
    "id",
    "owner_id",
    "entry_id",
    "group_id",
    "folder_id",
    "hidden",
    "creation_date",
    "version_date",
    "entry"
  ],
  "additionalProperties": false
}

Notebook

Entries

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

Returns the list of entries

Example URI

GET /api/v2/entries?sort=&omit_empty_title=&title=&expand=&limit=&offset=&project_ids=
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 last_editor

project_ids
string (optional) 
A comma separated list of project ids that results in returning only entries within the specified project(s)
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
X-Total-Count: 1
X-Limit: 20
X-Offset: 0
Body
[
  {
    "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",
    "element_layout": {
      "rows": [
        {
          "cells": [
            {
              "element_version_id": "2309983",
              "width": 60
            }
          ]
        }
      ]
    },
    "elements": [
      {
        "id": "e79cfbb5d2cb5a39b7a821a3ae0476e6605adcc2",
        "version_id": "2309983",
        "type": "DATA"
      }
    ],
    "tags": [
      "luke",
      "star wars"
    ],
    "custom_dates": [
      {
        "name": "validation date",
        "value": "2017-12-25"
      }
    ],
    "project_id": "36272",
    "title": "Luke's Private Entry",
    "entry_number": 1,
    "hidden": false,
    "editable": true,
    "last_editor_id": "11038"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "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"
      },
      "element_layout": {
        "type": "object",
        "properties": {
          "rows": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "properties": {
                "cells": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "object",
                    "properties": {
                      "element_version_id": {
                        "type": "string",
                        "description": "The version id of this element"
                      },
                      "width": {
                        "type": "number",
                        "description": "The width of the cell in percentage, where 0 means that available width is filled"
                      }
                    },
                    "required": [
                      "element_version_id",
                      "width"
                    ]
                  }
                }
              },
              "required": [
                "cells"
              ]
            },
            "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",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The stable id of the element"
            },
            "version_id": {
              "type": "string",
              "description": "The version id of this element"
            },
            "type": {
              "type": "string",
              "enum": [
                "DATA",
                "FILE",
                "IMAGE",
                "TABLE",
                "TEXT",
                "WELL_PLATE"
              ],
              "description": "The type of the element"
            }
          },
          "required": [
            "id",
            "version_id",
            "type"
          ]
        },
        "description": "The elements in this entry"
      },
      "tags": {
        "type": "array",
        "items": [
          {
            "type": "string"
          },
          {
            "type": "string"
          }
        ],
        "description": "The tags for this entry. Tags are case insensitive."
      },
      "custom_dates": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The name of the custom date. Names are case insensitive."
            },
            "value": {
              "type": "string",
              "description": "The value of this custom date"
            }
          },
          "required": [
            "name",
            "value"
          ]
        },
        "description": "Custom dates for this entry"
      },
      "project_id": {
        "type": "string",
        "description": "project location of the entry"
      },
      "title": {
        "type": "string",
        "description": "the display name of the entry"
      },
      "entry_number": {
        "type": "number",
        "description": "position of the entry inside the project"
      },
      "hidden": {
        "type": "boolean",
        "description": "indicates if the entry is hidden or visible"
      },
      "editable": {
        "type": "boolean",
        "description": "Indicates if the requesting user has write access to the entry. An entry is editable if the user is the entry author while the entry is neither signed nor hidden."
      },
      "last_editor_id": {
        "type": "string",
        "description": "the unique id of the last user who made a modification to the entry"
      }
    },
    "required": [
      "id",
      "version_id",
      "author_id",
      "creation_date",
      "version_date",
      "element_layout",
      "elements",
      "tags",
      "custom_dates",
      "project_id",
      "title",
      "entry_number",
      "hidden",
      "editable",
      "last_editor_id"
    ]
  }
}

Create Entry
POST/entries

Create a entry

Example URI

POST /api/v2/entries
Request  Create Entry with Title
HideShow
Headers
Content-Type: application/json
Body
{
  "project_id": "36272",
  "title": "Luke's Private Entry"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    }
  },
  "required": [
    "project_id",
    "title"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /entries/10945
Body
{
  "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",
  "element_layout": {
    "rows": []
  },
  "elements": [],
  "tags": [],
  "custom_dates": [],
  "project_id": "36272",
  "title": "Luke's Private Entry",
  "entry_number": 1,
  "hidden": false,
  "editable": true,
  "last_editor_id": "11038"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "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"
    },
    "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",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "Custom dates for this entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "entry_number": {
      "type": "number",
      "description": "position of the entry inside the project"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "editable": {
      "type": "boolean",
      "description": "Indicates if the requesting user has write access to the entry. An entry is editable if the user is the entry author while the entry is neither signed nor hidden."
    },
    "last_editor_id": {
      "type": "string",
      "description": "the unique id of the last user who made a modification to the entry"
    }
  },
  "required": [
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "element_layout",
    "elements",
    "tags",
    "custom_dates",
    "project_id",
    "title",
    "entry_number",
    "hidden",
    "editable",
    "last_editor_id"
  ],
  "additionalProperties": false
}
Request  Create Entry with Tags
HideShow
Headers
Content-Type: application/json
Body
{
  "project_id": "36272",
  "title": "Luke's Private Entry",
  "tags": [
    "luke",
    "star wars"
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "tags": {
      "type": "array",
      "description": "array of strings representing tags"
    }
  },
  "required": [
    "project_id",
    "title",
    "tags"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /entries/10945
Body
{
  "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",
  "element_layout": {
    "rows": []
  },
  "elements": [],
  "tags": [
    "luke",
    "star wars"
  ],
  "custom_dates": [],
  "project_id": "36272",
  "title": "Luke's Private Entry",
  "entry_number": 1,
  "hidden": false,
  "editable": true,
  "last_editor_id": "11038"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "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"
    },
    "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",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "Custom dates for this entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "entry_number": {
      "type": "number",
      "description": "position of the entry inside the project"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "editable": {
      "type": "boolean",
      "description": "Indicates if the requesting user has write access to the entry. An entry is editable if the user is the entry author while the entry is neither signed nor hidden."
    },
    "last_editor_id": {
      "type": "string",
      "description": "the unique id of the last user who made a modification to the entry"
    }
  },
  "required": [
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "element_layout",
    "elements",
    "tags",
    "custom_dates",
    "project_id",
    "title",
    "entry_number",
    "hidden",
    "editable",
    "last_editor_id"
  ],
  "additionalProperties": false
}
Request  Create Entry with Custom Dates
HideShow
Headers
Content-Type: application/json
Body
{
  "project_id": "36272",
  "title": "Luke's Private Entry",
  "custom_dates": [
    {
      "name": "validation date",
      "value": "2017-12-25"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "custom_dates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the custom date. Names are case insensitive."
          },
          "value": {
            "type": "string",
            "description": "The value of this custom date"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "description": "array of custom dates"
    }
  },
  "required": [
    "project_id",
    "title",
    "custom_dates"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /entries/10945
Body
{
  "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",
  "element_layout": {
    "rows": []
  },
  "elements": [],
  "tags": [],
  "custom_dates": [
    {
      "name": "validation date",
      "value": "2017-12-25"
    }
  ],
  "project_id": "36272",
  "title": "Luke's Private Entry",
  "entry_number": 1,
  "hidden": false,
  "editable": true,
  "last_editor_id": "11038"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "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"
    },
    "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",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the custom date. Names are case insensitive."
          },
          "value": {
            "type": "string",
            "description": "The value of this custom date"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "description": "Custom dates for this entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "entry_number": {
      "type": "number",
      "description": "position of the entry inside the project"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "editable": {
      "type": "boolean",
      "description": "Indicates if the requesting user has write access to the entry. An entry is editable if the user is the entry author while the entry is neither signed nor hidden."
    },
    "last_editor_id": {
      "type": "string",
      "description": "the unique id of the last user who made a modification to the entry"
    }
  },
  "required": [
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "element_layout",
    "elements",
    "tags",
    "custom_dates",
    "project_id",
    "title",
    "entry_number",
    "hidden",
    "editable",
    "last_editor_id"
  ],
  "additionalProperties": false
}
Request  Create Entry from an Existing Entry or Template
HideShow

Creates a new entry in the target project using the notebook entry or template entry identified by the Source-Id header. Providing the Source-Id header causes all additional fields, other than project_id, to be omitted for the creation. Note that the target project must exist within the same group as that of the source notebook entry or template entry.

Headers
Content-Type: application/json
Source-Id: 938302
Body
{
  "project_id": "36272"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    }
  },
  "required": [
    "project_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Location: /entries/10945
Body
{
  "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",
  "element_layout": {
    "rows": []
  },
  "elements": [],
  "tags": [],
  "custom_dates": [],
  "project_id": "36272",
  "title": "Luke's Private Entry",
  "entry_number": 1,
  "hidden": false,
  "editable": true,
  "last_editor_id": "11038"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "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"
    },
    "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",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {}
      },
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "description": "Custom dates for this entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "entry_number": {
      "type": "number",
      "description": "position of the entry inside the project"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "editable": {
      "type": "boolean",
      "description": "Indicates if the requesting user has write access to the entry. An entry is editable if the user is the entry author while the entry is neither signed nor hidden."
    },
    "last_editor_id": {
      "type": "string",
      "description": "the unique id of the last user who made a modification to the entry"
    }
  },
  "required": [
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "element_layout",
    "elements",
    "tags",
    "custom_dates",
    "project_id",
    "title",
    "entry_number",
    "hidden",
    "editable",
    "last_editor_id"
  ],
  "additionalProperties": false
}

Update Entry
PATCH/entries/{id}

Update an entry’s attributes. The supported operations will grow in time. This endpoint complies with RFC 6902, the specification for JSON Patch.

Example URI

PATCH /api/v2/entries/938306
URI Parameters
HideShow
id
string (required) Example: 938306

the unique id of the entry

Request  Change the Project of an Entry
HideShow

Note: the Project must exist in the same workspace as the entry for the operation to be successful.

Headers
Content-Type: application/json-patch+json
Body
[
  {
    "op": "replace",
    "path": "/project_id",
    "value": "36272"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "op": {
        "type": "string",
        "enum": [
          "replace"
        ],
        "description": "The replace operation defined by RFC 6902"
      },
      "path": {
        "type": "string",
        "enum": [
          "/project_id"
        ],
        "description": "JSON Pointer notation to the member named project id"
      },
      "value": {
        "type": "string",
        "description": "the id of the project, in which the entry should move"
      }
    },
    "required": [
      "op",
      "path",
      "value"
    ]
  }
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "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",
  "element_layout": {
    "rows": [
      {
        "cells": [
          {
            "element_version_id": "2309983",
            "width": 60
          }
        ]
      }
    ]
  },
  "elements": [
    {
      "id": "e79cfbb5d2cb5a39b7a821a3ae0476e6605adcc2",
      "version_id": "2309983",
      "type": "DATA"
    }
  ],
  "tags": [
    "luke",
    "star wars"
  ],
  "custom_dates": [
    {
      "name": "validation date",
      "value": "2017-12-25"
    }
  ],
  "project_id": "36272",
  "title": "Luke's Private Entry",
  "entry_number": 1,
  "hidden": false,
  "editable": true,
  "last_editor_id": "11038"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "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"
    },
    "element_layout": {
      "type": "object",
      "properties": {
        "rows": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "cells": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object",
                  "properties": {
                    "element_version_id": {
                      "type": "string",
                      "description": "The version id of this element"
                    },
                    "width": {
                      "type": "number",
                      "description": "The width of the cell in percentage, where 0 means that available width is filled"
                    }
                  },
                  "required": [
                    "element_version_id",
                    "width"
                  ]
                }
              }
            },
            "required": [
              "cells"
            ]
          },
          "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",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The stable id of the element"
          },
          "version_id": {
            "type": "string",
            "description": "The version id of this element"
          },
          "type": {
            "type": "string",
            "enum": [
              "DATA",
              "FILE",
              "IMAGE",
              "TABLE",
              "TEXT",
              "WELL_PLATE"
            ],
            "description": "The type of the element"
          }
        },
        "required": [
          "id",
          "version_id",
          "type"
        ]
      },
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "items": [
        {
          "type": "string"
        },
        {
          "type": "string"
        }
      ],
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the custom date. Names are case insensitive."
          },
          "value": {
            "type": "string",
            "description": "The value of this custom date"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "description": "Custom dates for this entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "entry_number": {
      "type": "number",
      "description": "position of the entry inside the project"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "editable": {
      "type": "boolean",
      "description": "Indicates if the requesting user has write access to the entry. An entry is editable if the user is the entry author while the entry is neither signed nor hidden."
    },
    "last_editor_id": {
      "type": "string",
      "description": "the unique id of the last user who made a modification to the entry"
    }
  },
  "required": [
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "element_layout",
    "elements",
    "tags",
    "custom_dates",
    "project_id",
    "title",
    "entry_number",
    "hidden",
    "editable",
    "last_editor_id"
  ],
  "additionalProperties": false
}
Request  Change the visibility of an Entry
HideShow
Headers
Content-Type: application/json-patch+json
Body
[
  {
    "op": "replace",
    "path": "/hidden",
    "value": true
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "op": {
        "type": "string",
        "enum": [
          "replace"
        ],
        "description": "The replace operation defined by RFC 6902"
      },
      "path": {
        "type": "string",
        "enum": [
          "/hidden"
        ],
        "description": "JSON Pointer notation to the member named hidden"
      },
      "value": {
        "type": "boolean",
        "description": "true to hide the entry, false to make the entry visible"
      }
    },
    "required": [
      "op",
      "path",
      "value"
    ]
  }
}
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "id": "938306",
  "version_id": "5309878",
  "author_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "element_layout": {
    "rows": [
      {
        "cells": [
          {
            "element_version_id": "2309983",
            "width": 60
          }
        ]
      }
    ]
  },
  "elements": [
    {
      "id": "e79cfbb5d2cb5a39b7a821a3ae0476e6605adcc2",
      "version_id": "2309983",
      "type": "TEXT"
    }
  ],
  "tags": [
    "luke",
    "star wars"
  ],
  "custom_dates": [
    {
      "name": "validation date",
      "value": "2017-12-25"
    }
  ],
  "project_id": "36272",
  "title": "Luke's Private Entry",
  "entry_number": 1,
  "hidden": true,
  "editable": true,
  "last_editor_id": "11038"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "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"
    },
    "element_layout": {
      "type": "object",
      "properties": {
        "rows": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "cells": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object",
                  "properties": {
                    "element_version_id": {
                      "type": "string",
                      "description": "The version id of this element"
                    },
                    "width": {
                      "type": "number",
                      "description": "The width of the cell in percentage, where 0 means that available width is filled"
                    }
                  },
                  "required": [
                    "element_version_id",
                    "width"
                  ]
                }
              }
            },
            "required": [
              "cells"
            ]
          },
          "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",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The stable id of the element"
          },
          "version_id": {
            "type": "string",
            "description": "The version id of this element"
          },
          "type": {
            "type": "string",
            "enum": [
              "DATA",
              "FILE",
              "IMAGE",
              "TABLE",
              "TEXT",
              "WELL_PLATE"
            ],
            "description": "The type of the element"
          }
        },
        "required": [
          "id",
          "version_id",
          "type"
        ]
      },
      "description": "The elements in this entry"
    },
    "tags": {
      "type": "array",
      "items": [
        {
          "type": "string"
        },
        {
          "type": "string"
        }
      ],
      "description": "The tags for this entry. Tags are case insensitive."
    },
    "custom_dates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the custom date. Names are case insensitive."
          },
          "value": {
            "type": "string",
            "description": "The value of this custom date"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "description": "Custom dates for this entry"
    },
    "project_id": {
      "type": "string",
      "description": "project location of the entry"
    },
    "title": {
      "type": "string",
      "description": "the display name of the entry"
    },
    "entry_number": {
      "type": "number",
      "description": "position of the entry inside the project"
    },
    "hidden": {
      "type": "boolean",
      "description": "indicates if the entry is hidden or visible"
    },
    "editable": {
      "type": "boolean",
      "description": "Indicates if the requesting user has write access to the entry. An entry is editable if the user is the entry author while the entry is neither signed nor hidden."
    },
    "last_editor_id": {
      "type": "string",
      "description": "the unique id of the last user who made a modification to the entry"
    }
  },
  "required": [
    "id",
    "version_id",
    "author_id",
    "creation_date",
    "version_date",
    "element_layout",
    "elements",
    "tags",
    "custom_dates",
    "project_id",
    "title",
    "entry_number",
    "hidden",
    "editable",
    "last_editor_id"
  ],
  "additionalProperties": false
}

Favorite Entries

Create Favorite
POST/favorite-entries

Mark an entry as favorite

Example URI

POST /api/v2/favorite-entries
Request  Create Favorite
HideShow
Headers
Content-Type: application/json
Body
{
  "entry_id": "938311",
  "project_id": "36272"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "id of the entry"
    },
    "project_id": {
      "type": "string",
      "description": "id of the project"
    }
  },
  "required": [
    "entry_id",
    "project_id"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "entry_id": "938311",
  "project_id": "36272",
  "id": 1,
  "user_id": "11038",
  "create_timestamp": "2022-11-07T16:32:12.729+0200",
  "last_edit_timestamp": "2022-11-07T16:32:12.729+0200"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string",
      "description": "id of the entry"
    },
    "project_id": {
      "type": "string",
      "description": "id of the project"
    },
    "id": {
      "type": "number",
      "description": "id of the favorite record"
    },
    "user_id": {
      "type": "string",
      "description": "id of the favorite owner"
    },
    "create_timestamp": {
      "type": "string",
      "description": "timestamp of the creation"
    },
    "last_edit_timestamp": {
      "type": "string",
      "description": "timestamp of last edition"
    }
  },
  "required": [
    "entry_id",
    "project_id",
    "id",
    "user_id",
    "create_timestamp",
    "last_edit_timestamp"
  ],
  "additionalProperties": false
}

Delete Favorite
DELETE/favorite-entries/{entry_id}

Removes an entry as favorite

Example URI

DELETE /api/v2/favorite-entries/938311
URI Parameters
HideShow
entry_id
string (required) Example: 938311

id of the entry

Response  204

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 /api/v2/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",
    "download_file_length": 12345,
    "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://labfolder.labforward.app/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",
    "download_file_length": 12345,
    "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://labfolder.labforward.app/api/v2/exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285",
    "settings": {}
  }
]
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",
              "items": {
                "type": "string"
              },
              "description": "the ids of projects that are contained in the export"
            },
            "entry_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "the ids of entries that are contained in the export"
            },
            "template_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "the ids of templates that are contained in the export"
            },
            "group_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "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",
            "ABORT_PARALLEL"
          ],
          "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"
        },
        "download_file_length": {
          "type": "number",
          "description": "the export download file content size in bytes"
        },
        "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",
        "download_file_length",
        "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",
              "items": {
                "type": "string"
              },
              "description": "the ids of projects that are contained in the export"
            },
            "entry_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "the ids of entries that are contained in the export"
            },
            "template_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "the ids of templates that are contained in the export"
            },
            "group_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "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",
            "ABORT_PARALLEL"
          ],
          "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"
        },
        "download_file_length": {
          "type": "number",
          "description": "the export download file content size in bytes"
        },
        "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": {
            "preserve_entry_layout": {
              "type": "boolean",
              "description": "defines if PDF maintains the entry layout or lists all entry elements bellow each other",
              "default": true
            }
          }
        }
      },
      "required": [
        "id",
        "user_id",
        "type",
        "content",
        "status",
        "completion_date",
        "download_file_length",
        "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 /api/v2/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",
    "download_file_length": 12345,
    "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://labfolder.labforward.app/api/v2/exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285",
    "settings": {}
  }
]
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",
            "items": {
              "type": "string"
            },
            "description": "the ids of projects that are contained in the export"
          },
          "entry_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "the ids of entries that are contained in the export"
          },
          "template_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "the ids of templates that are contained in the export"
          },
          "group_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "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",
          "ABORT_PARALLEL"
        ],
        "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"
      },
      "download_file_length": {
        "type": "number",
        "description": "the export download file content size in bytes"
      },
      "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": {
          "preserve_entry_layout": {
            "type": "boolean",
            "description": "defines if PDF maintains the entry layout or lists all entry elements bellow each other",
            "default": true
          }
        }
      }
    },
    "required": [
      "id",
      "user_id",
      "type",
      "content",
      "status",
      "completion_date",
      "download_file_length",
      "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 /api/v2/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",
  "download_file_length": 12345,
  "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://labfolder.labforward.app/api/v2/exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285",
  "settings": {}
}
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",
          "items": {
            "type": "string"
          },
          "description": "the ids of projects that are contained in the export"
        },
        "entry_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of entries that are contained in the export"
        },
        "template_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of templates that are contained in the export"
        },
        "group_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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",
        "ABORT_PARALLEL"
      ],
      "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"
    },
    "download_file_length": {
      "type": "number",
      "description": "the export download file content size in bytes"
    },
    "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": {
        "preserve_entry_layout": {
          "type": "boolean",
          "description": "defines if PDF maintains the entry layout or lists all entry elements bellow each other",
          "default": true
        }
      }
    }
  },
  "required": [
    "id",
    "user_id",
    "type",
    "content",
    "status",
    "completion_date",
    "download_file_length",
    "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 /api/v2/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"`
Content-Length: 12345
Body
... file content as binary ...

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 /api/v2/exports/pdf
Request  Create PDF Export
HideShow
Headers
Content-Type: application/json
Body
{
  "download_filename": "example project",
  "settings": {
    "preserve_entry_layout": true
  },
  "content": {
    "project_ids": [
      "36272"
    ],
    "entry_ids": [
      "938302"
    ],
    "template_ids": [
      "36280"
    ],
    "group_ids": [
      "1200"
    ]
  }
}
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": {
        "preserve_entry_layout": {
          "type": "boolean",
          "description": "defines if PDF maintains the entry layout or lists all entry elements bellow each other",
          "default": true
        }
      },
      "description": "json object defining custom settings for export content"
    },
    "content": {
      "type": "object",
      "properties": {
        "project_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of projects to be exported"
        },
        "entry_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of entries to be exported"
        },
        "template_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of templates to be exported"
        },
        "group_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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",
  "download_file_length": 12345,
  "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://labfolder.labforward.app/api/v2/exports/pdf/20e699a3-4764-461f-a4bc-d10d7cbba3f0?X-Labfolder-Signature=2ff8f6e9044138adb49e4a3c0674b5b4992c8c51aa907f605ecf5da85833d020&X-Labfolder-Expires=1554974215285",
  "settings": {}
}
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",
          "items": {
            "type": "string"
          },
          "description": "the ids of projects that are contained in the export"
        },
        "entry_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of entries that are contained in the export"
        },
        "template_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of templates that are contained in the export"
        },
        "group_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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",
        "ABORT_PARALLEL"
      ],
      "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"
    },
    "download_file_length": {
      "type": "number",
      "description": "the export download file content size in bytes"
    },
    "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": {
        "preserve_entry_layout": {
          "type": "boolean",
          "description": "defines if PDF maintains the entry layout or lists all entry elements bellow each other",
          "default": true
        }
      }
    }
  },
  "required": [
    "id",
    "user_id",
    "type",
    "content",
    "status",
    "completion_date",
    "download_file_length",
    "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 /api/v2/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",
    "download_file_length": 12345,
    "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://labfolder.labforward.app/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",
            "items": {
              "type": "string"
            },
            "description": "the ids of projects that are contained in the export"
          },
          "entry_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "the ids of entries that are contained in the export"
          },
          "template_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "the ids of templates that are contained in the export"
          },
          "group_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "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",
          "ABORT_PARALLEL"
        ],
        "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"
      },
      "download_file_length": {
        "type": "number",
        "description": "the export download file content size in bytes"
      },
      "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",
      "download_file_length",
      "creation_date",
      "version_date",
      "download_filename"
    ]
  }
}

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

Returns the current version of the XHTML export.

Example URI

GET /api/v2/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",
  "download_file_length": 12345,
  "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://labfolder.labforward.app/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",
          "items": {
            "type": "string"
          },
          "description": "the ids of projects that are contained in the export"
        },
        "entry_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of entries that are contained in the export"
        },
        "template_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of templates that are contained in the export"
        },
        "group_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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",
        "ABORT_PARALLEL"
      ],
      "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"
    },
    "download_file_length": {
      "type": "number",
      "description": "the export download file content size in bytes"
    },
    "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",
    "download_file_length",
    "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 /api/v2/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"`
Content-Length: 12345
Body
... file content as binary ...

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 /api/v2/exports/xhtml
Request  Create XHTML Export
HideShow
Headers
Content-Type: application/json
Body
{}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {}
}
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",
  "download_file_length": 12345,
  "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://labfolder.labforward.app/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",
          "items": {
            "type": "string"
          },
          "description": "the ids of projects that are contained in the export"
        },
        "entry_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of entries that are contained in the export"
        },
        "template_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "the ids of templates that are contained in the export"
        },
        "group_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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",
        "ABORT_PARALLEL"
      ],
      "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"
    },
    "download_file_length": {
      "type": "number",
      "description": "the export download file content size in bytes"
    },
    "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",
    "download_file_length",
    "creation_date",
    "version_date",
    "download_filename"
  ],
  "additionalProperties": false
}

Labregister

Categories

List Categories
GET/mdb/categories{?group_id,expand}

Returns the list of all accessible categories of the requesting user

Example URI

GET /api/v2/mdb/categories?group_id=1200&expand=
URI Parameters
HideShow
group_id
string (optional) Example: 1200

Only return the categories that belong to the specified group

expand
string (optional) 

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

Choices: creator

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "title": "Luke's Private Vehicles",
    "attributes": [
      {
        "type": "Text",
        "title": "Model",
        "mandatory": false,
        "options": [
          "null"
        ],
        "settings": null
      }
    ],
    "id": "b10b785d-d87d-48cf-9c0b-d7be08f377b2",
    "group_id": "1200",
    "creator_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
    "version_date": "2017-02-15T12:34:56.789+0200",
    "version": 1,
    "status": "ACTIVE"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display title of the category"
      },
      "attributes": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Text",
                "LongText",
                "Date",
                "Number",
                "Url",
                "Dropdown",
                "Barcode"
              ]
            },
            "title": {
              "type": "string",
              "description": "the display title of the attribute"
            },
            "mandatory": {
              "type": "boolean",
              "description": "when set to `true` the items created in this category should have an associated value for this attribute"
            },
            "options": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string"
              },
              "description": "when the attribute type is Dropdown, then this array should be sent together"
            },
            "settings": {
              "type": [
                "object",
                "null"
              ],
              "properties": {},
              "description": "the field which contains additional settings data of attribute"
            }
          },
          "required": [
            "type",
            "title",
            "mandatory"
          ]
        },
        "description": "The attribute definitions of the category"
      },
      "id": {
        "type": "string",
        "description": "the stable id of the category"
      },
      "group_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the group to which the category is associated"
      },
      "creator_id": {
        "type": "string",
        "description": "the user id of the original author"
      },
      "creation_date": {
        "type": "string",
        "description": "the creation date of the category"
      },
      "version_id": {
        "type": "string",
        "description": "the unique, version id of the category"
      },
      "version_date": {
        "type": "string",
        "description": "the last modification date of the category"
      },
      "version": {
        "type": "number",
        "description": "the version number of the category (it is automatically incremented for each modification on the category)"
      },
      "status": {
        "type": "string",
        "enum": [
          "ACTIVE",
          "DELETED",
          "HIDDEN"
        ],
        "description": "indicates whether category is active, hidden or deleted"
      }
    },
    "required": [
      "title",
      "id",
      "group_id",
      "creator_id",
      "creation_date",
      "version_id",
      "version_date",
      "version",
      "status"
    ]
  }
}

List Categories with Group & Keyword
GET/mdb/categories{?group_id,keyword,status,expand}

Returns the list of accessible categories of the requesting user filtered with group id and keyword

Example URI

GET /api/v2/mdb/categories?group_id=1200&keyword=Name&status=ACTIVE&expand=
URI Parameters
HideShow
group_id
string (required) Example: 1200

Only return the categories that belongs to the group

keyword
string (optional) Example: Name

Only return the categories that belongs to the group and has the specific keyword in the name

status
string (optional) Example: ACTIVE

Only return the categories of the specific status that belongs to the group

expand
string (optional) 

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

Choices: creator

Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "title": "Luke's Private Vehicles",
    "attributes": [
      {
        "type": "Text",
        "title": "Model",
        "mandatory": false,
        "options": [
          "null"
        ],
        "settings": null
      }
    ],
    "id": "b10b785d-d87d-48cf-9c0b-d7be08f377b2",
    "group_id": "1200",
    "creator_id": "11038",
    "creation_date": "2017-02-10T12:34:56.789+0200",
    "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
    "version_date": "2017-02-15T12:34:56.789+0200",
    "version": 1,
    "status": "ACTIVE"
  }
]
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "the display title of the category"
      },
      "attributes": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "Text",
                "LongText",
                "Date",
                "Number",
                "Url",
                "Dropdown",
                "Barcode"
              ]
            },
            "title": {
              "type": "string",
              "description": "the display title of the attribute"
            },
            "mandatory": {
              "type": "boolean",
              "description": "when set to `true` the items created in this category should have an associated value for this attribute"
            },
            "options": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string"
              },
              "description": "when the attribute type is Dropdown, then this array should be sent together"
            },
            "settings": {
              "type": [
                "object",
                "null"
              ],
              "properties": {},
              "description": "the field which contains additional settings data of attribute"
            }
          },
          "required": [
            "type",
            "title",
            "mandatory"
          ]
        },
        "description": "The attribute definitions of the category"
      },
      "id": {
        "type": "string",
        "description": "the stable id of the category"
      },
      "group_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "the id of the group to which the category is associated"
      },
      "creator_id": {
        "type": "string",
        "description": "the user id of the original author"
      },
      "creation_date": {
        "type": "string",
        "description": "the creation date of the category"
      },
      "version_id": {
        "type": "string",
        "description": "the unique, version id of the category"
      },
      "version_date": {
        "type": "string",
        "description": "the last modification date of the category"
      },
      "version": {
        "type": "number",
        "description": "the version number of the category (it is automatically incremented for each modification on the category)"
      },
      "status": {
        "type": "string",
        "enum": [
          "ACTIVE",
          "DELETED",
          "HIDDEN"
        ],
        "description": "indicates whether category is active, hidden or deleted"
      }
    },
    "required": [
      "title",
      "id",
      "group_id",
      "creator_id",
      "creation_date",
      "version_id",
      "version_date",
      "version",
      "status"
    ]
  }
}

Get Category
GET/mdb/categories/{id}{?expand}

Returns the non-deleted, active or hidden, category

Example URI

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

id of the category

expand
string (optional) 

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

Choices: creator

Request  Get 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,
      "options": [
        "null"
      ],
      "settings": null
    }
  ],
  "id": "b10b785d-d87d-48cf-9c0b-d7be08f377b2",
  "group_id": "1200",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version": 1,
  "status": "ACTIVE"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display title of the category"
    },
    "attributes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Text",
              "LongText",
              "Date",
              "Number",
              "Url",
              "Dropdown",
              "Barcode"
            ]
          },
          "title": {
            "type": "string",
            "description": "the display title of the attribute"
          },
          "mandatory": {
            "type": "boolean",
            "description": "when set to `true` the items created in this category should have an associated value for this attribute"
          },
          "options": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "description": "when the attribute type is Dropdown, then this array should be sent together"
          },
          "settings": {
            "type": [
              "object",
              "null"
            ],
            "properties": {},
            "description": "the field which contains additional settings data of attribute"
          }
        },
        "required": [
          "type",
          "title",
          "mandatory"
        ]
      },
      "description": "The attribute definitions of the category"
    },
    "id": {
      "type": "string",
      "description": "the stable id of the category"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "the id of the group to which the category is associated"
    },
    "creator_id": {
      "type": "string",
      "description": "the user id of the original author"
    },
    "creation_date": {
      "type": "string",
      "description": "the creation date of the category"
    },
    "version_id": {
      "type": "string",
      "description": "the unique, version id of the category"
    },
    "version_date": {
      "type": "string",
      "description": "the last modification date of the category"
    },
    "version": {
      "type": "number",
      "description": "the version number of the category (it is automatically incremented for each modification on the category)"
    },
    "status": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "DELETED",
        "HIDDEN"
      ],
      "description": "indicates whether category is active, hidden or deleted"
    }
  },
  "required": [
    "title",
    "attributes",
    "id",
    "group_id",
    "creator_id",
    "creation_date",
    "version_id",
    "version_date",
    "version",
    "status"
  ],
  "additionalProperties": false
}
Request  Get Category with Barcode Attribute
Response  200
HideShow
Headers
Content-Type: application/json;charset=UTF-8
Body
{
  "title": "Luke's Private Vehicles",
  "attributes": [
    {
      "type": "Barcode",
      "title": "Barcode",
      "mandatory": false,
      "options": [
        "null"
      ],
      "settings": {
        "barcode_generation_method": "MANUAL",
        "barcode_type": "CODE_128"
      }
    }
  ],
  "id": "b10b785d-d87d-48cf-9c0b-d7be08f377b2",
  "group_id": "1200",
  "creator_id": "11038",
  "creation_date": "2017-02-10T12:34:56.789+0200",
  "version_id": "620c535d-45bd-497a-ad92-d0222f959d6b",
  "version_date": "2017-02-15T12:34:56.789+0200",
  "version": 1,
  "status": "ACTIVE"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the display title of the category"
    },
    "attributes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Barcode",
              "Text",
              "LongText",
              "Date",
              "Number",
              "Url",
              "Dropdown"
            ]
          },
          "title": {
            "type": "string",
            "description": "the display title of the attribute"
          },
          "mandatory": {
            "type": "boolean",
            "description": "when set to `true` the items created in this category should have an associated value for this attribute"
          },
          "options": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "description": "when the attribute type is Dropdown, then this array should be sent together"
          },
          "settings": {
            "type": "object",
            "properties": {
              "barcode_generation_method": {
                "type": "string",
                "enum": [
                  "MANUAL",
                  "AUTO"
                ],
                "description": "this enum should contain Barcode Attribute's generation method"
              },
              "barcode_type": {
                "type": "string",
                "enum": [
                  "CODE_128",
                  "DATA_MATRIX"
                ],
                "description": "this enum should contain Barcode Attribute's type"
              }
            },
            "required": [
              "barcode_generation_method",
              "barcode_type"
            ],
            "description": "the field which contains additional settings data of attribute"
          }
        },
        "required": [
          "type",
          "title",
          "mandatory",
          "settings"
        ]
      },
      "description": "The attribute definitions of the category"
    },
    "id": {
      "type": "string",
      "description": "the stable id of the category"
    },
    "group_id": {
      "type": [
        "string",
        "null"
      ]