Introduction
Welcome to the SciNote V1 API! You can use our API to access SciNote API endpoints.
This API documentation page was created with Slate.
By accessing or using SciNote API, you agree to SciNote API Terms.
Authentication
SciNote uses JWT tokens to allow access to the API and OAuth 2 protocol for token generation using authorization code flow.
First, authorization code needs to be retrieved at the following endpoint: GET /oauth/authorize
, please see example of such request.
To get an authorization code, use this code:
curl https://<server-name>/oauth/authorize?client_id=<client-id>&redirect_uri=<redirect-uri>&response_type=code
Where
<client-id>
is your application registration id,<redirect-uri>
your application redirect URI.The above command redirects back to your application with authorization code
Now you can get a new access token at POST /oauth/token
request. Once it expires, use refresh token to get new access token.
Post here with authorization code for authorization_code
grant type or refresh_token
for refresh token type. This corresponds to the token endpoint, section 3.2 of the OAuth 2 RFC.
To get an access token, use this code:
curl -F grant_type=authorization_code \
-F client_id=<client-app-id> \
-F client_secret=<client-app-secret> \
-F code=<authorization-code> \
-F redirect_uri=<client-app-redirect-url> \
-X POST https://<server-name>/oauth/token
The above command returns JSON structured like this:
{
"access_token":"qwerty123456...",
"token_type":"bearer",
"expires_in":7200,
"refresh_token":"qwerty123456..."}
}
And for renewal, use this code:
curl -F grant_type=refresh_token \
-F client_id=<client-app-id> \
-F client_secret=<client-app-secret> \
-F refresh_token=<refresh-token> \
-F redirect_uri=<client-app-redirect-url> \
-X POST https://<server-name>/oauth/token
SciNote expects for the API access token to be included in all API requests to the server in a header that looks like the following:
Authorization: Bearer qwerty123456...
You can also check a basic python code example on our Github. Make sure you check the README first.
JWT payload claims
By default tokens include such set of claims:
Claim | Description |
---|---|
iss | Text identifier of the token issuer |
exp | Token expiration time |
sub | The ID of the current authenticated user |
Alternative: API Key authenticaton
If your instance has the API key functionality enabled, you can generate the API key in your user profile settings in SciNote (/users/edit). To authenticate via API key, add the following header to all requests:
Api-Key: qwerty123456...
The API key expires after one year. You can revoke the API key at any time in your user profile settings.
Pagination
SciNote API uses pagination as specified here JSON API
Default page size is 10.
Pagination Parameters
Parameter | Default | Description |
---|---|---|
page[number] | 1 | Number of requested page. |
page[size] | 10 | Number of items returned per page. |
How to make sure you retrieve all of the pages
API response includes the 'links' sections, which you can check to see if there is a next_page connected to current result.
The following code example is looping through pages and retrieving all of the tasks.
// pseudocoude
tasks = []
next_url = 'https://SCINOTEURL/api/v1/teams/1/projects/1/experiments/1/tasks?page[number]=1&page[size]=100'
while(next_url) {
response = http_request(next_url)
// you would want to do some error handling here
json = json_parse(response)
// and here
tasks.push(json['data'])
next_url = json['links']['next']
}
// After the loop is done, you have the whole list of taks tasks[] array.
Teams
Get All Teams
curl "https://<server-name>/api/v1/teams"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "teams",
"attributes": {
"name": "Team 1",
"description": "This is team 1",
"space_taken": 805809574
},
"relationships": {
"created_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
{
"id": "2",
"type": "teams",
"attributes": {
"name": "Team 2",
"description": "This is team 2",
"space_taken": 24370008357
},
"relationships": {
"created_by": {
"data": {
"id": "2",
"type": "users"
}
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all teams user is member of.
HTTP Request
GET https://<server-name>/api/v1/teams(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
Parameter | Description |
---|---|
FROM | If present will filter teams corresponding timestamp above or equals value |
TO | If present will filter teams corresponding timestamp below or equals value |
Get a Specific Team
curl "https://<server-name>/api/v1/teams/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "teams",
"attributes": {
"name": "Team 1",
"description": "This is team 1",
"space_taken": 805809574
}
},
"relationships": {
"created_by": {
"data": {
"id": "1",
"type": "users"
}
}
},
"included": [
{
"id": "1",
"type": "users",
"attributes": {
<user-attributes>
}
}
]
}
This endpoint retrieves a specific team.
HTTP Request
GET https://<server-name>/api/v1/teams/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the team to retrieve |
Users
Get Users
curl "https://<server-name>/api/v1/teams/1/users"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"data": {
"id": "1",
"type": "users",
"attributes": {
"full_name": "Sample User",
"initials": "SU",
"email": "sample@example.com",
"avatar_url": "http://example.com/avatar.png",
"avatar_file_size": 16181,
"avatar_file_name": "avatar.png"
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all users from a specific team.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/users(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve users from |
FROM | If present will filter team users corresponding timestamp above or equals value |
TO | If present will filter team users corresponding timestamp below or equals value |
Get a Specific User
curl "https://<server-name>/api/v1/users/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "users",
"attributes": {
"full_name": "Sample User",
"initials": "SU",
"email": "sample@example.com",
"avatar_url": "http://example.com/avatar.png",
"avatar_file_size": 16181,
"avatar_file_name": "avatar.png"
}
}
}
This endpoint retrieves a specific user. Only users who are members of the same teams as current user can be read.
HTTP Request
GET https://<server-name>/api/v1/users/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the user to retrieve |
User Identities
Get User Identities
curl "https://<server-name>/api/v1/users/1/identities"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "user_identities",
"attributes": {
"provider": "sample",
"uid": "abcde123"
}
}
],
"links": {
"self": "https://<server-name>/api/v1/users/1/identities?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/users/1/identities?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/users/1/identities?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all identity mappings for the specified user.
HTTP Request
GET https://<server-name>/api/v1/users/<USER_ID>/identities(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
USER_ID | The ID of the user to retrieve identities from |
FROM | If present will filter experiments corresponding timestamp above or equals value |
TO | If present will filter experiments corresponding timestamp below or equals value |
Get User Identity
curl "https://<server-name>/api/v1/users/1/identities/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "user_identities",
"attributes": {
"provider": "sample",
"uid": "abcde123"
}
}
}
This endpoint retrieves a specific user identity mapping.
HTTP Request
GET https://<server-name>/api/v1/users/<USER_ID>/identities/<ID>
URL Parameters
Parameter | Description |
---|---|
USER_ID | The ID of the user to retrieve identity from |
ID | The ID of the user identity mapping |
Create User Identity
curl -X POST \
https://<server-name>/api/v1/users/1/identities \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "user_identities",
"attributes": {
"provider": "sample1",
"uid": "abcde123"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "user_identities",
"attributes": {
"provider": "sample1",
"uid": "abcde123"
}
}
}
This endpoint creates new user identity mapping for specific user.
HTTP Request
POST https://<server-name>/api/v1/users/<USER_ID>/identities
URL Parameters
Parameter | Description |
---|---|
USER_ID | The ID of the user |
Request body
{
"data": {
"type": "user_identities",
"attributes": {
"provider": "sample1",
"uid": "abcde123"
}
}
}
Identity attributes
Attribute | Mandatory | Description |
---|---|---|
provider | yes | name of the external identity provider |
uid | yes | uid of the user from external identity provider |
Update User Identity
curl -X PATCH \
https://<server-name>/api/v1/users/1/identities/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "user_identities",
"id": 1,
"attributes": {
"provider": "sample2",
"uid": "abcde1234"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "user_identities",
"attributes": {
"provider": "sample2",
"uid": "abcde1234"
}
}
}
This endpoint updates existing identity mapping for the selected user. If submitted attributes are the same and no changes are made for the identity mapping, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/users/<USER_ID>/identities/<ID>
URL Parameters
Parameter | Description |
---|---|
USER_ID | The ID of the user |
ID | The ID of the user identity mapping |
Request body
{
"data": {
"type": "user_identities",
"id": "1",
"attributes": {
"provider": "sample2",
"uid": "abcde1234"
}
}
}
User identity attributes
Attribute | Mandatory | Description |
---|---|---|
provider | no | name of the external identity provider |
uid | no | uid of the user from external identity provider |
Delete User Identity
curl -X DELETE \
https://<server-name>/api/v1/users/1/identities/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific user identity mapping.
HTTP Request
DELETE https://<server-name>/api/v1/users/<USER_ID>/identities/<ID>
URL Parameters
Parameter | Description |
---|---|
USER_ID | The ID of the user to retrieve identity mapping from |
ID | The ID of the identity mapping |
User Roles
Get User Roles
curl "https://<server-name>/api/v1/user_roles"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "user_roles",
"attributes": {
"name": "Owner",
"permissions": ["project_read", "experiment_read", "task_read"]
}
},
{
"id": "2",
"type": "user_roles",
"attributes": {
"name": "User",
"permissions": ["project_read", "experiment_read", "task_read"]
}
}
],
"links": {
"self": "https://<server-name>/api/v1/user_roles?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/user_roles?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/user_roles?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all user roles in the system.
HTTP Request
GET https://<server-name>/api/v1/user_roles
Projects
Get Projects
curl "http://<server-name>/api/v1/teams/1/projects"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "projects",
"attributes": {
"name": "Demo project - qPCR",
"visibility": "hidden",
"start_date": null,
"archived": false
},
"relationships": {
"project_folder": {
"data": null
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all projects from the specified team. If ?include=comments
PATH parameter is provided,
the project comments are also included.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects(?include=<INCLUDES>&filter%5Barchived%5D=<ARCHIVED>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve projects from |
INCLUDES | if set to comments , project comments are also included |
ARCHIVED | If set to true return only archived projects. If set to false return only active projects. |
Get Project
curl "http://<server-name>/api/v1/teams/1/projects/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "projects",
"attributes": {
"name": "Demo project - qPCR",
"visibility": "hidden",
"start_date": null,
"archived": false
},
"relationships": {
"project_folder": {
"data": null
}
}
}
}
This endpoint retrieves a specific project from a specific team. If ?include=comments
PATH parameter is provided,
the project comments are also included.
HTTP Request
GET http://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>(?include=<INCLUDES>&filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve |
INCLUDES | if set to comments , project comments are also included |
FROM | If present will filter projects corresponding timestamp above or equals value |
TO | If present will filter projects corresponding timestamp below or equals value |
Create Project
curl -X POST \
https://<server-name>/api/v1/teams/1/projects \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "projects",
"attributes": {
"name": "My project 1",
"visibility": "visible",
"archived": false,
"project_folder_id": 1
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "projects",
"attributes": {
"name": "My project 1",
"visibility": "visible",
"start_date": "01/01/2020 10:30",
"archived": false
},
"relationships": {
"project_folder": {
"data": {
"id": "1",
"type": "project_folders"
}
}
}
}
}
This endpoint creates a new project in the team.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/projects
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve projects from |
Request body
{
"data": {
"type": "projects",
"attributes": {
"name": "My project 1",
"visibility": "visible",
"archived": false,
"project_folder_id": 1
}
}
}
Project attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the project |
visibility | no | Visibility of the project |
archived | no | Archived flag |
project_folder_id | no | Reference to project folder, if null it is on root level |
Update Project
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "projects",
"attributes": {
"name": "Project 2",
"visibility": "hidden",
"archived": true,
"project_folder_id": 5
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "projects",
"attributes": {
"name": "Project 2",
"visibility": "hidden",
"start_date": "01/01/2020 10:30",
"archived": true
},
"relationships": {
"project_folder": {
"data": {
"type": "project_folders",
"id": "5"
}
}
}
}
}
This endpoint updates existing project in the selected team. If submitted attributes are the same and no changes are made for the project, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
ID | The ID of the project |
Request body
{
"data": {
"id": "1",
"type": "projects",
"attributes": {
"name": "Project 2",
"visibility": "hidden",
"archived": true,
"project_folder_id": 5
}
}
}
Project attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the project |
visibility | no | Visibility of the project |
archived | no | Archived flag |
project_folder_id | no | Reference to project folder, if null it is on root level |
Project Users Assignments
Get Project User Assignments
curl "https://<server-name>/api/v1/teams/1/projects/1/users"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "projects"
}
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/projects/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/projects/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all users who are members of the specified project.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/users(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve users from |
INCLUDES | can include user , user_roles , and assignable (on this endpoint assignable is a project) |
FROM | If present will filter project members corresponding timestamp above or equals value |
TO | If present will filter project members corresponding timestamp below or equals value |
Get Project User
curl "https://<server-name>/api/v1/teams/1/projects/1/users/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "projects"
}
}
}
}
}
This endpoint retrieves a specific user who is a member of the specified project.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/users/<USER_ASSIGMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user from |
USER_ASSIGNMENT_ID | The ID of the user assignment to retrieve |
INCLUDES | can include user , user_role , and assignable (on this endpoint assignable is a project) |
Create Project User assignment
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/users \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "user_assignments",
"attributes": {
"user_id": "1",
"user_role_id": "1"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "projects"
}
}
}
}
}
This endpoint creates a new user assignment in the project. Please note that we will create the user assignments for the project child experiment and tasks asynchronous.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/users
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to assign user to |
Request body
{
"data": {
"type": "user_assignments",
"attributes": {
"user_id": "1",
"user_role_id": "1"
}
}
}
Project User Assignment attributes
Attribute | Mandatory | Description |
---|---|---|
user_id | yes | ID of the user |
user_role_id | yes | ID of the UserRole on the project |
Update Project User Assignment attributes
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/users/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "user_assignments",
"attributes": {
"user_role_id": "2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "2",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "projects"
}
}
}
}
}
This endpoint updates existing user assignment in the project. If submitted attributes are the same and no changes are made for the user assignment, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/users/<USER_ASSIGMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user assignment from |
USER_ASSIGNMENT_ID | The ID of the user assignment |
Request body
{
"data": {
"type": "user_assignments",
"attributes": {
"user_role_id": "2"
}
}
}
Project User Assignments attributes
Attribute | Mandatory | Description |
---|---|---|
user_role_id | yes | Role on the project |
Delete Project User Assignment
curl -X DELETE \
https://<server-name>/api/v1/teams/1/projects/1/users/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific user assignment from the project. Please note that we will delete the user assignments for the project child experiment and tasks asynchronous.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/users/<USER_ASSIGMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user assignment from |
USER_ASSIGNMENT_ID | The ID of the user assignment |
Project Activities
Get Project Activities
curl "http://<server-name>/api/v1/teams/1/projects/1/activities"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "activities",
"attributes": {
"type_of": "create_module",
"message": "<p>Admin created task New task.</p>"
},
"relationships": {
"project": {
"data": {
"id": "1",
"type": "projects"
}
},
"subject": {
"data": {
"id": "10",
"type": "tasks"
}
},
"user": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
{
"id": "2",
"type": "activities",
"attributes": {
"type_of": "update_protocol_in_task_from_repository",
"message": "<p>Admin updated protocol on task New Task with version from Protocol repository Main Repository.</p>"
},
"relationships": {
"project": {
"data": {
"id": "1",
"type": "projects"
}
},
"subject": {
"data": {
"id": "11",
"type": "protocols"
}
},
"user": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/activities?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/activities?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": "http://<server-name>/api/v1/teams/1/projects/1/activities?page%5Bnumber%5D=2&page%5Bsize%5D=10",
"last": "http://<server-name>/api/v1/teams/1/projects/1/activities?page%5Bnumber%5D=8&page%5Bsize%5D=10"
}
}
This endpoint retrieves all activities from specific project.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/activities(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve activities from |
FROM | If present will filter project activities corresponding timestamp above or equals value |
TO | If present will filter project activities corresponding timestamp below or equals value |
Project Comments
Get Project Comments
curl "http://<server-name>/api/v1/teams/1/projects/1/comments"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "comments",
"attributes": {
"message": "I've created a demo project"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/comments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/comments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/comments?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all comments from specific project.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/comments(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve comments from |
FROM | If present will filter project comments corresponding timestamp above or equals value |
TO | If present will filter project comments corresponding timestamp below or equals value |
Get Project Comment
curl "http://<server-name>/api/v1/teams/1/projects/1/comments/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "comments",
"attributes": {
"message": "I've created a demo project"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
"included": [
{
"id": "1",
"type": "users",
"attributes": {
"full_name": "Admin",
"initials": "A",
"email": "admin@scinote.net",
"avatar_url": "http://example.com/avatar.png",
"avatar_file_size": 16181,
"avatar_file_name": "avatar.png"
}
}
]
}
This endpoint retrieves a specific comment from specific project.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/comments/<COMMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve comment from |
COMMENT_ID | The ID of the comment to retrieve |
Project Folders
Get Project Folders
curl "http://<server-name>/api/v1/teams/1/project_folders"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "project_folders",
"attributes": {
"name": "2020 Projects"
},
"relationships": {
"team": {
"data": {
"id": "1",
"type": "teams"
}
},
"parent_folder": {
"data": null
},
"projects": {
"data": []
},
"project_folders": {
"data": []
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/project_folders/?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/project_folders/?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/project_folders/?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all project folders from the specified team.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/project_folders(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project folders from |
FROM | If present will filter project folders corresponding timestamp above or equals value |
TO | If present will filter project folders corresponding timestamp below or equals value |
Get Project Folder
curl "http://<server-name>/api/v1/teams/1/project_folders/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "project_folders",
"attributes": {
"name": "2020 Projects"
},
"relationships": {
"team": {
"data": {
"id": "1",
"type": "teams"
}
},
"parent_folder": {
"data": null
},
"projects": {
"data": []
},
"project_folders": {
"data": []
}
}
}
}
This endpoint retrieves a specific project folder from a specific team.
HTTP Request
GET http://<server-name>/api/v1/teams/<TEAM_ID>/project_folders/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project folders from |
ID | The ID of the project folder to retrieve |
Create Project Folder
curl -X POST \
https://<server-name>/api/v1/teams/1/project_folders \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "project_folders",
"attributes": {
"name": "My new Folder",
"parent_folder_id": 1
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "2",
"type": "project_folders",
"attributes": {
"name": "My new Folder"
},
"relationships": {
"team": {
"data": {
"id": "1",
"type": "teams"
}
},
"parent_folder": {
"data": {
"id": "1",
"type": "project_folders"
}
},
"projects": {
"data": []
},
"project_folders": {
"data": []
}
}
}
}
This endpoint creates a new project folder in the team.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/project_folders
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project folders from |
Request body
{
"data": {
"type": "project_folders",
"attributes": {
"name": "My new Folder",
"parent_folder_id": 1
}
}
}
Project folder attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the project folder |
parent_folder_id | no | Reference to parent folder, if null it is on root level |
Update Project Folder
curl -X PATCH \
https://<server-name>/api/v1/teams/1/project_folders/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "project_folders",
"attributes": {
"name": "My updated Folder",
"parent_folder_id": 3
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"type": "project_folders",
"attributes": {
"name": "My updated Folder"
},
"relationships": {
"team": {
"data": {
"id": "1",
"type": "teams"
}
},
"parent_folder": {
"data": {
"type": "project_folders",
"id": 3
}
},
"projects": {
"data": []
},
"project_folders": {
"data": []
}
}
}
}
This endpoint updates existing project folder in the selected team. If submitted attributes are the same and no changes are made for the project, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/project_folders/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project folder from |
ID | The ID of the project folder |
Request body
{
"data": {
"type": "project_folders",
"attributes": {
"name": "My updated Folder",
"parent_folder_id": 3
}
}
}
Project folder attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the project folder |
parent_folder_id | no | Reference to parent folder, if null it is on root level |
Experiments
Get Experiments
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "experiments",
"attributes": {
"name": "My first experiment",
"description": "This is my very first experiment",
"archived": false
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all experiments from the specified project.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments(?filter%5Barchived%5D=<ARCHIVED>&filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiments from |
ARCHIVED | If set to true return only archived experiments. If set to false return only active experiments. |
FROM | If present will filter experiments corresponding timestamp above or equals value |
TO | If present will filter experiments corresponding timestamp below or equals value |
Get Experiment
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "experiments",
"attributes": {
"name": "My first experiment",
"description": "This is my very first experiment",
"archived": false
}
}
}
This endpoint retrieves a specific experiment from the specified project.
HTTP Request
GET http://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve |
Create Experiment
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "experiments",
"attributes": {
"name": "My experiment 1",
"description": "This is my very first experiment",
"archived": false
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "experiments",
"attributes": {
"name": "My first experiment",
"description": "This is my very first experiment",
"archived": false
}
}
}
This endpoint creates a new experiment in the team. Please note that we will create the user assignments for this experiment asynchronous.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve projects from |
PROJECT_ID | The ID of the project to retrieve experiment from |
Request body
{
"data": {
"type": "experiments",
"attributes": {
"name": "My first experiment",
"description": "This is my very first experiment",
"archived": false
}
}
}
Experiment attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the experiment |
description | no | Description of the experiment |
archived | no | Archived flag |
Update Experiment
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "experiments",
"attributes": {
"name": "Experiment 2",
"description": "New description",
"archived": true
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "experiments",
"attributes": {
"name": "Experiment 2",
"description": "New description",
"archived": true
}
}
}
This endpoint updates existing experiment in the selected project. If submitted attributes are the same and no changes are made for the experiment, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
ID | The ID of the experiment |
Request body
{
"data": {
"id": "1",
"type": "experiments",
"attributes": {
"name": "Experiment 2",
"description": "New description",
"archived": true
}
}
}
Experiment attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the experiment |
description | no | Description of the experiment |
archived | no | Archived flag |
Experiment Users Assignments
Get Experiment User Assignments
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/user_assignments"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data":[
{
"id": "1",
"type": "user_assignments",
"attributes":{
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships":{
"user":{
"data":{
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "experiments"
}
}
}
}
],,
"links":{
"self": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/user_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/user_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/user_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all users who are members of the specified experiment.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/user_assignments(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve users from |
EXPERIMENT_ID | The ID of the experiment to retrieve users from |
INCLUDES | can include user , user_roles , and assignable (on this endpoint assignable is an experiment) |
FROM | If present will filter experiment members corresponding timestamp above or equals value |
TO | If present will filter experiment members corresponding timestamp below or equals value |
Get Experiment User Assignment
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/user_assignments/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "experiments"
}
}
}
}
]
}
This endpoint retrieves a specific user who is a member of the specified experiment.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/user_assignments/<USER_ASSIGNMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user from |
EXPERIMENT_ID | The ID of the experiment to retrieve user from |
USER_ASSIGNMENT_ID | The ID of the user assignment to retrieve |
INCLUDES | can include user , user_roles , and assignable (on this endpoint assignable is an experiment) |
Update Experiment User Assignment attributes
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/user_assignment/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "user_assignments",
"attributes": {
"user_role_id": "2"
}
}
}'
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "experiments"
}
}
}
}
]
}
This endpoint updates existing user assignment in the experiment. If submitted attributes are the same and no changes are made for the user assignment, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/user_assignments/<USER_ASSIGNMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user assignment from |
EXPERIMENT_ID | The ID of the experiment to retrieve user from |
USER_ASSIGNMENT_ID | The ID of the user assignment |
Request body
{
"data": {
"type": "user_assignments",
"attributes": {
"user_role_id": "2"
}
}
}
Experiment User Assignment attributes
Attribute | Mandatory | Description |
---|---|---|
user_role_id | yes | Role on the experiment |
Connections
Get connections
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "connections",
"relationships": {
"from": {
"data": {
"id": "1",
"type": "tasks"
}
},
"to": {
"data": {
"id": "2",
"type": "tasks"
}
}
}
},
{
"id": "2",
"type": "connections",
"relationships": {
"from": {
"data": {
"id": "2",
"type": "tasks"
}
},
"to": {
"data": {
"id": "3",
"type": "tasks"
}
}
}
}
],
"links": {
"self": "http://<server-name></server-name>/api/v1/teams/43/projects/399/experiments/1204/connections?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/43/projects/399/experiments/1204/connections?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/43/projects/399/experiments/1204/connections?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all connections from a specific experiment. Connection to/from can be included as relationships.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/connections(?include=<INCLUDES>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve connections from |
INCLUDES | if set to to and/or from , connection input or output tasks are also included |
Get connection
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "connections",
"relationships": {
"from": {
"data": {
"id": "1",
"type": "tasks"
}
},
"to": {
"data": {
"id": "2",
"type": "tasks"
}
}
}
}
}
This endpoint retrieves a specific connection from a specific experiment. Connection to/from can be included as relationships.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/connections/<connection_ID>(?include=<INCLUDES>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve connection from. |
connection_ID | The ID of the connection to retrieve |
INCLUDES | if set to to and/or from , connection input or output tasks are also included |
Create connection
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "connections",
"attributes": {
"output_id": 1,
"input_id": 2
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "7354",
"type": "connections",
"relationships": {
"from": {
"data": {
"id": "1",
"type": "tasks"
}
},
"to": {
"data": {
"id": "2",
"type": "tasks"
}
}
}
}
}
This endpoint creates new connection in the experiment.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/connections
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve projects from |
PROJECT_ID | The ID of the project to retrieve experiments from |
EXPERIMENT_ID | The ID of the experiment |
Request body
{
"data": {
"type": "connections",
"attributes": {
"output_id": 1,
"input_id": 2
}
}
}
Connection attributes
Attribute | Mandatory | Description |
---|---|---|
output_id | yes | Output task id |
input_id | yes | Input task id |
Delete connection
curl -X DELETE \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
}'
This endpoint deletes a specific connection from the experiment.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/connections/1
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve projects from |
PROJECT_ID | The ID of the project to retrieve experiments from |
EXPERIMENT_ID | The ID of the experiment |
Task Groups
Get Task Groups
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/task_groups"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "task_groups",
"relationships": {
"tasks": {
"data": [
{
"id": "1",
"type": "tasks"
},
{
"id": "2",
"type": "tasks"
},
{
"id": "3",
"type": "tasks"
}
]
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/task_groups?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/task_groups?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/task_groups?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves task groups from specific experiment.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/task_groups(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task groups from |
FROM | If present will filter task groups corresponding timestamp above or equals value |
TO | If present will filter task groups corresponding timestamp below or equals value |
Get Task Group
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/task_groups/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "task_groups",
"relationships": {
"tasks": {
"data": [
{
"id": "1",
"type": "tasks"
},
{
"id": "2",
"type": "tasks"
},
{
"id": "3",
"type": "tasks"
}
]
}
}
},
"included": [
{
"id": "1",
"type": "tasks",
"attributes": {
"name": "Experiment design",
"due_date": "2018-10-25T13:30:54.315Z",
"description": null,
"state": "uncompleted",
"archived": false
}
},
{
"id": "2",
"type": "tasks",
"attributes": {
"name": "Sampling biological material",
"due_date": "2018-11-08T13:30:54.520Z",
"description": null,
"state": "uncompleted",
"archived": false
}
},
{
"id": "3",
"type": "tasks",
"attributes": {
"name": "RNA isolation",
"due_date": "2018-11-22T13:30:54.594Z",
"description": null,
"state": "uncompleted",
"archived": false
}
}
]
}
This endpoint retrieves a specific task group from a specific experiment.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/task_groups/<GROUP_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task group from |
GROUP_ID | The ID of the task group to retrieve |
Task Connections
Get Task Connections
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data":[
{
"id": "1",
"type": "connections",
"relationships":{
"input_task":{
"data":{
"id": "1",
"type": "tasks"
}
},
"output_task":{
"data":{
"id": "2",
"type": "tasks"
}
}
}
},
{
"id": "2",
"type": "connections",
"relationships":{
"input_task":{
"data":{
"id": "2",
"type": "tasks"
}
},
"output_task":{
"data":{
"id": "3",
"type": "tasks"
}
}
}
}
],
"links":{
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all connections between tasks from specific experiment.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/connections
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve connection from |
Get Task Connection
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/connections/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data":{
"id": "1",
"type": "connections",
"relationships":{
"input_task":{
"data":{
"id": "1",
"type": "tasks"
}
},
"output_task":{
"data":{
"id": "2",
"type": "tasks"
}
}
}
},
"included":[
{
"id": "1",
"type": "tasks",
"attributes":{
"name": "Experiment design",
"due_date": "2018-10-25T13:30:54.315Z",
"description": null,
"state": "uncompleted",
"archived": false
}
},
{
"id": "2",
"type": "tasks",
"attributes":{
"name": "Sampling biological material",
"due_date": "2018-11-08T13:30:54.520Z",
"description": null,
"state": "uncompleted",
"archived": false
}
}
]
}
This endpoint retrieves a specific connection between tasks from specific experiment.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/connections/<CONNECTION_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve connection from |
CONNECTION_ID | The ID of the connection to retrieve |
Tasks
Get Tasks
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "tasks",
"attributes": {
"name": "Experiment design",
"started_on": null,
"due_date": "2018-10-25T13:30:54.315Z",
"description": null,
"state": "uncompleted",
"archived": false,
"status_id": 2,
"status_name": "In progress",
"prev_status_id": 1,
"prev_status_name": "Backlog",
"next_status_id": 3,
"next_status_name": "Completed"
},
"relationships": {
"outputs": {
"data": [
{
"id": "2",
"type": "tasks"
}
]
}
}
},
{
"id": "2",
"type": "tasks",
"attributes": {
"name": "Sampling biological material",
"started_on": null,
"due_date": "2018-11-08T13:30:54.520Z",
"description": null,
"state": "uncompleted",
"archived": false,
"status_id": 3,
"status_name": "Completed",
"prev_status_id": 2,
"prev_status_name": "Backlog",
"next_status_id": 4,
"next_status_name": "In review"
},
"relationships": {
"outputs": {
"data": [
{
"id": "3",
"type": "tasks"
}
]
},
"inputs": {
"data": [
{
"id": "1",
"type": "tasks"
}
]
}
}
},
{
"id": "3",
"type": "tasks",
"attributes": {
"name": "RNA isolation",
"started_on": null,
"due_date": "2018-11-22T13:30:54.594Z",
"description": null,
"state": "uncompleted",
"archived": false,
"status_id": 2,
"status_name": "In progress",
"prev_status_id": 1,
"prev_status_name": "Backlog",
"next_status_id": 3,
"next_status_name": "Completed"
},
"relationships": {
"inputs": {
"data": [
{
"id": "2",
"type": "tasks"
}
]
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all tasks from a specific experiment. Task inputs/outputs can be included as relationships.
Optional URL parameter 'render_rte=true' can be added in order to request rendering of RTE fields(embedded images, smart annotations).
If ?include=comments
PATH parameter is provided, task comments are also included.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks(?include=<INCLUDES>&filter%5Barchived%5D=<ARCHIVED>&filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve tasks from |
INCLUDES | if set to comments , task comments are also included |
ARCHIVED | If set to true return only archived tasks. If set to false return only active tasks. |
FROM | If present will filter experiment tasks corresponding timestamp above or equals value |
TO | If present will filter experiment tasks corresponding timestamp below or equals value |
Get Task
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tasks",
"attributes": {
"name": "Experiment design",
"started_on": null,
"due_date": "2018-10-25T13:30:54.315Z",
"description": null,
"state": "uncompleted",
"archived": false,
"status_id": 2,
"status_name": "In progress",
"prev_status_id": 1,
"prev_status_name": "Backlog",
"next_status_id": 3,
"next_status_name": "Completed"
},
"relationships": {
"outputs": {
"data": [
{
"id": "2",
"type": "tasks"
}
]
}
}
}
}
This endpoint retrieves a specific task from a specific experiment. Task inputs/outputs can be included as relationships.
Optional URL parameter 'render_rte=true' can be added in order to request rendering of RTE fields(embedded images, smart annotations).
If ?include=comments
PATH parameter is provided, task comments are also included.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>(?include=<INCLUDES>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from. |
TASK_ID | The ID of the task to retrieve |
INCLUDES | if set to comments , task comments are also included |
Create Task
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "tasks",
"attributes": {
"name": "My task 1",
"description": "Description of the task",
"x": 1,
"y": 8
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tasks",
"attributes": {
"name": "My task 1",
"started_on": null,
"due_date": null,
"description": "Description of the task",
"state": "uncompleted",
"archived": false
},
"relationships": {
"outputs": {
"data": []
},
"inputs": {
"data": []
}
}
}
}
This endpoint creates new task in the experiment. Please note that we will create the user assignments for this task asynchronous.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve projects from |
PROJECT_ID | The ID of the project to retrieve experiments from |
EXPERIMENT_ID | The ID of the experiment |
Request body
{
"data": {
"type": "tasks",
"attributes": {
"name": "My task 1",
"description": "Description of the task",
"x": 1,
"y": 8
}
}
}
Task attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the task |
description | no | Description of the task |
x | yes | x position on canvas |
y | yes | y position on canvas |
Update Task
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "tasks",
"attributes": {
"name": "Task 2",
"description": "Task 2 description",
"my_module_status_id": "2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tasks",
"attributes": {
"name": "Task 2",
"started_on": null,
"due_date": null,
"description": "Task 2 description",
"state": "completed",
"archived": false,
"status_id": 2,
"status_name": "in progress",
"prev_status_id": 1,
"prev_status_name": "backlog",
"next_status_id": 3,
"next_status_name": "review"
},
"relationships": {
"outputs": {
"data": []
},
"inputs": {
"data": []
}
}
}
}
This endpoint updates existing task in the selected experiment. If submitted attributes are the same and no changes are made for the task, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
ID | The ID of the task |
Request body
{
"data": {
"id": "1",
"type": "tasks",
"attributes": {
"name": "Task 2",
"description": "Task 2 description",
"my_module_status_id": "2"
}
}
}
Task attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the task |
description | no | Description of the task |
x | no | x position on canvas |
y | no | y position on canvas |
my_module_status_id | no | New status ID |
Protocols
Get Protocols
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "protocols",
"attributes": {
"name": null,
"authors": null,
"description": null,
"protocol_type": "unlinked"
}
}
],
"links": {
"self": "http://localhost:3000/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://localhost:3000/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://localhost:3000/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves protocols that are assigned to a specific task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocols from |
FROM | If present will filter task assigned protocols corresponding timestamp above or equals value |
TO | If present will filter task assigned protocols corresponding timestamp below or equals value |
Protocol Steps V1(Deprecated)
Get Steps (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "4196",
"type": "steps",
"attributes": {
"name": "Step name",
"description": "Description about step",
"position": 32,
"completed": true,
"completed_on": "2019-09-16T13:47:22.069Z"
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"comments": {
"data": []
}
}
},
{
"id": "4195",
"type": "steps",
"attributes": {
"name": "Step name",
"description": "Description about step",
"position": 31,
"completed": false
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"comments": {
"data": []
}
}
},
{
"id": "4194",
"type": "steps",
"attributes": {
"name": "Step name",
"description": "Description about step",
"position": 30,
"completed": false
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"comments": {
"data": []
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps?page%5Bnumber%5D=2&page%5Bsize%5D=10",
"last": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps?page%5Bnumber%5D=4&page%5Bsize%5D=10"
}
}
This endpoint retrieves steps from specific protocol. It also supports inclusion of these elements: tables, assets, checklists, checklists.checklist_items, comments.
Optional URL parameter 'render_rte=true' can be added in order to request rendering of RTE fields(embedded images, smart annotations).
If ?include=comments
PATH parameter is provided, step comments are also included.
NOTE REGARDING STEP DESCRIPTION:
After the step editing revamp, the step description is fetched from, and written to the first step_text element of the protocol step, and as such only exists as a virtual attribute. Usage of the step_texts endpoints should be preferred instead.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps(?include=<INCLUDES>&filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
INCLUDES | if set to comments , step comments are also included |
FROM | If present will filter protocol steps corresponding timestamp above or equals value |
TO | If present will filter protocol steps corresponding timestamp below or equals value |
Get Step (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step name",
"description": "Description about step",
"position": 1,
"completed": true,
"completed_on": "2019-09-16T13:47:22.069Z"
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint retrieves specific step from the protocol. It also supports inclusion of these elements: tables, assets, checklists, checklists.checklist_items, comments.
Optional URL parameter 'render_rte=true' can be added in order to request rendering of RTE fields(embedded images, smart annotations).
If ?include=comments
PATH parameter is provided, step comments are also included.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<ID>(?include=<INCLUDES>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
ID | The ID of the step |
INCLUDES | if set to comments , step comments are also included |
Create Step (Deprecated)
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "steps",
"attributes": {
"name": "Step name",
"description": "Description about step"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step name",
"description": "Description about step",
"position": 1,
"completed": false
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint creates new step in the protocol.
HTTP Request
POST https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
Request body
{
"data": {
"type": "steps",
"attributes": {
"name": "Step name",
"description": "Description about step"
}
}
}
Step attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the step |
description | no | Description of the step |
completed | no | Step completion flag |
Update Step (Deprecated)
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step 2",
"description": "Step 2 description",
"completed": true
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step 2",
"description": "Step 2 description",
"position": 1,
"completed": true,
"completed_on": "2020-07-06T10:00:18.866Z"
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint updates existing step in the selected protocol. If submitted attributes are the same and no changes are made for the step, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
ID | The ID of the step |
Request body
{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step 2",
"description": "Step 2 description",
"completed": true
}
}
}
Step attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the step |
description | no | Description of the step |
completed | no | Step completion flag |
Delete Step (Deprecated)
curl -X DELETE \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific step from the protocol.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
ID | The ID of the step |
Reorder step elements (Deprecated)
curl -X POST \
https://<server-name>/api/service/teams/1/steps/1/reorder_elements \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"step_element_order": [
{ "id": 29570, "position": 0 },
{ "id": 29290, "position": 1 }
]
}'
HTTP Request
POST https://<server-name>/api/service/teams/1/steps/1/reorder_elements
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
Request body
{
"step_element_order": [
{ "id": 29570, "position": 0 },
{ "id": 29290, "position": 1 }
]
}
The above command returns JSON structured like this:
{
"data": [
{
"id": "29290",
"type": "step_orderable_elements",
"attributes": {
"position": 1,
"element": {
"id": 6854,
"name": "Checklist 1",
"created_at": "2022-05-12T11:58:58.163Z",
"updated_at": "2022-05-12T11:58:58.163Z",
"checklist_items": [
{
"id": 26930,
"text": "one",
"checked": true,
"position": 1,
"created_at": "2022-05-12T11:59:02.285Z",
"updated_at": "2022-05-12T11:59:20.223Z"
},
{
"id": 26931,
"text": "two",
"checked": true,
"position": 2,
"created_at": "2022-05-12T11:59:03.042Z",
"updated_at": "2022-05-12T11:59:21.131Z"
},
{
"id": 26929,
"text": "three",
"checked": false,
"position": 3,
"created_at": "2022-05-12T11:59:01.380Z",
"updated_at": "2022-05-12T11:59:01.380Z"
}
]
}
}
},
{
"id": "29570",
"type": "step_orderable_elements",
"attributes": {
"position": 0,
"element": {
"id": 19968,
"text": "<div>Some text.</div>",
"created_at": "2022-06-27T09:12:36.703Z",
"updated_at": "2022-06-27T09:12:45.714Z"
}
}
}
]
}
This endpoint is used for changing the order of step elements.
Reorder steps (Deprecated)
curl -X POST \
https://<server-name>/api/service/teams/1/protocols/1/reorder_steps \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"step_order": [
{ "id": 21803, "position": 1 },
{ "id": 21802, "position": 0 },
{ "id": 21801, "position": 2 }
]
}'
HTTP Request
POST https://<server-name>/api/service/teams/1/protocols/1/reorder_steps
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
Request body
{
"step_order": [
{ "id": 21803, "position": 1 },
{ "id": 21802, "position": 0 },
{ "id": 21801, "position": 2 }
]
}
The above command returns JSON structured like this:
{
"data": [
{
"id": "21802",
"type": "steps",
"attributes": {
"name": "Step 2",
"description": null,
"position": 0,
"completed": false,
"created_at": "2022-05-11T14:21:13.984Z",
"updated_at": "2022-05-11T14:21:16.501Z"
},
"relationships": {
"user": {
"data": {
"id": "9",
"type": "users"
}
},
"protocol": {
"data": {
"id": "11200",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
},
"step_elements": {
"data": [
{
"id": "29289",
"type": "step_orderable_elements"
}
]
}
}
},
{
"id": "21803",
"type": "steps",
"attributes": {
"name": "Step 1",
"description": null,
"position": 0,
"completed": false,
"created_at": "2022-05-11T14:21:13.984Z",
"updated_at": "2022-05-11T14:21:16.501Z"
},
"relationships": {
"user": {
"data": {
"id": "9",
"type": "users"
}
},
"protocol": {
"data": {
"id": "11200",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
},
"step_elements": {
"data": [
{
"id": "29289",
"type": "step_orderable_elements"
}
]
}
}
},
{
"id": "21801",
"type": "steps",
"attributes": {
"name": "Step 3",
"description": null,
"position": 0,
"completed": false,
"created_at": "2022-05-11T14:21:13.984Z",
"updated_at": "2022-05-11T14:21:16.501Z"
},
"relationships": {
"user": {
"data": {
"id": "9",
"type": "users"
}
},
"protocol": {
"data": {
"id": "11200",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
},
"step_elements": {
"data": []
}
}
}
]
}
This endpoint is used for changing the order of steps.
Protocol Steps V2
Get Steps
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "4196",
"type": "steps",
"attributes": {
"name": "Step name",
"position": 32,
"completed": true,
"completed_on": "2019-09-16T13:47:22.069Z"
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
}
}
},
{
"id": "4195",
"type": "steps",
"attributes": {
"name": "Step name",
"position": 31,
"completed": false
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
}
}
},
{
"id": "4194",
"type": "steps",
"attributes": {
"name": "Step name",
"position": 30,
"completed": false
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
}
}
}
],
"links": {
"self": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps?page%5Bnumber%5D=2&page%5Bsize%5D=10",
"last": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps?page%5Bnumber%5D=4&page%5Bsize%5D=10"
}
}
This endpoint retrieves steps from specific protocol. It also supports inclusion of these elements: tables, step_texts, assets, checklists, checklists.checklist_items, comments.
Optional URL parameter 'render_rte=true' can be added in order to request rendering of RTE fields(embedded images, smart annotations).
If ?include=comments
PATH parameter is provided, step comments are also included.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps(?include=<INCLUDES>&filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
INCLUDES | if set to comments , step comments are also included |
FROM | If present will filter protocol steps corresponding timestamp above or equals value |
TO | If present will filter protocol steps corresponding timestamp below or equals value |
Get Step
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step name",
"position": 1,
"completed": true,
"completed_on": "2019-09-16T13:47:22.069Z"
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint retrieves specific step from the protocol. It also supports inclusion of these elements: tables, step_texts, assets, checklists, checklists.checklist_items, comments.
Optional URL parameter 'render_rte=true' can be added in order to request rendering of RTE fields(embedded images, smart annotations).
If ?include=comments
PATH parameter is provided, step comments are also included.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<ID>(?include=<INCLUDES>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
ID | The ID of the step |
INCLUDES | if set to comments , step comments are also included |
Create Step
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "steps",
"attributes": {
"name": "Step name"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step name",
"position": 1,
"completed": false
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint creates new step in the protocol.
HTTP Request
POST https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
Request body
{
"data": {
"type": "steps",
"attributes": {
"name": "Step name"
}
}
}
Step attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the step |
completed | no | Step completion flag |
Update Step
curl -X PATCH \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step 2",
"completed": true
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step 2",
"position": 1,
"completed": true,
"completed_on": "2020-07-06T10:00:18.866Z"
},
"relationships": {
"protocol": {
"data": {
"id": "1",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint updates existing step in the selected protocol. If submitted attributes are the same and no changes are made for the step, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
ID | The ID of the step |
Request body
{
"data": {
"id": "1",
"type": "steps",
"attributes": {
"name": "Step 2",
"completed": true
}
}
}
Step attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the step |
completed | no | Step completion flag |
Delete Step
curl -X DELETE \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific step from the protocol.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
ID | The ID of the step |
Reorder step elements
curl -X POST \
https://<server-name>/api/service/teams/1/steps/1/reorder_elements \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"step_element_order": [
{ "id": 29570, "position": 0 },
{ "id": 29290, "position": 1 }
]
}'
HTTP Request
POST https://<server-name>/api/service/teams/1/steps/1/reorder_elements
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
Request body
{
"step_element_order": [
{ "id": 29570, "position": 0 },
{ "id": 29290, "position": 1 }
]
}
The above command returns JSON structured like this:
{
"data": [
{
"id": "29290",
"type": "step_orderable_elements",
"attributes": {
"position": 1,
"element": {
"id": 6854,
"name": "Checklist 1",
"created_at": "2022-05-12T11:58:58.163Z",
"updated_at": "2022-05-12T11:58:58.163Z",
"checklist_items": [
{
"id": 26930,
"text": "one",
"checked": true,
"position": 1,
"created_at": "2022-05-12T11:59:02.285Z",
"updated_at": "2022-05-12T11:59:20.223Z"
},
{
"id": 26931,
"text": "two",
"checked": true,
"position": 2,
"created_at": "2022-05-12T11:59:03.042Z",
"updated_at": "2022-05-12T11:59:21.131Z"
},
{
"id": 26929,
"text": "three",
"checked": false,
"position": 3,
"created_at": "2022-05-12T11:59:01.380Z",
"updated_at": "2022-05-12T11:59:01.380Z"
}
]
}
}
},
{
"id": "29570",
"type": "step_orderable_elements",
"attributes": {
"position": 0,
"element": {
"id": 19968,
"text": "<div>Some text.</div>",
"created_at": "2022-06-27T09:12:36.703Z",
"updated_at": "2022-06-27T09:12:45.714Z"
}
}
}
]
}
This endpoint is used for changing the order of step elements.
Reorder steps
curl -X POST \
https://<server-name>/api/service/teams/1/protocols/1/reorder_steps \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"step_order": [
{ "id": 21803, "position": 1 },
{ "id": 21802, "position": 0 },
{ "id": 21801, "position": 2 }
]
}'
HTTP Request
POST https://<server-name>/api/service/teams/1/protocols/1/reorder_steps
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
Request body
{
"step_order": [
{ "id": 21803, "position": 1 },
{ "id": 21802, "position": 0 },
{ "id": 21801, "position": 2 }
]
}
The above command returns JSON structured like this:
{
"data": [
{
"id": "21802",
"type": "steps",
"attributes": {
"name": "Step 2",
"position": 0,
"completed": false,
"created_at": "2022-05-11T14:21:13.984Z",
"updated_at": "2022-05-11T14:21:16.501Z"
},
"relationships": {
"user": {
"data": {
"id": "9",
"type": "users"
}
},
"protocol": {
"data": {
"id": "11200",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
},
"step_elements": {
"data": [
{
"id": "29289",
"type": "step_orderable_elements"
}
]
}
}
},
{
"id": "21803",
"type": "steps",
"attributes": {
"name": "Step 1",
"position": 0,
"completed": false,
"created_at": "2022-05-11T14:21:13.984Z",
"updated_at": "2022-05-11T14:21:16.501Z"
},
"relationships": {
"user": {
"data": {
"id": "9",
"type": "users"
}
},
"protocol": {
"data": {
"id": "11200",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
},
"step_elements": {
"data": [
{
"id": "29289",
"type": "step_orderable_elements"
}
]
}
}
},
{
"id": "21801",
"type": "steps",
"attributes": {
"name": "Step 3",
"position": 0,
"completed": false,
"created_at": "2022-05-11T14:21:13.984Z",
"updated_at": "2022-05-11T14:21:16.501Z"
},
"relationships": {
"user": {
"data": {
"id": "9",
"type": "users"
}
},
"protocol": {
"data": {
"id": "11200",
"type": "protocols"
}
},
"assets": {
"data": []
},
"checklists": {
"data": []
},
"tables": {
"data": []
},
"step_texts": {
"data": []
},
"comments": {
"data": []
},
"step_elements": {
"data": []
}
}
}
]
}
This endpoint is used for changing the order of steps.
Step checklists V1(Deprecated)
Get Checklists (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 1",
"position": 0
},
"relationships": {
"checklist_items": {
"data": []
}
}
},
{
"id": "2",
"type": "checklists",
"attributes": {
"name": "Checklist 2",
"position": 1
},
"relationships": {
"checklist_items": {
"data": []
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves checklists from specific step. It also supports inclusion of these elements: checklist_items.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve step from |
STEP_ID | The ID of the step to retrieve checklists from |
FROM | If present will filter checklists corresponding timestamp above or equals value |
TO | If present will filter checklists corresponding timestamp below or equals value |
Get Checklist (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 1",
"position": 0
},
"relationships": {
"checklist_items": {
"data": []
}
}
}
}
This endpoint retrieves specific checklist from the step. It also supports inclusion of these elements: checklist_items.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
ID | The ID of the checklist |
Create Checklist (Deprecated)
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "checklists",
"attributes": {
"name": "New checklist"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "checklists",
"attributes": {
"name": "Checklist 3",
"position": 0
},
"relationships": {
"checklist_items": {
"data": []
}
}
}
}
This endpoint creates new checklist in the step.
HTTP Request
POST https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to create checklist in |
Request body
{
"data": {
"type": "checklists",
"attributes": {
"name": "New checklist",
"position": 0
}
}
}
Checklist attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the checklist |
Update Checklist (Deprecated)
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 2",
"position": 0
}
}
}
This endpoint updates existing checklist in the selected step. If submitted attributes are the same and no changes are made for the checklist, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
ID | The ID of the checklist |
Request body
{
"data": {
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 2"
}
}
}
Checklist attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the checklist |
Delete Checklist (Deprecated)
curl -X DELETE \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific checklist from the step.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklists from |
ID | The ID of the checklist |
Step checklists V2
Get Checklists
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 1",
"position": 0
},
"relationships": {
"checklist_items": {
"data": []
}
}
},
{
"id": "2",
"type": "checklists",
"attributes": {
"name": "Checklist 2",
"position": 1
},
"relationships": {
"checklist_items": {
"data": []
}
}
}
],
"links": {
"self": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves checklists from specific step. It also supports inclusion of these elements: checklist_items.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve step from |
STEP_ID | The ID of the step to retrieve checklists from |
FROM | If present will filter checklists corresponding timestamp above or equals value |
TO | If present will filter checklists corresponding timestamp below or equals value |
Get Checklist
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 1",
"position": 0
},
"relationships": {
"checklist_items": {
"data": []
}
}
}
}
This endpoint retrieves specific checklist from the step. It also supports inclusion of these elements: checklist_items.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
ID | The ID of the checklist |
Create Checklist
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "checklists",
"attributes": {
"name": "New checklist"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "checklists",
"attributes": {
"name": "Checklist 3",
"position": 0
},
"relationships": {
"checklist_items": {
"data": []
}
}
}
}
This endpoint creates new checklist in the step.
HTTP Request
POST https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to create checklist in |
Request body
{
"data": {
"type": "checklists",
"attributes": {
"name": "New checklist",
"position": 0
}
}
}
Checklist attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the checklist |
Update Checklist
curl -X PATCH \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 2",
"position": 0
}
}
}
This endpoint updates existing checklist in the selected step. If submitted attributes are the same and no changes are made for the checklist, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
ID | The ID of the checklist |
Request body
{
"data": {
"id": "1",
"type": "checklists",
"attributes": {
"name": "Checklist 2"
}
}
}
Checklist attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the checklist |
Delete Checklist
curl -X DELETE \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific checklist from the step.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklists from |
ID | The ID of the checklist |
Step checklist items V1(Deprecated)
Get Checklist Items (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/items"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 1",
"checked": false,
"position": 0
}
},
{
"id": "2",
"type": "checklist_items",
"attributes": {
"text": "Item 2",
"checked": false,
"position": 1
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/item?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/item?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/items?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves items from the specific checklist.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<CHECKLIST_ID>/items(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve step from |
STEP_ID | The ID of the step to retrieve checklists from |
CHECKLIST_ID | The ID of the checklist to retrieve items from |
FROM | If present will filter checklist items corresponding timestamp above or equals value |
TO | If present will filter checklist items corresponding timestamp below or equals value |
Get Checklist Item (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/items/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 1",
"checked": false,
"position": 0
}
}
}
This endpoint retrieves specific item from the checklist.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<CHECKLIST_ID>/items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
CHECKLIST_ID | The ID of the checklist to retrieve item from |
ID | The ID of the checklist |
Create Checklist Item (Deprecated)
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/items \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "checklist_items",
"attributes": {
"text": "Item 3",
"checked": false,
"position": 2
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "checklist_items",
"attributes": {
"text": "Item 3",
"checked": false,
"position": 2
}
}
}
This endpoint creates new item in the checklist.
HTTP Request
POST https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/items
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
CHECKLIST_ID | The ID of the checklist to create item in |
Request body
{
"data": {
"type": "checklist_items",
"attributes": {
"text": "Item 3",
"checked": false,
"position": 2
}
}
}
Checklist item attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | Label text of the item |
checked | no | Item checked or unchecked |
position | no | Position of the item in the checklist |
Update Checklist Item (Deprecated)
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 2",
"checked": true
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 2",
"checked": true,
"position": 0
}
}
}
This endpoint updates existing item in the selected checklist. If submitted attributes are the same and no changes are made for the item, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<CHECKLIST_ID>/items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
CHECKLIST_ID | The ID of the checklist to retrieve item from |
ID | The ID of the checklist |
Request body
{
"data": {
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 2",
"checked": true
}
}
}
Checklist item attributes
Attribute | Mandatory | Description |
---|---|---|
text | no | Label text of the item |
checked | no | Item checked or unchecked |
position | no | Position of the item in the checklist |
Delete Checklist Item (Deprecated)
curl -X DELETE \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/items/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific item from the checklist.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<CHECKLIST_ID>/items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklists from |
CHECKLIST_ID | The ID of the checklist to retrieve items from |
ID | The ID of the checklist item |
Step checklist items V2
Get Checklist Items
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 1",
"checked": false,
"position": 0
}
},
{
"id": "2",
"type": "checklist_items",
"attributes": {
"text": "Item 2",
"checked": false,
"position": 1
}
}
],
"links": {
"self": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves items from the specific checklist.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<CHECKLIST_ID>/checklist_items(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve step from |
STEP_ID | The ID of the step to retrieve checklists from |
CHECKLIST_ID | The ID of the checklist to retrieve items from |
FROM | If present will filter checklist items corresponding timestamp above or equals value |
TO | If present will filter checklist items corresponding timestamp below or equals value |
Get Checklist Item
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 1",
"checked": false,
"position": 0
}
}
}
This endpoint retrieves specific item from the checklist.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<CHECKLIST_ID>/checklist_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
CHECKLIST_ID | The ID of the checklist to retrieve item from |
ID | The ID of the checklist item |
Create Checklist Item
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "checklist_items",
"attributes": {
"text": "Item 3",
"checked": false,
"position": 2
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "checklist_items",
"attributes": {
"text": "Item 3",
"checked": false,
"position": 2
}
}
}
This endpoint creates new item in the checklist.
HTTP Request
POST https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
CHECKLIST_ID | The ID of the checklist to create item in |
Request body
{
"data": {
"type": "checklist_items",
"attributes": {
"text": "Item 3",
"checked": false,
"position": 2
}
}
}
Checklist item attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | Label text of the item |
checked | no | Item checked or unchecked |
position | no | Position of the item in the checklist |
Update Checklist Item
curl -X PATCH \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklist_items/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 2",
"checked": true
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 2",
"checked": true,
"position": 0
}
}
}
This endpoint updates existing item in the selected checklist. If submitted attributes are the same and no changes are made for the item, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<CHECKLIST_ID>/checklist_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklist from |
CHECKLIST_ID | The ID of the checklist to retrieve item from |
ID | The ID of the checklist item |
Request body
{
"data": {
"id": "1",
"type": "checklist_items",
"attributes": {
"text": "Item 2",
"checked": true
}
}
}
Checklist item attributes
Attribute | Mandatory | Description |
---|---|---|
text | no | Label text of the item |
checked | no | Item checked or unchecked |
position | no | Position of the item in the checklist |
Delete Checklist Item
curl -X DELETE \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists/1/checklist_items/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific item from the checklist.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/checklists/<CHECKLIST_ID>/checklist_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve checklists from |
CHECKLIST_ID | The ID of the checklist to retrieve items from |
ID | The ID of the checklist item |
Step tables V1(Deprecated)
Get Tables (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 1",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
},
{
"id": "2",
"type": "tables",
"attributes": {
"name": "Table 2",
"position": 1,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}]
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves tables from specific step.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/tables(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve step from |
STEP_ID | The ID of the step to retrieve tables from |
FROM | If present will filter step tables corresponding timestamp above or equals value |
TO | If present will filter step tables corresponding timestamp below or equals value |
Get Table (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 1",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint retrieves specific table from the step.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve table from |
ID | The ID of the table |
Create Table (Deprecated)
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "tables",
"attributes": {
"name": "New table",
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"},
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "tables",
"attributes": {
"name": "New table",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint creates new table in the step.
HTTP Request
POST https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to create table in |
Request body
{
"data": {
"type": "tables",
"attributes": {
"name": "New table",
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
Table attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the table |
contents | no | Serialized JSON representation of the table data |
metadata | no | JSON representation of the table metadata. cells represent the alignment of the specific table cell. Available className are htCenter , htRight , htLeft , htJustify for horizontal alignment, and htTop , htMiddle , htBottom for vertical alignment. plateTemplate field mark if table is a plate template |
Update Table (Deprecated)
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"position": 0,
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint updates existing table in the selected step. If submitted attributes are the same and no changes are made for the table, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve table from |
ID | The ID of the table |
Request body
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
Table attributes
Attribute | Mandatory | Description |
---|---|---|
name | no | Name of the table |
contents | no | Serialized JSON representation of the table data |
metadata | no | JSON representation of the table metadata. cells represent the alignment of the specific table cell. Available className are htCenter , htRight , htLeft , htJustify for horizontal alignment, and htTop , htMiddle , htBottom for vertical alignment. plateTemplate field mark if table is a plate template |
Delete Table (Deprecated)
curl -X DELETE \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific table from the step.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve tables from |
ID | The ID of the table |
Step tables V2
Get Tables
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 1",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
},
{
"id": "2",
"type": "tables",
"attributes": {
"name": "Table 2",
"position": 1,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}]
}
}
}
],
"links": {
"self": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves tables from specific step.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/tables(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve step from |
STEP_ID | The ID of the step to retrieve tables from |
FROM | If present will filter step tables corresponding timestamp above or equals value |
TO | If present will filter step tables corresponding timestamp below or equals value |
Get Table
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 1",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint retrieves specific table from the step.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve table from |
ID | The ID of the table |
Create Table
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "tables",
"attributes": {
"name": "New table",
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"},
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "tables",
"attributes": {
"name": "New table",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint creates new table in the step.
HTTP Request
POST https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to create table in |
Request body
{
"data": {
"type": "tables",
"attributes": {
"name": "New table",
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
Table attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the table |
contents | no | Serialized JSON representation of the table data |
metadata | no | JSON representation of the table metadata. cells represent the alignment of the specific table cell. Available className are htCenter , htRight , htLeft , htJustify for horizontal alignment, and htTop , htMiddle , htBottom for vertical alignment. plateTemplate field mark if table is a plate template |
Update Table
curl -X PATCH \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"position": 0,
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint updates existing table in the selected step. If submitted attributes are the same and no changes are made for the table, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve table from |
ID | The ID of the table |
Request body
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
Table attributes
Attribute | Mandatory | Description |
---|---|---|
name | no | Name of the table |
contents | no | Serialized JSON representation of the table data |
metadata | no | JSON representation of the table metadata. cells represent the alignment of the specific table cell. Available className are htCenter , htRight , htLeft , htJustify for horizontal alignment, and htTop , htMiddle , htBottom for vertical alignment. plateTemplate field mark if table is a plate template |
Delete Table
curl -X DELETE \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/tables/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific table from the step.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve tables from |
ID | The ID of the table |
Step texts V1(Deprecated)
Get step_texts (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 0
}
},
{
"id": "2",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 1
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves step_texts from specific step.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/step_texts(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve step from |
STEP_ID | The ID of the step to retrieve step_texts from |
FROM | If present will filter steps' step_text, corresponding timestamp above or equals value |
TO | If present will filter steps' step_text, corresponding timestamp below or equals value |
Get step_text (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 0
}
}
}
This endpoint retrieves specific step_text from the step.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/step_texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve step_text from |
ID | The ID of the step_text |
Create step_text (Deprecated)
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 0
}
}
}
This endpoint creates new step_text in the step.
HTTP Request
POST https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to create step_text in |
Request body
{
"data": {
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
Step_text attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | String representation of the step_text data |
Update step_text (Deprecated)
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 0
}
}
}
This endpoint updates existing step_Text in the selected step. If submitted attributes are the same and no changes are made for the step_text, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/step_texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve step_text from |
ID | The ID of the step_text |
Request body
{
"data": {
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
Step_text attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | String representation of the step_text data |
Delete step_text (Deprecated)
curl -X DELETE \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/step_texts/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific step_text from the step.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/step_texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve step_texts from |
ID | The ID of the step_text |
Step texts V2
Get step texts
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 0
}
},
{
"id": "2",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 1
}
}
],
"links": {
"self": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves step_texts from specific step.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/texts(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve step from |
STEP_ID | The ID of the step to retrieve step_texts from |
FROM | If present will filter steps' step_text, corresponding timestamp above or equals value |
TO | If present will filter steps' step_text, corresponding timestamp below or equals value |
Get step_text
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 0
}
}
}
This endpoint retrieves specific step_text from the step.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve step_text from |
ID | The ID of the step_text |
Create step_text
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 0
}
}
}
This endpoint creates new step_text in the step.
HTTP Request
POST https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to create step_text in |
Request body
{
"data": {
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
Step_text attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | String representation of the step_text data |
Update step_text
curl -X PATCH \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>",
"position": 0
}
}
}
This endpoint updates existing step_Text in the selected step. If submitted attributes are the same and no changes are made for the step_text, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve step_text from |
ID | The ID of the step_text |
Request body
{
"data": {
"id": "1",
"type": "step_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
Step_text attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | String representation of the step_text data |
Delete step_text
curl -X DELETE \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/texts/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific step_text from the step.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve step_texts from |
ID | The ID of the step_text |
Attachments V1(Deprecated)
Get Attachments (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1.png",
"file_size": 132441,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
},
{
"id": "2",
"type": "attachments",
"attributes": {
"file_name": "my_image2.png",
"file_size": 270369,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image2?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
},
{
"id": "3",
"type": "attachments",
"attributes": {
"file_name": "my_image3.png",
"file_size": 91435,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image3?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves attachments from specific step.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/attachments
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve attachments from |
Get Attachment (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1",
"file_size": 35038,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image1?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
}
}
This endpoint retrieves specific attachment from the step.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/attachments/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve attachments from |
ID | The ID of the attachment |
Create Attachment (Deprecated)
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/json' \
-d'{
"data": {
"attributes": {
"file_name": "my_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
},
"type": "attachments"
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1.png",
"file_size": 35038,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image1.png?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
}
}
This endpoint uploads new attachment to the step.
HTTP Request
POST https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve attachments from |
Request body
{
"data": {
"type": "attachments",
"attributes": {
"file_name": "my_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
}
}
}
Attachment attributes
Attribute | Mandatory | Description |
---|---|---|
file_name | yes | File name |
file_type | yes | MIME content type |
file_data | yes | Base64 Encoded data |
Attachments V2
Get Attachments
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1.png",
"file_size": 132441,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image1?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
},
{
"id": "2",
"type": "attachments",
"attributes": {
"file_name": "my_image2.png",
"file_size": 270369,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image2?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
},
{
"id": "3",
"type": "attachments",
"attributes": {
"file_name": "my_image3.png",
"file_size": 91435,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image3?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves attachments from specific step.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/attachments
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve attachments from |
Get Attachment
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1",
"file_size": 35038,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image1?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
}
}
This endpoint retrieves specific attachment from the step.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/attachments/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve attachments from |
ID | The ID of the attachment |
Create Attachment
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/attachments \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/json' \
-d'{
"data": {
"attributes": {
"file_name": "my_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
},
"type": "attachments"
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1.png",
"file_size": 35038,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image1.png?disposition=attachment"
},
"relationships": {
"step": {
"data": {
"id": "1",
"type": "steps"
}
}
}
}
}
This endpoint uploads new attachment to the step.
HTTP Request
POST https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/protocols/<PROTOCOL_ID>/steps/<STEP_ID>/attachments
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
PROTOCOL_ID | The ID of the protocol to retrieve steps from |
STEP_ID | The ID of the step to retrieve attachments from |
Request body
{
"data": {
"type": "attachments",
"attributes": {
"file_name": "my_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
}
}
}
Attachment attributes
Attribute | Mandatory | Description |
---|---|---|
file_name | yes | File name |
file_type | yes | MIME content type |
file_data | yes | Base64 Encoded data |
Task Users
Get Task Users
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/users"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "users",
"attributes": {
"full_name": "Admin",
"initials": "A",
"email": "admin@scinote.net",
"avatar_url": "http://example.com/avatar.png",
"avatar_file_size": 16181,
"avatar_file_name": "avatar.png"
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/users?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all users that are assigned to a specified task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/users(?created_at[from]=<FROM>&created_at[to]=<TO>]&updated_at[from]=<FROM>&updated_at[to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve users from |
FROM | If present will filter task assigned users corresponding timestamp above or equals value |
TO | If present will filter task assigned users corresponding timestamp below or equals value |
Get Task User
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/users/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "users",
"attributes": {
"full_name": "Admin",
"initials": "A",
"email": "admin@scinote.net",
"avatar_url": "http://example.com/avatar.png",
"avatar_file_size": 16181,
"avatar_file_name": "avatar.png"
}
}
}
This endpoint retrieves a specific user that is assigned to a specified task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/users/<USER_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve user from |
USER_ID | The ID of the user to retrieve |
Task Activities
Get Task Activities
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/activities"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "3",
"type": "activities",
"attributes": {
"type_of": "export_protocol_from_task",
"message": "<p>Admin exported protocol from task Sampling biological material</p>"
},
"relationships": {
"project": {
"data": {
"id": "1",
"type": "projects"
}
},
"subject": {
"data": {
"id": "2",
"type": "tasks"
}
},
"user": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
{
"id": "4",
"type": "activities",
"attributes": {
"type_of": "add_result",
"message": "<p>Admin added file result (example.png).</p>"
},
"relationships": {
"project": {
"data": {
"id": "1",
"type": "projects"
}
},
"subject": {
"data": {
"id": "12",
"type": "results"
}
},
"user": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/activities?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/activities?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/activities?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all activities from specific task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/activities(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve activities from |
FROM | If present will filter task activities corresponding timestamp above or equals value |
TO | If present will filter task activities corresponding timestamp below or equals value |
Task Tags
Get Task Tags
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/tags"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "tags",
"attributes": {
"name": "Drylab",
"color": "#15369E"
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/tags?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/tags?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/tags?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all tags, that are assigned to the specific task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/tags(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve task tags from |
FROM | If present will filter task assigned tags corresponding timestamp above or equals value |
TO | If present will filter task assigned tags corresponding timestamp below or equals value |
Get Task Tag
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/tags/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tags",
"attributes": {
"name": "Drylab",
"color": "#15369E"
}
}
}
This endpoint retrieves a specific tag, that is assigned to a specific task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/tags/<TAG_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve tag from |
TAG_ID | The ID of the tag to retrieve |
Task Inventory Items
Get Task Inventory Items
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/2/items"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "BOX/1",
"archived": false,
"created_at": "2021-03-12T19:44:10.627Z",
"updated_at": "2022-03-24T13:33:21.291Z",
"stock_consumption": "130.0" // present if item contains a stock cell
},
"relationships": {
"inventory_cells": {
"data": [
{
"id": "1",
"type": "inventory_cells"
},
{
"id": "2",
"type": "inventory_cells"
}
]
},
"inventory": {
"data": {
"id": "1",
"type": "inventories"
}
}
}
},
{
"id": "2",
"type": "inventory_items",
"attributes": {
"name": "BOX/2"
},
"relationships": {
"inventory_cells": {
"data": [
{
"id": "3",
"type": "inventory_cells"
},
{
"id": "4",
"type": "inventory_cells"
}
]
},
"inventory": {
"data": {
"id": "1",
"type": "inventories"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/2/items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/2/items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/2/items?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all Inventory Items, that are assigned to the specified task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/items(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve inventory items from |
FROM | If present will filter task assigned inventory items corresponding timestamp above or equals value |
TO | If present will filter task assigned inventory items corresponding timestamp below or equals value |
Get Task Inventory Item
curl "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/2/items/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "BOX/1",
"archived": false,
"created_at": "2021-03-12T19:44:10.627Z",
"updated_at": "2022-03-24T13:33:21.291Z",
"stock_consumption": "130.0" // present if item contains a stock cell
},
"relationships": {
"inventory_cells": {
"data": [
{
"id": "1",
"type": "inventory_cells"
},
{
"id": "2",
"type": "inventory_cells"
}
]
},
"inventory": {
"data": {
"id": "1",
"type": "inventories"
}
}
}
},
"included": [
{
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 1,
"inventory_list_item_name": "Potato leaves"
},
"column_id": 1
}
},
{
"id": "2",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 6,
"inventory_list_item_name": "Seed"
},
"column_id": 2
}
},
{
"id": "1",
"type": "inventories",
"attributes": {
"name": "Samples"
},
"relationships": {
"created_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
]
}
This endpoint retrieves a specific inventory item, that is assigned to the specific task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/items/<ITEM_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve inventory item from |
ITEM_ID | The ID of the inventory item to retrieve |
Update Task Inventory Item
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/protocols/1/steps/1/checklists \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventory_items",
"attributes": {
"stock_consumption": 100.0,
"stock_consumption_comment": "Some comment"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "BOX/1",
"archived": false,
"created_at": "2021-03-12T19:44:10.627Z",
"updated_at": "2022-03-24T13:33:21.291Z",
"stock_consumption": "100.0"
},
"relationships": {
"inventory_cells": {
"data": [
{
"id": "1",
"type": "inventory_cells"
},
{
"id": "2",
"type": "inventory_cells"
}
]
},
"inventory": {
"data": {
"id": "1",
"type": "inventories"
}
}
}
},
"included": [
{
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 1,
"inventory_list_item_name": "Potato leaves"
},
"column_id": 1
}
},
{
"id": "2",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 6,
"inventory_list_item_name": "Seed"
},
"column_id": 2
}
},
{
"id": "1",
"type": "inventories",
"attributes": {
"name": "Samples"
},
"relationships": {
"created_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
]
}
This endpoint updates a specific inventory item, that is assigned to the specific task.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/items/<ITEM_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve inventory item from |
ITEM_ID | The ID of the inventory item to retrieve |
Request body
{
"data": {
"type": "inventory_items",
"attributes": {
"stock_consumption": 100.0,
"stock_consumption_comment": "Some comment"
}
}
}
Checklist attributes
Attribute | Mandatory | Description |
---|---|---|
stock_consumption | yes | Stock consumption to be set on the item. |
stock_consumption_comment | no | Stock consumption comment to be set on the item. This will be recorded in the ledger |
Task Users Assignments
Get Task User Assignments
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/user_assignments"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "tasks"
}
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/user_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/user_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/user_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all users who are members of the specified task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/user_assignments(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve users from |
EXPERIMENT_ID | The ID of the experiment to retrieve users from |
TASK_ID | The ID of the task to retrieve users from |
INCLUDES | can include user , user_roles , and assignable (on this endpoint assignable is a task) |
FROM | If present will filter task members corresponding timestamp above or equals value |
TO | If present will filter task members corresponding timestamp below or equals value |
Get Task User Assignment
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/user_assignments/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "tasks"
}
}
}
}
]
}
This endpoint retrieves a specific user who is a member of the specified task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/user_assignments/<USER_ASSIGMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user from |
EXPERIMENT_ID | The ID of the experiment to retrieve user from |
TASK_ID | The ID of the task to retrieve user from |
USER_ASSIGNMENT_ID | The ID of the user assignment to retrieve |
INCLUDES | can include user , user_roles , and assignable (on this endpoint assignable is a task) |
Update Task User Assignment attributes
curl -X PATCH \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/user_assignment/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "user_assignments",
"attributes": {
"user_role_id": "2"
}
}
}'
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "user_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"user_role": {
"data": {
"id": "1",
"type": "user_roles"
}
},
"assignable": {
"data": {
"id": "1",
"type": "tasks"
}
}
}
}
]
}
This endpoint updates existing user assignment in the task. If submitted attributes are the same and no changes are made for the user assignment, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/user_assignments/<USER_ASSIGMENT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user assignment from |
EXPERIMENT_ID | The ID of the experiment to retrieve user from |
TASK_ID | The ID of the task to retrieve |
USER_ASSIGNMENT_ID | The ID of the user assignment |
Request body
{
"data": {
"type": "user_assignments",
"attributes": {
"user_role_id": "2"
}
}
}
Task User Assignment attributes
Attribute | Mandatory | Description |
---|---|---|
user_role_id | yes | Role on the task |
Task Assignment
Get Task Assignments
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/task_assignments"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "users",
"attributes": {
"full_name": "Sample User",
"initials": "SU",
"email": "sample@example.com",
"created_at": "2022-05-26T12:47:01.586Z",
"updated_at": "2022-05-27T08:19:54.704Z"
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/task_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/task_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/task_assignments?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all users who are assigned to the specified task.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/task_assignments(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve users from |
EXPERIMENT_ID | The ID of the experiment to retrieve users from |
TASK_ID | The ID of the task to retrieve users from |
FROM | If present will filter task assigned users corresponding timestamp above or equals value |
TO | If present will filter task assigned users corresponding timestamp below or equals value |
Create Task Assignment
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/task_assignment/ \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "task_assignments",
"attributes": {
"user_id": "1"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "task_assignments",
"attributes": {
"created_at": "2021-11-11T13:25:53.910Z",
"updated_at": "2021-11-15T10:30:33.415Z"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"tasks": {
"data": {
"id": "1",
"type": "tasks"
}
}
}
}
}
This endpoint assign user to the task.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/task_assignments
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user assignment from |
EXPERIMENT_ID | The ID of the experiment to retrieve user from |
TASK_ID | The ID of the task to retrieve |
Request body
{
"data": {
"type": "task_assignments",
"attributes": {
"user_id": "2"
}
}
}
Task Assignment attributes
Attribute | Mandatory | Description |
---|---|---|
user_id | yes | Role on the task |
Remove Task Assignment
curl -X DELETE \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/task_assignment/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint unassign user from task
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/task_assignments/<USER_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve user assignment from |
EXPERIMENT_ID | The ID of the experiment to retrieve user from |
TASK_ID | The ID of the task to retrieve |
USER_ID | The ID of the user |
Results V1(Deprecated)
Get Results (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/results"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "results",
"attributes": {
"name": "Result 1",
"archived": false
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"text": {
"data": {
"id": "1",
"type": "result_texts"
}
}
}
},
{
"id": "2",
"type": "results",
"attributes": {
"name": "Result 2",
"archived": false
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"table": {
"data": {
"id": "1",
"type": "result_tables"
}
}
}
},
{
"id": "3",
"type": "results",
"attributes": {
"name": "Result 3",
"archived": false,
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"file": {
"data": {
"id": "1",
"type": "result_files"
}
}
}
}
],
"included": [
{
"id": "1",
"type": "result_texts",
"attributes": {
"text": "Result 1 Text"
}
},
{
"id": "1",
"type": "result_tables",
"attributes": {
"table_id": 1,
"table_contents": <table-contents>,
"metadata": {
"cells": [
{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": ""}
]
}
}
},
{
"id": "1",
"type": "result_files",
"attributes": {
"file_id": 1,
"file_name": <file-name>,
"file_size": 69,
"url": <file-url>
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/results?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/results?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/results?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all results from the task. Texts, files and tables are included by default.
If ?include=comments
PATH parameter is provided, result comments are also included.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results(?include=<INCLUDES>&filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
PROJECT_ID | The ID of the project |
EXPERIMENT_ID | The ID of the experiment |
TASK_ID | The ID of the task |
INCLUDES | if set to comments , result comments are also included |
FROM | If present will filter task results corresponding timestamp above or equals value |
TO | If present will filter task results corresponding timestamp below or equals value |
Get Result (Deprecated)
curl "https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/results/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "Result 1",
"archived": false
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"text": {
"data": {
"id": "1",
"type": "result_texts"
}
}
}
},
"included": [
{
"id": "1",
"type": "result_texts",
"attributes": {
"text": "Result 1 Text"
}
}
]
}
This endpoint retrieves specific result. Text, file or table is included by default.
If ?include=comments
PATH parameter is provided, result comments are also included.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<ID>(?include=<INCLUDES>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
PROJECT_ID | The ID of the project |
EXPERIMENT_ID | The ID of the experiment |
TASK_ID | The ID of the task |
ID | The ID of the result |
INCLUDES | if set to comments , result comments are also included |
Create Result (Deprecated)
with Text Result and TinyMCE images
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/results \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "results",
"attributes": {
"name": "Result 1"
}
},
"included": [
{
"type": "result_texts",
"attributes": {
"text": "Result text 1 [~tiny_mce_id:a1]"
}
},
{
"type": "tiny_mce_assets",
"attributes": {
"file_data": "data:image/png;base64,qwerty123456...",
"file_token": "a1",
"file_name": "test.png"
}
}
]
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "Result 1",
"archived": false
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"text": {
"data": {
"id": "1",
"type": "result_texts"
}
}
}
},
"included": [
{
"id": "1",
"type": "result_texts",
"attributes": {
"text": "Result [~tiny_mce_id:1]"
}
}
]
}
This endpoint creates new result, also result text can be added inside "included" section in the same request along with TinyMCE images. Please reference to the sample request.
Images should be base64 encoded in such format: data:image/png;base64,<FILE_CONTENT>
, where FILE_CONTENT is base64 encoded image file. It should be referenced inside result text with unique token using this format: [~tiny_mce_id:<TOKEN>]
.
Token should be string without special symbols.
with File Result
curl -X POST \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/results \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"attributes": {
"name": "My Result"
},
"type": "results"
},
"included": [
{
"attributes": {
"file_name": "my_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
},
"type": "result_files"
}
]
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "My Result",
"archived": false
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"file": {
"data": {
"id": "1",
"type": "result_files"
}
}
}
},
"included": [
{
"id": "1",
"type": "result_files",
"attributes": {
"file_id": "1",
"file_name": "my_file.png",
"file_size": "4213",
"url": "/rails/active_storage/blobs/<asset_signed_id>/my_file?disposition=attachment"
}
}
]
}
This endpoint creates new result, also result file can be added inside "included" section in the same request. Please reference to the sample request.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
PROJECT_ID | The ID of the project |
EXPERIMENT_ID | The ID of the experiment |
TASK_ID | The ID of the task |
Request body with ResultText
{
"data": {
"type": "results",
"attributes": {
"name": "Result 1"
}
},
"included": [
{
"type": "result_texts",
"attributes": {
"text": "Result [~tiny_mce_id:a1]..."
}
},
{
"type": "tiny_mce_assets",
"attributes": {
"file_data": "data:image/png;base64,qwerty123456...",
"file_token": "a1",
"file_name": "test.png"
}
}
]
}
Request body with ResultFile
{
"data": {
"attributes": {
"name": "Result1"
},
"type": "results"
},
"included": [
{
"attributes": {
"file_name": "my_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
},
"type": "result_files"
}
]
}
Result attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the result |
Result text attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | Text of result |
TinyMCE attributes
Attribute | Mandatory | Description |
---|---|---|
file_data | yes | Image file encoded in the string, "data:image/png;base64, |
file_token | yes | Unique token used for referencing inside result text |
file_name | yes | Name of the file |
Result file attributes
Attribute | Mandatory | Description |
---|---|---|
file_name | yes | File name |
file_type | yes | MIME content type |
file_data | yes | Base64 Encoded data |
Update Result (Deprecated)
with File Result
curl -X PUT \
https://<server-name>/api/v1/teams/1/projects/1/experiments/1/tasks/1/results/1 \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"attributes": {
"name": "Result with new name"
},
"type": "results"
},
"included": [
{
"attributes": {
"file_name": "new_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
},
"type": "result_files"
}
]
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "Result with new name",
"archived": false
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
},
"file": {
"data": {
"id": "1",
"type": "result_files"
}
}
}
},
"included": [
{
"id": "1",
"type": "result_files",
"attributes": {
"file_id": "1",
"file_name": "new_file.png",
"file_size": "4213",
"url": "/rails/active_storage/blobs/<asset_signed_id>/my_file?disposition=attachment"
}
}
]
}
This endpoint updates result, also result file can be added inside "included" section in the same request. Please reference to the sample request.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
PROJECT_ID | The ID of the project |
EXPERIMENT_ID | The ID of the experiment |
TASK_ID | The ID of the task |
ID | The ID of the result |
Request body
{
"data": {
"attributes": {
"name": "Result with ne name"
},
"type": "results"
},
"included": [
{
"attributes": {
"file_name": "new_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
},
"type": "result_files"
}
]
}
Result attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the result |
Result file attributes
Attribute | Mandatory | Description |
---|---|---|
file_name | yes | File name |
file_type | yes | MIME content type |
file_data | yes | Base64 Encoded data |
Task Results V2
Get Results
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "4196",
"type": "results",
"attributes": {
"name": "Result name",
"archived": false
},
"relationships": {
"assets": {
"data": []
},
"tables": {
"data": []
},
"result_texts": {
"data": []
},
"comments": {
"data": []
}
}
},
{
"id": "4195",
"type": "results",
"attributes": {
"name": "Result name",
"archived": false
},
"relationships": {
"assets": {
"data": []
},
"tables": {
"data": []
},
"result_texts": {
"data": []
},
"comments": {
"data": []
}
}
},
{
"id": "4194",
"type": "results",
"attributes": {
"name": "Result name",
"archived": false
},
"relationships": {
"assets": {
"data": []
},
"tables": {
"data": []
},
"result_texts": {
"data": []
},
"comments": {
"data": []
}
}
}
],
"links": {
"self": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results?page%5Bnumber%5D=2&page%5Bsize%5D=10",
"last": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results?page%5Bnumber%5D=4&page%5Bsize%5D=10"
}
}
This endpoint retrieves results from specific task. It also supports inclusion of these elements: tables, result_texts, assets, comments.
If ?include=comments
PATH parameter is provided, result comments are also included.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results(?include=<INCLUDES>&filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
PROJECT_ID | The ID of the project |
EXPERIMENT_ID | The ID of the experiment |
TASK_ID | The ID of the task |
INCLUDES | if set to comments , result comments are also included |
FROM | If present will filter task results corresponding timestamp above or equals value |
TO | If present will filter task results corresponding timestamp below or equals value |
Get Result
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "Result name",
"archived": false
},
"relationships": {
"assets": {
"data": []
},
"tables": {
"data": []
},
"result_texts": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint retrieves specific result from the task. It also supports inclusion of these elements: tables, result_texts, assets, comments.
If ?include=comments
PATH parameter is provided, result comments are also included.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<ID>(?include=<INCLUDES>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
PROJECT_ID | The ID of the project |
EXPERIMENT_ID | The ID of the experiment |
TASK_ID | The ID of the task |
ID | The ID of the result |
INCLUDES | if set to comments , result comments are also included |
Create Result
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "results",
"attributes": {
"name": "Result name"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "Result name",
"archived": false
},
"relationships": {
"assets": {
"data": []
},
"tables": {
"data": []
},
"result_texts": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint creates new result in the task.
HTTP Request
POST https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve result from |
Request body
{
"data": {
"type": "results",
"attributes": {
"name": "Result name"
}
}
}
Result attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the step |
Update Result
curl -X PATCH \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "Result 2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "Result 2",
"archived": false
},
"relationships": {
"assets": {
"data": []
},
"tables": {
"data": []
},
"result_texts": {
"data": []
},
"comments": {
"data": []
}
}
}
}
This endpoint updates existing result in the selected task. If submitted attributes are the same and no changes are made for the result, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve result from |
ID | The ID of the result |
Request body
{
"data": {
"id": "1",
"type": "results",
"attributes": {
"name": "Result 2"
}
}
}
Result attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the step |
Delete Result
curl -X DELETE \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific result from the task. Only archived results can be deleted.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve result from |
ID | The ID of the result |
Result Attachments V2
Get Attachments
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/attachments"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1.png",
"file_size": 132441,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image1?disposition=attachment"
},
"relationships": {
"result": {
"data": {
"id": "1",
"type": "results"
}
}
}
},
{
"id": "2",
"type": "attachments",
"attributes": {
"file_name": "my_image2.png",
"file_size": 270369,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image2?disposition=attachment"
},
"relationships": {
"result": {
"data": {
"id": "1",
"type": "results"
}
}
}
},
{
"id": "3",
"type": "attachments",
"attributes": {
"file_name": "my_image3.png",
"file_size": 91435,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image3?disposition=attachment"
},
"relationships": {
"result": {
"data": {
"id": "1",
"type": "results"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/attachments?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves attachments from specific result.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/attachments
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve attachments from |
Get Attachment
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/attachments/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1",
"file_size": 35038,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image1?disposition=attachment"
},
"relationships": {
"result": {
"data": {
"id": "1",
"type": "results"
}
}
}
}
}
This endpoint retrieves specific attachment from the result.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/attachments/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve attachment from |
ID | The ID of the attachment |
Create Attachment
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/attachments \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/json' \
-d'{
"data": {
"attributes": {
"file_name": "my_file.png",
"file_type": "image/png",
"file_data": "iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAE0lEQVQIHWP8//8/AwMDExADAQAkBgMBOOSShwAAAABJRU5ErkJggg=='\''"
},
"type": "attachments"
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "attachments",
"attributes": {
"file_name": "my_image1.png",
"file_size": 35038,
"file_type": "image/png",
"file_url": "http://<server-name>/rails/active_storage/blobs/<asset_signed_id>/my_image1.png?disposition=attachment"
},
"relationships": {
"result": {
"data": {
"id": "1",
"type": "results"
}
}
}
}
}
This endpoint uploads new attachment to the result.
HTTP Request
POST https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/attachments
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to create attachment for |
Request body
{
"data": {
"type": "attachments",
"attributes": {
"file_name": "my_file.png",
"file_type": "image/png",
"file_data": "Base64EncodedData"
}
}
}
Attachment attributes
Attribute | Mandatory | Description |
---|---|---|
file_name | yes | File name |
file_type | yes | MIME content type |
file_data | yes | Base64 Encoded data |
Result tables V2
Get Tables
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 1",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
},
{
"id": "2",
"type": "tables",
"attributes": {
"name": "Table 2",
"position": 1,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}]
}
}
}
],
"links": {
"self": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves tables from specific result.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/tables(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve tables from |
FROM | If present will filter result tables corresponding timestamp above or equals value |
TO | If present will filter result tables corresponding timestamp below or equals value |
Get Table
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 1",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": "htCenter"},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": "htLeft"},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint retrieves specific table from the result.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve table from |
ID | The ID of the table |
Create Table
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "tables",
"attributes": {
"name": "New table",
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"},
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "tables",
"attributes": {
"name": "New table",
"position": 0,
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint creates new table in the result.
HTTP Request
POST https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/tables
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to create table for |
Request body
{
"data": {
"type": "tables",
"attributes": {
"name": "New table",
"contents": "{\"data\":[[\"1\",\"2\",\"3\"],[\"4\",\"5\",\"6\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
Table attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the table |
contents | no | Serialized JSON representation of the table data |
metadata | no | JSON representation of the table metadata. cells represent the alignment of the specific table cell. Available className are htCenter , htRight , htLeft , htJustify for horizontal alignment, and htTop , htMiddle , htBottom for vertical alignment. plateTemplate field mark if table is a plate template |
Update Table
curl -X PATCH \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"position": 0,
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
This endpoint updates existing table in the selected result. If submitted attributes are the same and no changes are made for the table, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
RESULT_ID | The ID of the result to retrieve table from |
ID | The ID of the table |
Request body
{
"data": {
"id": "1",
"type": "tables",
"attributes": {
"name": "Table 2",
"contents": "{\"data\":[[\"6\",\"5\",\"4\"],[\"3\",\"2\",\"1\"]]}",
"metadata": {
"cells": [{"col": 0, "row": 0, "className": ""},
{"col": 0, "row": 1, "className": "htRight"},
{"col": 1, "row": 0, "className": ""},
{"col": 1, "row": 1, "className": "htJustify"}
{"col": 2, "row": 0, "className": "htMiddle htRight"},
{"col": 2, "row": 1, "className": "htBottom"}],
"plateTemplate": true
}
}
}
}
Table attributes
Attribute | Mandatory | Description |
---|---|---|
name | no | Name of the table |
contents | no | Serialized JSON representation of the table data |
metadata | no | JSON representation of the table metadata. cells represent the alignment of the specific table cell. Available className are htCenter , htRight , htLeft , htJustify for horizontal alignment, and htTop , htMiddle , htBottom for vertical alignment. plateTemplate field mark if table is a plate template |
Delete Table
curl -X DELETE \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/tables/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific table from the result.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/tables/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve table from |
ID | The ID of the table |
Result texts V2
Get texts
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/texts"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
},
{
"id": "2",
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
],
"links": {
"self": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/texts?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/texts?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/texts?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves texts from specific result.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/texts(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve texts from |
FROM | If present will filter results' text, corresponding timestamp above or equals value |
TO | If present will filter results' text, corresponding timestamp below or equals value |
Get result text
curl "https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/texts/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
This endpoint retrieves specific text from the result.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve texts from |
ID | The ID of the text |
Create result text
curl -X POST \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/texts \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "3",
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
This endpoint creates new text in the result.
HTTP Request
POST https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/texts/
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to create texts in |
Request body
{
"data": {
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
Result text attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | String representation of the text data |
Update result text
curl -X PATCH \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/texts/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
This endpoint updates existing Text in the selected result. If submitted attributes are the same and no changes are made for the text, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve texts from |
ID | The ID of the text |
Request body
{
"data": {
"id": "1",
"type": "result_texts",
"attributes": {
"text": "<p>Some text.</p>"
}
}
}
Result text attributes
Attribute | Mandatory | Description |
---|---|---|
text | yes | String representation of the text data |
Delete result text
curl -X DELETE \
https://<server-name>/api/v2/teams/1/projects/1/experiments/1/tasks/1/results/1/texts/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific text from the result.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/projects/<PROJECT_ID>/experiments/<EXPERIMENT_ID>/tasks/<TASK_ID>/results/<RESULT_ID>/texts/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve experiment from |
EXPERIMENT_ID | The ID of the experiment to retrieve task from |
TASK_ID | The ID of the task to retrieve protocol from |
RESULT_ID | The ID of the result to retrieve texts from |
ID | The ID of the text |
Reports
Get Reports
curl "http://<server-name>/api/v1/teams/1/projects/1/reports"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "reports",
"attributes": {
"name": "Report 1",
"description": "My report",
"pdf_file_size": 1234,
"pdf_file_url": "http://example.com/report.pdf",
"docx_file_size": 1234,
"docx_file_url": "http://example.com/report.docx"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/projects/1/reports?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/projects/1/reports?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "http://<server-name>/api/v1/teams/1/projects/1/reports?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves reports from specific project. PDF and DOCX attributes will be included only if files are generated.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/reports(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve reports from |
FROM | If present will filter project reports corresponding timestamp above or equals value |
TO | If present will filter project reports corresponding timestamp below or equals value |
Get Report
curl "http://<server-name>/api/v1/teams/1/projects/1/reports/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "reports",
"attributes": {
"name": "Report 1",
"description": "My report",
"pdf_file_size": 1234,
"pdf_file_url": "http://example.com/report.pdf",
"docx_file_size": 1234,
"docx_file_url": "http://example.com/report.docx"
},
"relationships": {
"user": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
"included": [
{
"id": "1",
"type": "users",
"attributes": {
"full_name": "Admin",
"initials": "A",
"email": "admin@scinote.net",
"avatar_url": "http://example.com/avatar.png",
"avatar_file_size": 16181,
"avatar_file_name": "avatar.png"
}
}
]
}
This endpoint retrieves a specific report from specific project. PDF and DOCX attributes will be included only if files are generated.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/projects/<PROJECT_ID>/reports/<REPORT_ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
PROJECT_ID | The ID of the project to retrieve report from |
REPORT_ID | The ID of the report to retrieve |
Protocol templates
Get Protocol templates
curl "https://<server-name>/api/v1/teams/1/protocol_templates"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "2",
"type": "protocols",
"attributes": {
"name": "Protocol name",
"authors": null,
"description": null,
"protocol_type": "in_repository_published_version",
"created_at": "2023-03-27T12:32:41.387Z",
"updated_at": "2023-03-27T12:33:23.481Z",
"version_number": 1,
"version_comment": "",
"published_on": "2023-03-22T13:48:58.226Z",
"archived": false
},
"relationships": {
"parent": {
"data": {
"id": "1",
"type": "protocols"
}
},
"linked_tasks": {
"data": [
{
"id": "1",
"type": "tasks"
}
]
},
"published_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
],
"links": {
"self": "http://<server-name>/api/v1/teams/1/protocol_templates/?page%5Bnumber%5D=1\u0026page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/protocol_templates/?page%5Bnumber%5D=1\u0026page%5Bsize%5D=10",
"prev": null,
"next": "http://<server-name>/api/v1/teams/1/protocol_templates/?page%5Bnumber%5D=2\u0026page%5Bsize%5D=10",
"last": "http://<server-name>/api/v1/teams/1/protocol_templates/?page%5Bnumber%5D=3\u0026page%5Bsize%5D=10"
}
}
This endpoint retrieves all latest protocol templates versions from the specified team.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/protocol_templates(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
FROM | If present will filter protocol templates corresponding timestamp above or equals value |
TO | If present will filter protocol templates corresponding timestamp below or equals value |
Get Protocol template
curl "https://<server-name>/api/v1/teams/1/protocol_templates/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "2",
"type": "protocols",
"attributes": {
"name": "Protocol name",
"authors": null,
"description": null,
"protocol_type": "in_repository_published_version",
"created_at": "2023-03-27T12:32:41.387Z",
"updated_at": "2023-03-27T12:33:23.481Z",
"version_number": 1,
"version_comment": "",
"published_on": "2023-03-22T13:48:58.226Z",
"archived": false
},
"relationships": {
"parent": {
"data": {
"id": "1",
"type": "protocols"
}
},
"linked_tasks": {
"data": [
{
"id": "1",
"type": "tasks"
}
]
},
"published_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
}
This endpoint retrieves specific protocol template from the specified team.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/protocol_templates/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve project from |
ID | The ID of the protocol template |
Linked tasks are visible in the response only for a specific version of a protocol template. In order to get linked tasks you must use the ID of the version to which the tasks are linked to.
Inventories
Get Inventories
curl "https://<server-name>/api/v1/teams/1/inventories"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventories",
"attributes": {
"name": "Inventory 1"
},
"relationships": {
"created_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
{
"id": "2",
"type": "inventories",
"attributes": {
"name": "Inventory 2"
},
"relationships": {
"created_by": {
"data": {
"id": "2",
"type": "users"
}
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/inventories?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/inventories?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/inventories?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all active inventories from the specified team.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventories from |
FROM | If present will filter inventories corresponding timestamp above or equals value |
TO | If present will filter inventories corresponding timestamp below or equals value |
Get Inventory
curl "https://<server-name>/api/v1/teams/1/inventories/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventories",
"attributes": {
"name": "Inventory 1"
},
"relationships": {
"created_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
"included": [
{
"id": "1",
"type": "users",
"attributes": {
<user-attributes>
}
}
]
}
This endpoint retrieves a specific inventory.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
ID | The ID of the inventory to retrieve |
Create Inventory
curl -X POST \
https://<server-name>/api/v1/teams/1/inventories \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventories",
"attributes": {
"name": "Samples"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventories",
"attributes": {
"name": "Samples"
}
},
"relationships": {
"created_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
This endpoint creates new inventory in the team.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/inventories
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
Request body
{
"data": {
"type": "inventories",
"attributes": {
"name": "Samples"
}
}
}
Inventory attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the column |
Update Inventory
curl -X PATCH \
https://<server-name>/api/v1/teams/1/inventories/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "inventories",
"attributes": {
"name": "Samples 2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventories",
"attributes": {
"name": "Samples 2"
},
"relationships": {
"created_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
}
This endpoint updates existing inventory in the selected team. If submitted attributes are the same and no changes are made for the inventory, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
ID | The ID of the inventory |
Request body
{
"data": {
"id": "1",
"type": "inventories",
"attributes": {
"name": "Samples 2"
}
}
}
Inventory attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the inventory |
Delete Inventory
curl -X DELETE \
https://<server-name>/api/v1/teams/1/inventories/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific inventory.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
ID | The ID of the inventory |
Inventory Columns
Get Columns
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_columns",
"attributes": {
"name": "Text Column",
"data_type": "text"
}
},
{
"id": "2",
"type": "inventory_columns",
"attributes": {
"name": "File Column",
"data_type": "file"
}
},
{
"id": "3",
"type": "inventory_columns",
"attributes": {
"name": "List Column",
"data_type": "list"
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/inventories/1/columns?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/inventories/1/columns?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/inventories/1/columns?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves columns from specific inventory.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
FROM | If present will filter inventory columns corresponding timestamp above or equals value |
TO | If present will filter inventory columns corresponding timestamp below or equals value |
Get Column
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_columns",
"attributes": {
"name": "Sample type",
"data_type": "list"
},
"relationships": {
"inventory_list_items": {
"data": [
{
"id": "1",
"type": "inventory_list_items"
},
{
"id": "2",
"type": "inventory_list_items"
}
]
}
}
},
"included": [
{
"id": "1",
"type": "inventory_list_items",
"attributes": {
"data": "ASF"
}
},
{
"id": "2",
"type": "inventory_list_items",
"attributes": {
"data": "GDD"
}
}
]
}
This endpoint retrieves specific column from inventory. For list type columns (list
), related list items are also included.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
ID | The ID of the column |
Create Column
curl -X POST \
https://<server-name>/api/v1/teams/1/inventories/1/columns \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventory_columns",
"attributes": {
"name": "Sample",
"data_type": "number",
"metadata": {
"decimals": "2"
}
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_columns",
"attributes": {
"name": "Sample",
"data_type": "number",
"metadata": {
"decimals": "2"
}
}
}
}
This endpoint creates new column in the inventory.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
Request body
{
"data": {
"type": "inventory_columns",
"attributes": {
"name": "Sample",
"data_type": "text"
}
}
}
Inventory column attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the column |
data_type | yes | Data type of the column - one of the following: text , number , file , list , checklist , status , date , time , stock , date_time , date_range , time_range , date_time_range |
metadata | no | Metadata for specific data type (now available only for number and stock data_type) |
Inventory column metadata attribute for number data_type
Attribute | Mandatory | Description |
---|---|---|
decimals | no | Number of decimals (only for number and stock data_type) |
Update Column
curl -X PATCH \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "inventory_columns",
"attributes": {
"name": "Sample 2",
"metadata": {
"decimals": "2"
}
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_columns",
"attributes": {
"name": "Sample 2",
"data_type": "number"
}
}
}
This endpoint updates existing list item in selected inventory column. Updating of data_type
attribute is not permitted.
If submitted attributes are the same and no changes are made for the item, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
ID | The ID of the column |
Request body
{
"data": {
"id": "1",
"type": "inventory_columns",
"attributes": {
"name": "Sample 2"
}
}
}
Inventory column attributes
Attribute | Mandatory | Description |
---|---|---|
name | no | Name of the column |
metadata | no | Metadata for specific data type (now available only for number and stock data_type) |
Inventory column metadata attribute for number data_type
Attribute | Mandatory | Description |
---|---|---|
decimals | no | Number of decimals (only for number and stock data_type) |
Delete Column
curl -X DELETE \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific column from the inventory.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
ID | The ID of the column |
Inventory Column List Items
Get List Items
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/list_items"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_list_items",
"attributes": {
"data": "Item 1"
}
},
{
"id": "2",
"type": "inventory_list_items",
"attributes": {
"data": "Item 2"
}
},
{
"id": "3",
"type": "inventory_list_items",
"attributes": {
"data": "Item 3"
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/list_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/list_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/list_items?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves list items from specific inventory column, only valid for columns with 'list' data type.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/list_items
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with list data type) in specified inventory to retrieve list items from |
FROM | If present will filter inventory column list items corresponding timestamp above or equals value |
TO | If present will filter inventory column list items corresponding timestamp below or equals value |
Get List Item
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/list_items/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_list_items",
"attributes": {
"data": "Item 1"
}
}
}
This endpoint retrieves specific list item from inventory column, only valid for columns with 'list' data type.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/list_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with list data type) in specified inventory to retrieve list items from |
ID | The ID of the list item |
Create List Item
curl -X POST \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/list_items \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventory_list_items",
"attributes": {
"data": "Item 1"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_list_items",
"attributes": {
"data": "Item 1"
}
}
}
This endpoint creates new list item in selected inventory column, only valid for columns with 'list' data type.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/list_items
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with list data type) in specified inventory to retrieve list items from |
Request body
{
"data": {
"type": "inventory_list_items",
"attributes": {
"data": "Item 1"
}
}
}
Attribute | Mandatory | Description |
---|---|---|
data | yes | Text value of the list item |
Update List Item
curl -X PATCH \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/list_items/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "inventory_list_items",
"attributes": {
"data": "Item 2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_list_items",
"attributes": {
"data": "Item 2"
}
}
}
This endpoint updates existing list item in selected inventory column. If submitted attributes are the same and no changes are made for the item, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/list_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with list data type) in specified inventory to retrieve list items from |
ID | The ID of the list item |
Request body
{
"data": {
"id": "1",
"type": "inventory_list_items",
"attributes": {
"data": "Item 2"
}
}
}
Attribute | Mandatory | Description |
---|---|---|
data | yes | Text value of the list item |
Delete List Item
curl -X DELETE \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/list_items/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific list item from inventory column.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/list_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with list data type) in specified inventory to retrieve list items from |
ID | The ID of the list item |
Inventory Column Status Items
Get Status Items
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/status_items"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_status_items",
"attributes": {
"status": "status 1",
"icon": "icon 1"
}
},
{
"id": "2",
"type": "inventory_status_items",
"attributes": {
"status": "status 2",
"icon": "icon 2"
}
},
{
"id": "3",
"type": "inventory_status_items",
"attributes": {
"status": "status 3",
"icon": "icon 3"
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/status_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/status_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/status_items?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves status items from specific inventory column, only valid for columns with 'status' data type.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/status_items(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with status data type) in specified inventory to retrieve status items from |
FROM | If present will filter inventory column status items corresponding timestamp above or equals value |
TO | If present will filter inventory column status items corresponding timestamp below or equals value |
Get Status Item
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/status_items/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_status_items",
"attributes": {
"data": "status 1",
"icon": "icon 1"
}
}
}
This endpoint retrieves specific status item from inventory column, only valid for columns with 'status' data type.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/status_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with status data type) in specified inventory to retrieve status items from |
ID | The ID of the status item |
Create Status Item
curl -X POST \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/status_items \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventory_status_items",
"attributes": {
"status": "status 1",
"icon": "icon"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_status_items",
"attributes": {
"status": "status 1",
"icon": "icon"
}
}
}
This endpoint creates new status item in selected inventory column, only valid for columns with 'status' data type.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/status_items
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with status data type) in specified inventory to retrieve status items from |
Request body
{
"data": {
"type": "inventory_status_items",
"attributes": {
"status": "status 1",
"icon": "icon"
}
}
}
Attribute | Mandatory | Description |
---|---|---|
status | yes | Name of the status item |
icon | yes | Icon of the status item |
Update Status Item
curl -X PATCH \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/status_items/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "inventory_status_items",
"attributes": {
"status": "status 2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_status_items",
"attributes": {
"status": "status 2",
"icon": "icon"
}
}
}
This endpoint updates existing status item in selected inventory column. If submitted attributes are the same and no changes are made for the item, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/status_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with status data type) in specified inventory to retrieve status items from |
ID | The ID of the status item |
Request body
{
"data": {
"id": "1",
"type": "inventory_status_items",
"attributes": {
"status": "status 2"
}
}
}
Attribute | Mandatory | Description |
---|---|---|
status | yes | Name of the status item |
Delete Status Item
curl -X DELETE \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/status_items/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific status item from inventory column.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/status_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with status data type) in specified inventory to retrieve status items from |
ID | The ID of the status item |
Inventory Column Checklist Items
Get Checklist Items
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/checklist_items"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 1"
}
},
{
"id": "2",
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 2"
}
},
{
"id": "3",
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 3"
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/checklist_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/checklist_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/checklist_items?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves checklist items from specific inventory column, only valid for columns with 'checklist' data type.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/checklist_items(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with checklist data type) in specified inventory to retrieve checklist items from |
FROM | If present will filter inventory column checklist items corresponding timestamp above or equals value |
TO | If present will filter inventory column checklist items corresponding timestamp below or equals value |
Get Checklist Item
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/checklist_items/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 1"
}
}
}
This endpoint retrieves specific checklist item from inventory column, only valid for columns with 'checklist' data type.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/checklist_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with checklist data type) in specified inventory to retrieve checklist items from |
ID | The ID of the checklist item |
Create Checklist Item
curl -X POST \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/checklist_items \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 1"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 1"
}
}
}
This endpoint creates new checklist item in selected inventory column, only valid for columns with 'checklist' data type.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/checklist_items
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with checklist data type) in specified inventory to retrieve checklist items from |
Request body
{
"data": {
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 1"
}
}
}
Attribute | Mandatory | Description |
---|---|---|
data | yes | Text value of the checklist item |
Update Checklist Item
curl -X PATCH \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/checklist_items/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 2"
}
}
}
This endpoint updates existing checklist item in selected inventory column. If submitted attributes are the same and no changes are made for the item, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/checklist_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with checklist data type) in specified inventory to retrieve checklist items from |
ID | The ID of the checklist item |
Request body
{
"data": {
"id": "1",
"type": "inventory_checklist_items",
"attributes": {
"data": "Item 2"
}
}
}
Attribute | Mandatory | Description |
---|---|---|
data | yes | Text value of the checklist item |
Delete Checklist Item
curl -X DELETE \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/checklist_items/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific checklist item from inventory column.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/checklist_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with checklist data type) in specified inventory to retrieve checklist items from |
ID | The ID of the checklist item |
Inventory Column Stock Unit Items
Get Stock Unit Items
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/stock_unit_items"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 1"
}
},
{
"id": "2",
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 2"
}
},
{
"id": "3",
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 3"
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/stock_unit_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/stock_unit_items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/stock_unit_items?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves stock unit items from specific inventory column, only valid for columns with 'stock' data type.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/stock_unit_items(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with stock data type) in specified inventory to retrieve stock unit items from |
FROM | If present will filter inventory column stock unit items corresponding timestamp above or equals value |
TO | If present will filter inventory column stock unit items corresponding timestamp below or equals value |
Get Stock Unit Item
curl "https://<server-name>/api/v1/teams/1/inventories/1/columns/1/stock_unit_items/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 1"
}
}
}
This endpoint retrieves specific stock unit item from inventory column, only valid for columns with 'stock' data type.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/stock_unit_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with stock data type) in specified inventory to retrieve stock unit items from |
ID | The ID of the stock unit item |
Create Stock Unit Item
curl -X POST \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/stock_unit_items \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 1"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 1"
}
}
}
This endpoint creates new stock unit item in selected inventory column, only valid for columns with 'stock' data type.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/stock_unit_items
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with stock data type) in specified inventory to retrieve stock unit items from |
Request body
{
"data": {
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 1"
}
}
}
Attribute | Mandatory | Description |
---|---|---|
data | yes | Text value of the stock unit item |
Update Stock Unit Item
curl -X PATCH \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/stock_unit_items/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 2"
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 2"
}
}
}
This endpoint updates existing stock unit item in selected inventory column. If submitted attributes are the same and no changes are made for the item, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/stock_unit_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with stock data type) in specified inventory to retrieve stock unit items from |
ID | The ID of the stock unit item |
Request body
{
"data": {
"id": "1",
"type": "inventory_stock_unit_items",
"attributes": {
"data": "Item 2"
}
}
}
Attribute | Mandatory | Description |
---|---|---|
data | yes | Text value of the stock unit item |
Delete Stock Unit Item
curl -X DELETE \
https://<server-name>/api/v1/teams/1/inventories/1/columns/1/stock_unit_items/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific stock unit item from inventory column.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/columns/<COLUMN_ID>/stock_unit_items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve column from |
COLUMN_ID | The ID of the column(with stock data type) in specified inventory to retrieve stock unit items from |
ID | The ID of the stock unit item |
Inventory Items
Get Items
curl "https://<server-name>/api/v1/teams/1/inventories/1/items"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "Item 1"
}
},
{
"id": "2",
"type": "inventory_items",
"attributes": {
"name": "Item 2"
},
"relationships": {
"inventory_cells": {
"data": [
{
"id": "1",
"type": "inventory_cells"
},
{
"id": "2",
"type": "inventory_cells"
}
]
}
}
}
]
"links": {
"self": "http://<server-name>/api/v1/teams/1/inventories/1/items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "http://<server-name>/api/v1/teams/1/inventories/1/items?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": "http://<server-name>/api/v1/teams/1/inventories/1/items?page%5Bnumber%5D=2&page%5Bsize%5D=10",
"last": "http://<server-name>/api/v1/teams/1/inventories/1/items?page%5Bnumber%5D=2&page%5Bsize%5D=10"
}
}
This endpoint retrieves active items from specific inventory. If ?include=inventory_cells
PATH parameter is provided,
the inventory cells of the items are also included; otherwise, they are ignored.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items(?include=<INCLUDE_CELLS>&filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve items from |
INCLUDE_CELLS | if set to inventory_cells , inventory cells of the items are also included |
FROM | If present will filter inventory items corresponding timestamp above or equals value |
TO | If present will filter inventory items corresponding timestamp below or equals value |
Get Item
curl "https://<server-name>/api/v1/teams/1/inventories/1/items/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "POY/3"
},
"relationships": {
"inventory_cells": {
"data": [
{
"id": "1",
"type": "inventory_cells"
},
{
"id": "2",
"type": "inventory_cells"
},
{
"id": "3",
"type": "inventory_cells"
}
}
]
}
}
},
"included": [
{
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 1,
"inventory_list_item_name": "Potato leaves"
},
"column_id": 1
}
},
{
"id": "2",
"type": "inventory_cells",
"attributes": {
"value_type": "text",
"value": {
"text": "#6C159E"
},
"column_id": 2
}
},
{
"id": "3",
"type": "inventory_cells",
"attributes": {
"value_type": "file",
"value": {
"file_id": 1,
"file_name": <file-name>,
"file_size": 38157,
"url": <file-url>
},
"column_id": 3
}
}
]
}
This endpoint retrieves specific item from the inventory. Cells are included by default.
HTTP Request
GET https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve item from |
ID | The ID of the item |
Create Item
curl -X POST \
https://<server-name>/api/v1/teams/1/inventories/1/items \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventory_items",
"attributes": {
"name": "POY/3"
}
},
"included": [
{
"type": "inventory_cells",
"attributes": {
"value": 1,
"column_id": 1
}
},
{
"type": "inventory_cells",
"attributes": {
"value": "#6C159E",
"column_id": 2
}
}
]
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "POY/3"
},
"relationships": {
"inventory_cells": {
"data": [
{
"id": "1",
"type": "inventory_cells"
},
{
"id": "2",
"type": "inventory_cells"
}
]
}
}
},
"included": [
{
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 1,
"inventory_list_item_name": "Potato leaves"
},
"column_id": 1
}
},
{
"id": "2",
"type": "inventory_cells",
"attributes": {
"value_type": "text",
"value": {
"text": "#6C159E"
},
"column_id": 2
}
}
]
}
This endpoint creates new item in the inventory, cells can be also added in 'included' section.
HTTP Request
POST https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory |
Request body
{
"data": {
"type": "inventory_items",
"attributes": {
"name": "POY/3"
}
},
"included": [
{
"type": "inventory_cells",
"attributes": {
"value": 1,
"column_id": 1
}
},
{
"type": "inventory_cells",
"attributes": {
"value": "#6C159E",
"column_id": 2
}
}
]
}
Inventory item attributes
Attribute | Mandatory | Description |
---|---|---|
name | yes | Name of the item |
Inventory cell attributes
Attribute | Mandatory | Description |
---|---|---|
value | yes | Content of the cell, depends on column type |
column_id | yes | ID of the column |
Update Item
curl -X PATCH \
https://<server-name>/api/v1/teams/1/inventories/1/items/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "POY/4"
}
},
"included": [
{
"id": "1",
"type": "inventory_cells",
"attributes": {
"value": 2,
"column_id": 1
}
},
{
"id": "2",
"type": "inventory_cells",
"attributes": {
"value": "#6C159D",
"column_id": 2
}
}
]
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "POY/4"
},
"relationships": {
"inventory_cells": {
"data": [
{
"id": "1",
"type": "inventory_cells"
},
{
"id": "2",
"type": "inventory_cells"
}
]
}
}
},
"included": [
{
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 2,
"inventory_list_item_name": "Tea leaves (1)"
},
"column_id": 1
}
},
{
"id": "2",
"type": "inventory_cells",
"attributes": {
"value_type": "text",
"value": {
"text": "#6C159D"
},
"column_id": 2
}
}
]
}
This endpoint updates existing item in selected inventory. Also existing cells can be updated by adding them to 'included' section. If submitted attributes are the same and no changes are made for the item, server returns empty body with response code 204.
HTTP Request
PATCH https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve item from |
ID | The ID of the item |
Request body
{
"data": {
"id": "1",
"type": "inventory_items",
"attributes": {
"name": "POY/4"
}
},
"included": [
{
"id": "1",
"type": "inventory_cells",
"attributes": {
"value": 2,
"column_id": 1
}
},
{
"id": "2",
"type": "inventory_cells",
"attributes": {
"value": "#6C159D",
"column_id": 2
}
}
]
}
Inventory item attributes
Attribute | Mandatory | Description |
---|---|---|
name | no | Name of the item |
Inventory cell attributes
Attribute | Mandatory | Description |
---|---|---|
value | yes | Content of the cell, depends on column type |
column_id | yes | ID of the column |
Delete Item
curl -X DELETE \
https://<server-name>/api/v1/teams/1/inventories/1/items/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific item from the inventory.
HTTP Request
DELETE https://<server-name>/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve item from |
ID | The ID of the item |
Inventory Item Child Relationships
Get Inventory Item Child Relationships
curl \
https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/child_relationships \
-H 'Authorization: Bearer your_token_here' \
-H 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_item_relationships",
"relationships": {
"parent": {
"data": {
"id": "1",
"type": "inventory_items"
}
},
"child": {
"data": {
"id": "2",
"type": "inventory_items"
}
},
"created_by": {
"data": {
"id": "1",
"type": "users"
}
},
"last_modified_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
{
"id": "2",
"type": "inventory_item_relationships",
"relationships": {
"parent": {
"data": {
"id": "2",
"type": "inventory_items"
}
},
"child": {
"data": {
"id": "1",
"type": "inventory_items"
}
},
"created_by": {
"data": {
"id": "1",
"type": "users"
}
},
"last_modified_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/inventories/1/items/1/child_relationships?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/inventories/1/items/1/child_relationships?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/inventories/1/items/1/child_relationships?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all child relationships from the specified inventory item.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/child_relationships
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
INVENTORY_ID | The ID of the inventory containing the item |
ITEM_ID | The ID of the item for which to delete the relationship |
Get Inventory Item Child Relationship
curl \
https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/child_relationships/<ID> \
-H 'Authorization: Bearer your_token_here' \
-H 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_item_relationships",
"relationships": {
"parent": {
"data": {
"id": "1",
"type": "inventory_items"
}
},
"child": {
"data": {
"id": "2",
"type": "inventory_items"
}
},
"created_by": {
"data": {
"id": "1",
"type": "users"
}
},
"last_modified_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
}
This endpoint retrieves a specific child relationship from the specified inventory item.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/child_relationships/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
INVENTORY_ID | The ID of the inventory containing the item |
ITEM_ID | The ID of the item for which to delete the relationship |
ID | The ID of the relationship to show |
Create Inventory Item Child Relationship
curl -X POST \
https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/child_relationships \
-H 'Authorization: Bearer your_token_here' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"type": "inventory_item_relationships",
"attributes": {
"child_id": <CHILD_ID>
}
}
}'
The above command returns JSON structured like this:
{
{
"data": {
"id": "49",
"type": "inventory_item_relationships",
"relationships": {
"parent": {
"data": {
"id": "1",
"type": "inventory_items"
}
},
"child": {
"data": {
"id": "2",
"type": "inventory_items"
}
},
"created_by": {
"data": {
"id": "1",
"type": "users"
}
},
"last_modified_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
}
}
This endpoint creates a new child relationship with selected inventory item, identified by CHILD_ID attribute.
HTTP Request
POST https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/child_relationships
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
INVENTORY_ID | The ID of the inventory containing the item |
ITEM_ID | The ID of the item for which to create the relationship |
Request Body
{
"data": {
"type": "inventory_item_relationships",
"attributes": {
"child_id": <CHILD_ID>
}
}
}
Responses
- 201 Created: Relationship successfully created.
- 400 Bad Request: Invalid or mutually exclusive parameters provided.
- 403 Forbidden: User does not have manage permission.
- 404 Not Found: Specified inventory item not found.
Delete Inventory Item Relationship
curl -X DELETE \
https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/child_relationships/<ID> \
-H 'Authorization: Bearer your_token_here' \
-H 'Content-Type: application/json'
The above command returns an empty body with status code 200
This endpoint deletes an existing relationship between inventory items.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/child_relationships/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
INVENTORY_ID | The ID of the inventory containing the item |
ITEM_ID | The ID of the item for which to delete the relationship |
ID | The ID of the relationship to delete |
Responses
- 200 OK: Relationship successfully deleted.
- 403 Forbidden: User does not have manage permission.
- 404 Not Found: Relationship with provided ID does not exist.
Note: Replace server_name, TEAM_ID, INVENTORY_ID, ITEM_ID, CHILD_ID, and ID with actual values.
Inventory Item Parent Relationships
Get Inventory Item Parent Relationships
curl \
https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/parent_relationships \
-H 'Authorization: Bearer your_token_here' \
-H 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_item_relationships",
"relationships": {
"parent": {
"data": {
"id": "1",
"type": "inventory_items"
}
},
"child": {
"data": {
"id": "2",
"type": "inventory_items"
}
},
"created_by": {
"data": {
"id": "1",
"type": "users"
}
},
"last_modified_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
},
{
"id": "2",
"type": "inventory_item_relationships",
"relationships": {
"parent": {
"data": {
"id": "2",
"type": "inventory_items"
}
},
"child": {
"data": {
"id": "1",
"type": "inventory_items"
}
},
"created_by": {
"data": {
"id": "1",
"type": "users"
}
},
"last_modified_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
],
"links": {
"self": "https://<server-name>/api/v1/teams/1/inventories/1/items/1/parent_relationships?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://<server-name>/api/v1/teams/1/inventories/1/items/1/parent_relationships?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://<server-name>/api/v1/teams/1/inventories/1/items/1/parent_relationships?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves all parent relationships from the specified inventory item.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/parent_relationships
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
INVENTORY_ID | The ID of the inventory containing the item |
ITEM_ID | The ID of the item for which to delete the relationship |
Get Inventory Item Parent Relationship
curl \
https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/parent_relationships/<ID> \
-H 'Authorization: Bearer your_token_here' \
-H 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_item_relationships",
"relationships": {
"parent": {
"data": {
"id": "1",
"type": "inventory_items"
}
},
"child": {
"data": {
"id": "2",
"type": "inventory_items"
}
},
"created_by": {
"data": {
"id": "1",
"type": "users"
}
},
"last_modified_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
}
This endpoint retrieves a specific parent relationship from the specified inventory item.
HTTP Request
GET https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/parent_relationships/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
INVENTORY_ID | The ID of the inventory containing the item |
ITEM_ID | The ID of the item for which to delete the relationship |
ID | The ID of the relationship to show |
Create Inventory Item Parent Relationship
curl -X POST \
https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/parent_relationships \
-H 'Authorization: Bearer your_token_here' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"type": "inventory_item_relationships",
"attributes": {
"parent_id": <PARENT_ID>
}
}
}'
The above command returns JSON structured like this:
{
{
"data": {
"id": "49",
"type": "inventory_item_relationships",
"relationships": {
"parent": {
"data": {
"id": "1",
"type": "inventory_items"
}
},
"child": {
"data": {
"id": "2",
"type": "inventory_items"
}
},
"created_by": {
"data": {
"id": "1",
"type": "users"
}
},
"last_modified_by": {
"data": {
"id": "1",
"type": "users"
}
}
}
}
}
}
This endpoint creates a new parent relationship with selected inventory item, identified by PARENT_ID attribute.
HTTP Request
POST https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/parent_relationships
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
INVENTORY_ID | The ID of the inventory containing the item |
ITEM_ID | The ID of the item for which to create the relationship |
Request Body
{
"data": {
"type": "inventory_item_relationships",
"attributes": {
"parent_id": <PARENT_ID>
}
}
}
Responses
- 201 Created: Relationship successfully created.
- 400 Bad Request: Invalid or mutually exclusive parameters provided.
- 403 Forbidden: User does not have manage permission.
- 404 Not Found: Specified inventory item not found.
Delete Inventory Item Relationship
curl -X DELETE \
https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/parent_relationships/<ID> \
-H 'Authorization: Bearer your_token_here' \
-H 'Content-Type: application/json'
The above command returns an empty body with status code 200
This endpoint deletes an existing relationship between inventory items.
HTTP Request
DELETE https://<server-name>/api/v2/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/parent_relationships/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team |
INVENTORY_ID | The ID of the inventory containing the item |
ITEM_ID | The ID of the item for which to delete the relationship |
ID | The ID of the relationship to delete |
Responses
- 200 OK: Relationship successfully deleted.
- 403 Forbidden: User does not have manage permission.
- 404 Not Found: Relationship with provided ID does not exist.
Note: Replace server_name, TEAM_ID, INVENTORY_ID, ITEM_ID, PARENT_ID, and ID with actual values.
Inventory Cells
Get Cells
curl "https://server-name/api/v1/teams/1/inventories/1/items/1/cells"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 1,
"inventory_list_item_name": "Potato bug (2)"
},
"column_id": 1
}
},
{
"id": "2",
"type": "inventory_cells",
"attributes": {
"value_type": "text",
"value": {
"text": "new text"
},
"column_id": 2
}
}
],
"links": {
"self": "https://server-name/api/v1/teams/1/inventories/1/items/1/cells?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"first": "https://server-name/api/v1/teams/1/inventories/1/items/1/cells?page%5Bnumber%5D=1&page%5Bsize%5D=10",
"prev": null,
"next": null,
"last": "https://server-name/api/v1/teams/1/inventories/1/items/1/cells?page%5Bnumber%5D=1&page%5Bsize%5D=10"
}
}
This endpoint retrieves cells from specific inventory. Cells can have such types: text, list, file.
HTTP Request
GET https://server-name/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/cells(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory |
ITEM_ID | The ID of the inventory item |
FROM | If present will filter inventory cells corresponding timestamp above or equals value |
TO | If present will filter inventory cells corresponding timestamp below or equals value |
Get Cell
curl "https://server-name/api/v1/teams/1/inventories/1/items/1/cells/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "list",
"value": {
"inventory_list_item_id": 1,
"inventory_list_item_name": "Potato bug (2)"
},
"column_id": 1
}
}
}
This endpoint retrieves specific cell from the inventory item.
HTTP Request
GET https://server-name/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/cells/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory |
ITEM_ID | The ID of the inventory item |
ID | The ID of the cell |
Create Cell
curl -X POST \
https://server-name/api/v1/teams/1/inventories/1/items/1/cells \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "inventory_cells",
"attributes": {
"value": "new text 1",
"column_id": 1
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "text",
"value": {
"text": "new text 1"
},
"column_id": 1
}
}
}
This endpoint creates new cell in the inventory item.
HTTP Request
POST https://server-name/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/cells
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory |
ITEM_ID | The ID of the inventory item |
Request body
{
"data": {
"type": "inventory_cells",
"attributes": {
"value": "new text 1",
"column_id": 1
}
}
}
Inventory cell attributes
Attribute | Mandatory | Description |
---|---|---|
value | yes | value of the cell, type depends on the column. |
column_id | yes | ID of the column |
Inventory cell value attribute format
Column data type | Format of the value |
---|---|
text | string containing textual value |
number | string containing number value |
list | id of the inventory list item from the selected column |
checklist | an array of ids of the inventory checklist items from the selected column |
status | id of the status item from the selected column |
file | hash containing 2 attributes: file_name and file_data. File data is base64 encoded file content in such format: "data:text/plain;base64,dGVzdAo=", mime type should match file content. |
date | string containing date in the format "DD.MM.YYYY". |
time | string containing time in the format "HH:mm". |
date_time | string containing date and time in the format "DD.MM.YYYY HH:mm". |
date_range | hash containing 2 attributes: start_time and end_time. Start_time and end_time are strings containing date in the format "DD.MM.YYYY". |
time_range | hash containing 2 attributes: start_time and end_time. Start_time and end_time are strings containing time in the format "HH:mm". |
date_time_range | hash containing 2 attributes: start_time and end_time. Start_time and end_time are strings containing date and time in the format "DD.MM.YYY HH:mm". |
stock | hash containing 3 attributes: amount, unit_item_id and low_stock_threshold. Unit_item_id present stock unit id. |
Update Cell
curl -X PATCH \
https://server-name/api/v1/teams/1/inventories/1/items/1/cells/1 \
-H 'Authorization: Bearer qwerty123456...' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": 1,
"type": "inventory_cells",
"attributes": {
"value": "new text 2",
"column_id": 1
}
}
}'
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "inventory_cells",
"attributes": {
"value_type": "text",
"value": {
"text": "new text 2"
},
"column_id": 1
}
}
}
This endpoint updates existing cell in selected inventory item. If submitted attributes are the same and no changes are made for the cell, server returns empty body with response code 204.
HTTP Request
PATCH https://server-name/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/cells/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory |
ITEM_ID | The ID of the inventory item |
ID | The ID of the cell |
Request body
{
"data": {
"id": 1,
"type": "inventory_cells",
"attributes": {
"value": "new text 2",
"column_id": 1
}
}
}
Inventory cell attributes
Attribute | Mandatory | Description |
---|---|---|
value | yes | value of the cell, type depends on the column. |
column_id | yes | ID of the column |
Inventory cell value attribute format
Column data type | Format of the value |
---|---|
text | string containing textual value |
number | string containing number value |
list | id of the inventory list item from the selected column |
checklist | an array of ids of the inventory checklist items from the selected column |
status | id of the status item from the selected column |
file | hash containing 2 attributes: file_name and file_data. File data is base64 encoded file content in such format: "data:text/plain;base64,dGVzdAo=", mime type should match file content. |
date | string containing date in the format "DD.MM.YYYY". |
time | string containing time in the format "HH:mm". |
date_time | string containing date and time in the format "DD.MM.YYYY HH:mm". |
date_range | hash containing 2 attributes: start_time and end_time. Start_time and end_time are strings containing date in the format "DD.MM.YYYY". |
time_range | hash containing 2 attributes: start_time and end_time. Start_time and end_time are strings containing time in the format "HH:mm". |
date_time_range | hash containing 2 attributes: start_time and end_time. Start_time and end_time are strings containing date and time in the format "DD.MM.YYY HH:mm". |
stock | hash containing 3 attributes: amount, unit_item_id and low_stock_threshold. Unit_item_id present stock unit id. |
Delete Cell
curl -X DELETE \
https://server-name/api/v1/teams/1/inventories/1/items/1/cells/1 \
-H "Authorization: Bearer qwerty123456..."
The above command returns empty body with status code 200
This endpoint deletes specific cell from the inventory item.
HTTP Request
DELETE https://server-name/api/v1/teams/<TEAM_ID>/inventories/<INVENTORY_ID>/items/<ITEM_ID>/cells/<ID>
URL Parameters
Parameter | Description |
---|---|
TEAM_ID | The ID of the team to retrieve inventory from |
INVENTORY_ID | The ID of the inventory to retrieve item from |
ITEM_ID | The ID of the item |
ID | The ID of the cell |
Workflows
Get Workflows
curl "http://<server-name>/api/v1/workflows"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "workflows",
"attributes": {
"name": "Default workflow",
"description": "Default SciNote workflow",
"visibility": "global",
"team_id": null
}
}
]
}
This endpoint retrieves all wrokflows from instance.
HTTP Request
GET https://<server-name>/api/v1/workflows(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
Parameter | Description |
---|---|
FROM | If present will filter experiments corresponding timestamp above or equals value |
TO | If present will filter experiments corresponding timestamp below or equals value |
Get Workflow
This endpoint retrieves a specific workflow.
curl "http://<server-name>/api/v1/workflows/1"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": {
"id": "1",
"type": "workflows",
"attributes": {
"name": "Default workflow",
"description": "Default SciNote workflow",
"visibility": "global",
"team_id": null
}
}
}
HTTP Request
GET https://<server-name>/api/v1/workflows/<WORKFLOW_ID>
URL Parameters
Parameter | Description |
---|---|
WORKFLOW_ID | The ID of the workflow to retrieve |
Workflow statuses
Get Workflow statuses
curl "http://<server-name>/api/v1/workflows/1/statuses"
-H "Authorization: Bearer qwerty123456..."
The above command returns JSON structured like this:
{
"data": [
{
"id": "1",
"type": "workflow_statuses",
"attributes": {
"name": "Backlog",
"description": null,
"color": "#42f557",
"previous_status_id": null
}
},
{
"id": "2",
"type": "workflow_statuses",
"attributes": {
"name": "In progress",
"description": null,
"color": "#b9f542",
"previous_status_id": 1
}
},
{
"id": "3",
"type": "workflow_statuses",
"attributes": {
"name": "Completed",
"description": null,
"color": "#f5e342",
"previous_status_id": 2
}
},
{
"id": "4",
"type": "workflow_statuses",
"attributes": {
"name": "In review",
"description": null,
"color": "#f59c42",
"previous_status_id": 3
}
},
{
"id": "5",
"type": "workflow_statuses",
"attributes": {
"name": "Done",
"description": null,
"color": "#f59c42",
"previous_status_id": 4
}
}
]
}
This endpoint retrieves wrokflow statuses from selected workflow.
HTTP Request
GET https://<server-name>/api/v1/workflows/WORKFLOW_ID/statuses(?filter[created_at][from]=<FROM>&filter[created_at][to]=<TO>&filter[updated_at][from]=<FROM>&filter[updated_at][to]=<TO>)
URL Parameters
Parameter | Description |
---|---|
WORKFLOW_ID | The ID of the workflow |
FROM | If present will filter experiments corresponding timestamp above or equals value |
TO | If present will filter experiments corresponding timestamp below or equals value |
Webhooks
NOTE
Webhooks are currently in the testing phase. If you would like to enable them, add ENABLE_WEBHOOKS=true to your environment variables, or, if using our cloud setup, ask SciNote support to enable it for you.
Setup
For integration purposes, SciNote offers setting up webhooks, which get triggered by certain activities. The first step is setting up an activity filter available at the global activities view (https://[YOUR-DOMAN].scinote.net/global_activities), where you need to save a filter by clicking the Save filter button in the top right corner.
Next, you will need to set up a webhook, by going to the Webhooks section in Settings (https://[YOUR-DOMAN].scinote.net/users/settings/webhooks). For each of the saved activity filters you can add multiple webhooks with the following settings:
- method (GET/POST/PATCH)
- URL
- Secret key (optional secret key for verifying the request on your end)
After setting up the webhook, it will be triggered for any activity matching the saved activity filter.
Webhook request format
Depending on the type of activity, you will receive a request with a JSON payload of the following format (cURL, example for rename_project activity):
curl -X 'POST' 'https://example.com/webhook-handler' -H 'content-length: 368' -H 'host: example.com' -H 'connection: close' -H 'webhook-secret-key: s3cr3t' -H 'content-type: application/json' -d $'{"breadcrumbs":{"team":"My projects","project":"Some project 1"},"message_items":{"user":{"id":9,"type":"User","value":"Example User","value_for":"full_name"},"project":{"id":137,"type":"Project","value":"Some project 1","value_for":"name"}},"type":"rename_project","created_at":"2022-01-03T14:51:21.492+01:00","subject":{"type":"Project","id":137}}'
Authentication
The optional Secret key is sent via the webhook-secret-key header, for purposes of authentication of the request on your end.
Testing webhooks
During development you might want to test the requests and get the various webhook payloads. We suggest using an HTTP request capture tool, such as mockbin for such purposes.
Example payloads
To the right are example payloads for different types of activities:
// Change user role on experiment
{
"message_items": {
"experiment": {
"type": "Experiment",
"value": "Experiment-6",
"id": 6,
"value_for": "name"
},
"user_target": {
"type": "User",
"value": "admin",
"id": 18,
"value_for": "name"
},
"role": "Technician",
"user": {
"id": 16,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"experiment": "Experiment-6",
"project": "My project-6",
"team": "My team-6"
},
"type": "change_user_role_on_experiment",
"created_at": "2021-12-29 11:23:14 +0000",
"subject": {
"type": "Experiment",
"id": 6
}
}
// Change user role on my module
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-6",
"id": 6,
"value_for": "name"
},
"user_target": {
"type": "User",
"value": "admin",
"id": 39,
"value_for": "name"
},
"role": "Technician",
"user": {
"id": 37,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-6",
"experiment": "Experiment-13",
"project": "My project-13",
"team": "My team-13"
},
"type": "change_user_role_on_my_module",
"created_at": "2021-12-29 11:23:17 +0000",
"subject": {
"type": "MyModule",
"id": 6
}
}
// Edit image on step
{
"message_items": {
"step": {
"type": "Step",
"value": "Maranda Ankunding",
"id": 3,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 3,
"value_for": "position_plus_one"
},
"asset_name": {
"type": "Asset",
"value": "test.jpg",
"id": 7,
"value_for": "file_name"
},
"action": "editing started",
"my_module": {
"type": "MyModule",
"value": "Task-11",
"id": 11,
"value_for": "name"
},
"user": {
"id": 68,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-11",
"experiment": "Experiment-18",
"project": "My project-36",
"team": "My team-36"
},
"type": "edit_image_on_step",
"created_at": "2021-12-29 11:23:22 +0000",
"subject": {
"type": "Protocol",
"id": 12
}
}
// Archive module
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-13",
"id": 13,
"value_for": "name"
},
"user": {
"id": 70,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-13",
"experiment": "Experiment-19",
"project": "My project-37",
"team": "My team-37"
},
"type": "archive_module",
"created_at": "2021-12-29 11:23:23 +0000",
"subject": {
"type": "MyModule",
"id": 13
}
}
// Move task
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-18",
"id": 18,
"value_for": "name"
},
"experiment_original": {
"type": "Experiment",
"value": "Experiment-19",
"id": 19,
"value_for": "name"
},
"experiment_new": {
"type": "Experiment",
"value": "Experiment-20",
"id": 20,
"value_for": "name"
},
"user": {
"id": 70,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-18",
"experiment": "Experiment-20",
"project": "My project-37",
"team": "My team-37"
},
"type": "move_task",
"created_at": "2021-12-29 11:23:23 +0000",
"subject": {
"type": "MyModule",
"id": 18
}
}
// Designate user to my module
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "task_new1",
"id": 20,
"value_for": "name"
},
"user_target": {
"type": "User",
"value": "admin",
"id": 70,
"value_for": "name"
},
"user": {
"id": 70,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "task_new1",
"experiment": "Experiment-19",
"project": "My project-37",
"team": "My team-37"
},
"type": "designate_user_to_my_module",
"created_at": "2021-12-29 11:23:23 +0000",
"subject": {
"type": "MyModule",
"id": 20
}
}
// Rename task
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "RenamedTask1",
"id": 12,
"value_for": "name"
},
"user": {
"id": 70,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "RenamedTask1",
"experiment": "Experiment-19",
"project": "My project-37",
"team": "My team-37"
},
"type": "rename_task",
"created_at": "2021-12-29 11:23:24 +0000",
"subject": {
"type": "MyModule",
"id": 12
}
}
// Create module
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "task_new1",
"id": 20,
"value_for": "name"
},
"user": {
"id": 70,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "task_new1",
"experiment": "Experiment-19",
"project": "My project-37",
"team": "My team-37"
},
"type": "create_module",
"created_at": "2021-12-29 11:23:24 +0000",
"subject": {
"type": "MyModule",
"id": 20
}
}
// Clone module
{
"message_items": {
"my_module_original": {
"type": "MyModule",
"value": "Task-16",
"id": 16,
"value_for": "name"
},
"my_module_new": {
"type": "MyModule",
"value": "clone_1",
"id": 24,
"value_for": "name"
},
"user": {
"id": 70,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "clone_1",
"experiment": "Experiment-19",
"project": "My project-37",
"team": "My team-37"
},
"type": "clone_module",
"created_at": "2021-12-29 11:23:24 +0000",
"subject": {
"type": "MyModule",
"id": 24
}
}
// Create experiment
{
"message_items": {
"experiment": {
"type": "Experiment",
"value": "test experiment A1",
"id": 24,
"value_for": "name"
},
"user": {
"id": 77,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"experiment": "test experiment A1",
"project": "My project-39",
"team": "My team-39"
},
"type": "create_experiment",
"created_at": "2021-12-29 11:23:25 +0000",
"subject": {
"type": "Experiment",
"id": 24
}
}
// Edit experiment
{
"message_items": {
"experiment": {
"type": "Experiment",
"value": "Experiment-24",
"id": 26,
"value_for": "name"
},
"user": {
"id": 81,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"experiment": "Experiment-24",
"project": "My project-41",
"team": "My team-41"
},
"type": "edit_experiment",
"created_at": "2021-12-29 11:23:26 +0000",
"subject": {
"type": "Experiment",
"id": 26
}
}
// Restore experiment
{
"message_items": {
"experiment": {
"type": "Experiment",
"value": "Experiment-28",
"id": 30,
"value_for": "name"
},
"user": {
"id": 87,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"experiment": "Experiment-28",
"project": "My project-43",
"team": "My team-43"
},
"type": "restore_experiment",
"created_at": "2021-12-29 11:23:27 +0000",
"subject": {
"type": "Experiment",
"id": 30
}
}
// Archive experiment
{
"message_items": {
"experiment": {
"type": "Experiment",
"value": "Experiment-30",
"id": 32,
"value_for": "name"
},
"user": {
"id": 93,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"experiment": "Experiment-30",
"project": "My project-45",
"team": "My team-45"
},
"type": "archive_experiment",
"created_at": "2021-12-29 11:23:27 +0000",
"subject": {
"type": "Experiment",
"id": 32
}
}
// Invite user to team
{
"message_items": {
"team": {
"type": "Team",
"value": "My team-66",
"id": 66,
"value_for": "name"
},
"user_invited": {
"type": "User",
"value": "admin",
"id": 122,
"value_for": "name"
},
"role": "Guest",
"user": {
"id": 120,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"team": "My team-66"
},
"type": "invite_user_to_team",
"created_at": "2021-12-29 11:23:30 +0000",
"subject": {
"type": "Team",
"id": 66
}
}
// Add task tag
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-47",
"id": 53,
"value_for": "name"
},
"tag": {
"type": "Tag",
"value": "My tag-2",
"id": 2,
"value_for": "name"
},
"user": {
"id": 158,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-47",
"experiment": "Experiment-50",
"project": "My project-65",
"team": "My team-84"
},
"type": "add_task_tag",
"created_at": "2021-12-29 11:23:35 +0000",
"subject": {
"type": "MyModule",
"id": 53
}
}
// Remove task tag
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-49",
"id": 55,
"value_for": "name"
},
"tag": {
"type": "Tag",
"value": "My tag-4",
"id": 4,
"value_for": "name"
},
"user": {
"id": 163,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-49",
"experiment": "Experiment-52",
"project": "My project-68",
"team": "My team-87"
},
"type": "remove_task_tag",
"created_at": "2021-12-29 11:23:35 +0000",
"subject": {
"type": "MyModule",
"id": 55
}
}
// Change module description
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-51",
"id": 57,
"value_for": "name"
},
"user": {
"id": 168,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-51",
"experiment": "Experiment-54",
"project": "My project-71",
"team": "My team-90"
},
"type": "change_module_description",
"created_at": "2021-12-29 11:23:36 +0000",
"subject": {
"type": "MyModule",
"id": 57
}
}
// Set task due date
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-53",
"id": 59,
"value_for": "name"
},
"my_module_duedate": {
"type": "Time",
"value": 1553212740
},
"user": {
"id": 172,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-53",
"experiment": "Experiment-56",
"project": "My project-73",
"team": "My team-92"
},
"type": "set_task_due_date",
"created_at": "2021-12-29 11:23:37 +0000",
"subject": {
"type": "MyModule",
"id": 59
}
}
// Remove task due date
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-55",
"id": 61,
"value_for": "name"
},
"my_module_duedate": {
"type": "Time",
"value": 1641330171
},
"user": {
"id": 176,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-55",
"experiment": "Experiment-58",
"project": "My project-75",
"team": "My team-94"
},
"type": "remove_task_due_date",
"created_at": "2021-12-29 11:23:37 +0000",
"subject": {
"type": "MyModule",
"id": 61
}
}
// Change task due date
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-57",
"id": 63,
"value_for": "name"
},
"my_module_duedate": {
"type": "Time",
"value": 1550793540
},
"user": {
"id": 180,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-57",
"experiment": "Experiment-60",
"project": "My project-77",
"team": "My team-96"
},
"type": "change_task_due_date",
"created_at": "2021-12-29 11:23:38 +0000",
"subject": {
"type": "MyModule",
"id": 63
}
}
// Change status on task flow
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-58",
"id": 64,
"value_for": "name"
},
"my_module_status_old": {
"type": "MyModuleStatus",
"value": "Not started",
"id": 1,
"value_for": "name"
},
"my_module_status_new": {
"type": "MyModuleStatus",
"value": "In progress",
"id": 2,
"value_for": "name"
},
"user": {
"id": 182,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-58",
"experiment": "Experiment-61",
"project": "My project-78",
"team": "My team-97"
},
"type": "change_status_on_task_flow",
"created_at": "2021-12-29 11:23:38 +0000",
"subject": {
"type": "MyModule",
"id": 64
}
}
// Restore module
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-67",
"id": 73,
"value_for": "name"
},
"user": {
"id": 194,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-67",
"experiment": "Experiment-67",
"project": "My project-85",
"team": "My team-104"
},
"type": "restore_module",
"created_at": "2021-12-29 11:23:41 +0000",
"subject": {
"type": "MyModule",
"id": 73
}
}
// Add comment to project
{
"message_items": {
"project": {
"type": "Project",
"value": "My project-105",
"id": 105,
"value_for": "name"
},
"user": {
"id": 246,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "My project-105",
"team": "My team-124"
},
"type": "add_comment_to_project",
"created_at": "2021-12-29 11:23:49 +0000",
"subject": {
"type": "Project",
"id": 105
}
}
// Edit project comment
{
"message_items": {
"project": {
"type": "Project",
"value": "My project-107",
"id": 107,
"value_for": "name"
},
"user": {
"id": 250,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "My project-107",
"team": "My team-126"
},
"type": "edit_project_comment",
"created_at": "2021-12-29 11:23:49 +0000",
"subject": {
"type": "Project",
"id": 107
}
}
// Delete project comment
{
"message_items": {
"project": {
"type": "Project",
"value": "My project-109",
"id": 109,
"value_for": "name"
},
"user": {
"id": 254,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "My project-109",
"team": "My team-128"
},
"type": "delete_project_comment",
"created_at": "2021-12-29 11:23:50 +0000",
"subject": {
"type": "Project",
"id": 109
}
}
// Move project
{
"message_items": {
"project": {
"type": "Project",
"value": "test project A",
"id": 111,
"value_for": "name"
},
"project_folder_to": {
"type": "ProjectFolder",
"value": "test folder A",
"id": 1,
"value_for": "name"
},
"project_folder_from": {
"type": "ProjectFolder",
"value": null,
"value_for": "name",
"id": null
},
"user": {
"id": 256,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "test project A",
"team": "My team-129"
},
"type": "move_project",
"created_at": "2021-12-29 11:23:50 +0000",
"subject": {
"type": "Project",
"id": 111
}
}
// Move project folder
{
"message_items": {
"project_folder": {
"type": "ProjectFolder",
"value": "test folder B",
"id": 2,
"value_for": "name"
},
"project_folder_to": {
"type": "ProjectFolder",
"value": "test folder A",
"id": 1,
"value_for": "name"
},
"project_folder_from": {
"type": "ProjectFolder",
"value": null,
"value_for": "name",
"id": null
},
"user": {
"id": 256,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project_folder": "test folder B",
"team": "My team-129"
},
"type": "move_project_folder",
"created_at": "2021-12-29 11:23:50 +0000",
"subject": {
"type": "ProjectFolder",
"id": 2
}
}
// Create project folder
{
"message_items": {
"project_folder": {
"type": "ProjectFolder",
"value": "My Proejct Folder",
"id": 8,
"value_for": "name"
},
"user": {
"id": 262,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project_folder": "My Proejct Folder",
"team": "My team-132"
},
"type": "create_project_folder",
"created_at": "2021-12-29 11:23:51 +0000",
"subject": {
"type": "ProjectFolder",
"id": 8
}
}
// Rename project folder
{
"message_items": {
"project_folder": {
"type": "ProjectFolder",
"value": "new name",
"id": 11,
"value_for": "name"
},
"user": {
"id": 268,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project_folder": "new name",
"team": "My team-135"
},
"type": "rename_project_folder",
"created_at": "2021-12-29 11:23:52 +0000",
"subject": {
"type": "ProjectFolder",
"id": 11
}
}
// Create project
{
"message_items": {
"project": {
"type": "Project",
"value": "test project A1",
"id": 131,
"value_for": "name"
},
"user": {
"id": 272,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "test project A1",
"team": "My team-137"
},
"type": "create_project",
"created_at": "2021-12-29 11:23:53 +0000",
"subject": {
"type": "Project",
"id": 131
}
}
// Archive project
{
"message_items": {
"project": {
"type": "Project",
"value": "My project-158",
"id": 167,
"value_for": "name"
},
"user": {
"id": 290,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "My project-158",
"team": "My team-146"
},
"type": "archive_project",
"created_at": "2021-12-29 11:23:55 +0000",
"subject": {
"type": "Project",
"id": 167
}
}
// Create protocol in repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "protocol_name",
"id": 132,
"value_for": "name"
},
"user": {
"id": 300,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "protocol_name",
"team": "My team-151"
},
"type": "create_protocol_in_repository",
"created_at": "2021-12-29 11:23:57 +0000",
"subject": {
"type": "Protocol",
"id": 132
}
}
// Export protocol in repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "Rev. Waldo Crona",
"id": 137,
"value_for": "name"
},
"user": {
"id": 306,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Rev. Waldo Crona",
"team": "My team-153"
},
"type": "export_protocol_in_repository",
"created_at": "2021-12-29 11:23:58 +0000",
"subject": {
"type": "Protocol",
"id": 137
}
}
// Export protocol from task
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-122",
"id": 128,
"value_for": "name"
},
"user": {
"id": 313,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-122",
"experiment": "Experiment-109",
"project": "My project-178",
"team": "My team-155"
},
"type": "export_protocol_from_task",
"created_at": "2021-12-29 11:23:58 +0000",
"subject": {
"type": "MyModule",
"id": 128
}
}
// Import protocol in repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "my_test_protocol",
"id": 146,
"value_for": "name"
},
"user": {
"id": 318,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "my_test_protocol",
"team": "My team-157"
},
"type": "import_protocol_in_repository",
"created_at": "2021-12-29 11:23:59 +0000",
"subject": {
"type": "Protocol",
"id": 146
}
}
// Edit description in protocol repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "Kathyrn Bayer",
"id": 150,
"value_for": "name"
},
"user": {
"id": 322,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Kathyrn Bayer",
"team": "My team-159"
},
"type": "edit_description_in_protocol_repository",
"created_at": "2021-12-29 11:23:59 +0000",
"subject": {
"type": "Protocol",
"id": 150
}
}
// Edit keywords in protocol repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "Ossie Bode",
"id": 154,
"value_for": "name"
},
"user": {
"id": 326,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Ossie Bode",
"team": "My team-161"
},
"type": "edit_keywords_in_protocol_repository",
"created_at": "2021-12-29 11:24:00 +0000",
"subject": {
"type": "Protocol",
"id": 154
}
}
// Update protocol in task from repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "test protocol",
"id": 160,
"value_for": "name"
},
"my_module": {
"type": "MyModule",
"value": "Task-130",
"id": 136,
"value_for": "name"
},
"protocol_repository": {
"type": "Protocol",
"value": "test protocol",
"id": 159,
"value_for": "name"
},
"user": {
"id": 330,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "test protocol",
"my_module": "Task-130",
"experiment": "Experiment-117",
"project": "My project-186",
"team": "My team-163"
},
"type": "update_protocol_in_task_from_repository",
"created_at": "2021-12-29 11:24:01 +0000",
"subject": {
"type": "Protocol",
"id": 160
}
}
// Update protocol in repository from task
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "test protocol",
"id": 166,
"value_for": "name"
},
"my_module": {
"type": "MyModule",
"value": "Task-132",
"id": 138,
"value_for": "name"
},
"protocol_repository": {
"type": "Protocol",
"value": "test protocol",
"id": 165,
"value_for": "name"
},
"user": {
"id": 334,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "test protocol",
"my_module": "Task-132",
"experiment": "Experiment-119",
"project": "My project-188",
"team": "My team-165"
},
"type": "update_protocol_in_repository_from_task",
"created_at": "2021-12-29 11:24:01 +0000",
"subject": {
"type": "Protocol",
"id": 166
}
}
// Load protocol to task from repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "Hershel Heaney",
"id": 172,
"value_for": "name"
},
"my_module": {
"type": "MyModule",
"value": "Task-134",
"id": 140,
"value_for": "name"
},
"protocol_repository": {
"type": "Protocol",
"value": "Carson Streich",
"id": 171,
"value_for": "name"
},
"user": {
"id": 338,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Hershel Heaney",
"my_module": "Task-134",
"experiment": "Experiment-121",
"project": "My project-190",
"team": "My team-167"
},
"type": "load_protocol_to_task_from_repository",
"created_at": "2021-12-29 11:24:02 +0000",
"subject": {
"type": "Protocol",
"id": 172
}
}
// Load protocol to task from file
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "Hugo Robel",
"id": 176,
"value_for": "name"
},
"my_module": {
"type": "MyModule",
"value": "Task-136",
"id": 142,
"value_for": "name"
},
"user": {
"id": 342,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Hugo Robel",
"my_module": "Task-136",
"experiment": "Experiment-123",
"project": "My project-192",
"team": "My team-169"
},
"type": "load_protocol_to_task_from_file",
"created_at": "2021-12-29 11:24:03 +0000",
"subject": {
"type": "Protocol",
"id": 176
}
}
// Create report
{
"message_items": {
"report": {
"type": "Report",
"value": "test report created",
"id": 2,
"value_for": "name"
},
"user": {
"id": 346,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"report": "test report created",
"team": "My team-171"
},
"type": "create_report",
"created_at": "2021-12-29 11:24:04 +0000",
"subject": {
"type": "Report",
"id": 2
}
}
// Generate pdf report
{
"message_items": {
"report": {
"type": "Report",
"value": "test report created",
"id": 2,
"value_for": "name"
},
"user": {
"id": 346,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"report": "test report created",
"team": "My team-171"
},
"type": "generate_pdf_report",
"created_at": "2021-12-29 11:24:04 +0000",
"subject": {
"type": "Report",
"id": 2
}
}
// Edit report
{
"message_items": {
"report": {
"type": "Report",
"value": "test report update",
"id": 4,
"value_for": "name"
},
"user": {
"id": 350,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"report": "test report update",
"team": "My team-173"
},
"type": "edit_report",
"created_at": "2021-12-29 11:24:06 +0000",
"subject": {
"type": "Report",
"id": 4
}
}
// Delete report
{
"message_items": {
"report": {
"type": "Report",
"value": "test repot A1",
"id": 6,
"value_for": "name"
},
"user": {
"id": 354,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"report": "test repot A1",
"team": "My team-175"
},
"type": "delete_report",
"created_at": "2021-12-29 11:24:08 +0000",
"subject": {
"type": "Report",
"id": 6
}
}
// Create inventory
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My Repository",
"id": 27,
"value_for": "name"
},
"user": {
"id": 359,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My Repository",
"team": "My team-178"
},
"type": "create_inventory",
"created_at": "2021-12-29 11:24:09 +0000",
"subject": {
"type": "RepositoryBase",
"id": 27
}
}
// Delete inventory
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-27",
"id": 29,
"value_for": "name"
},
"user": {
"id": 362,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-27",
"team": "My team-180"
},
"type": "delete_inventory",
"created_at": "2021-12-29 11:24:09 +0000",
"subject": {
"type": "RepositoryBase",
"id": 29
}
}
// Rename inventory
{
"message_items": {
"repository": {
"type": "Repository",
"value": "new_name",
"id": 31,
"value_for": "name"
},
"user": {
"id": 366,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "new_name",
"team": "My team-182"
},
"type": "rename_inventory",
"created_at": "2021-12-29 11:24:10 +0000",
"subject": {
"type": "RepositoryBase",
"id": 31
}
}
// Export inventory items
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-31",
"id": 33,
"value_for": "name"
},
"user": {
"id": 372,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-31",
"team": "My team-184"
},
"type": "export_inventory_items",
"created_at": "2021-12-29 11:24:11 +0000",
"subject": {
"type": "RepositoryBase",
"id": 33
}
}
// Import inventory items
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-33",
"id": 35,
"value_for": "name"
},
"num_of_items": "",
"user": {
"id": 378,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-33",
"team": "My team-186"
},
"type": "import_inventory_items",
"created_at": "2021-12-29 11:24:11 +0000",
"subject": {
"type": "RepositoryBase",
"id": 35
}
}
// Copy inventory item
{
"message_items": {
"repository_row_new": {
"type": "RepositoryRow",
"value": "My row-41 (1)",
"id": 483,
"value_for": "name"
},
"repository_row_original": {
"type": "RepositoryRow",
"value": "My row-41",
"id": 481,
"value_for": "name"
},
"user": {
"id": 493,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-98",
"team": "My team-251"
},
"type": "copy_inventory_item",
"created_at": "2021-12-29 11:24:26 +0000",
"subject": {
"type": "RepositoryBase",
"id": 100
}
}
// Create item inventory
{
"message_items": {
"repository_row": {
"type": "RepositoryRow",
"value": "row_name",
"id": 489,
"value_for": "name"
},
"repository": {
"type": "Repository",
"value": "My repository-102",
"id": 104,
"value_for": "name"
},
"user": {
"id": 497,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-102",
"team": "My team-255"
},
"type": "create_item_inventory",
"created_at": "2021-12-29 11:24:26 +0000",
"subject": {
"type": "RepositoryBase",
"id": 104
}
}
// Edit item inventory
{
"message_items": {
"repository_row": {
"type": "RepositoryRow",
"value": "row_name",
"id": 492,
"value_for": "name"
},
"repository": {
"type": "Repository",
"value": "My repository-106",
"id": 108,
"value_for": "name"
},
"user": {
"id": 501,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-106",
"team": "My team-259"
},
"type": "edit_item_inventory",
"created_at": "2021-12-29 11:24:27 +0000",
"subject": {
"type": "RepositoryBase",
"id": 108
}
}
// Delete item inventory
{
"message_items": {
"repository_row": {
"type": "RepositoryRow",
"value": "My row-53",
"id": 496,
"value_for": "name"
},
"repository": {
"type": "Repository",
"value": "My repository-110",
"id": 112,
"value_for": "name"
},
"user": {
"id": 505,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-110",
"team": "My team-263"
},
"type": "delete_item_inventory",
"created_at": "2021-12-29 11:24:27 +0000",
"subject": {
"type": "RepositoryBase",
"id": 112
}
}
// Archive inventory item
{
"message_items": {
"repository_row": {
"type": "RepositoryRow",
"value": "My row-55",
"id": 498,
"value_for": "name"
},
"user": {
"id": 507,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-112",
"team": "My team-265"
},
"type": "archive_inventory_item",
"created_at": "2021-12-29 11:24:27 +0000",
"subject": {
"type": "RepositoryBase",
"id": 114
}
}
// Restore inventory item
{
"message_items": {
"repository_row": {
"type": "RepositoryRow",
"value": "My row-67",
"id": 510,
"value_for": "name"
},
"user": {
"id": 522,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-124",
"team": "My team-280"
},
"type": "restore_inventory_item",
"created_at": "2021-12-29 11:24:29 +0000",
"subject": {
"type": "RepositoryBase",
"id": 126
}
}
// Edit result
{
"message_items": {
"result": {
"type": "Result",
"value": "Prof. Rocco Funk",
"id": 4,
"value_for": "name"
},
"type_of_result": "file",
"user": {
"id": 541,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"result": "Prof. Rocco Funk",
"my_module": "Task-147",
"experiment": "Experiment-132",
"project": "My project-201",
"team": "My team-297"
},
"type": "edit_result",
"created_at": "2021-12-29 11:24:32 +0000",
"subject": {
"type": "Result",
"id": 4
}
}
// Add comment to result
{
"message_items": {
"result": {
"type": "Result",
"value": "Prof. Dora Hahn",
"id": 6,
"value_for": "name"
},
"user": {
"id": 545,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"result": "Prof. Dora Hahn",
"my_module": "Task-149",
"experiment": "Experiment-134",
"project": "My project-203",
"team": "My team-299"
},
"type": "add_comment_to_result",
"created_at": "2021-12-29 11:24:33 +0000",
"subject": {
"type": "Result",
"id": 6
}
}
// Edit result comment
{
"message_items": {
"result": {
"type": "Result",
"value": "Irish Koelpin LLD",
"id": 8,
"value_for": "name"
},
"user": {
"id": 549,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"result": "Irish Koelpin LLD",
"my_module": "Task-151",
"experiment": "Experiment-136",
"project": "My project-205",
"team": "My team-301"
},
"type": "edit_result_comment",
"created_at": "2021-12-29 11:24:34 +0000",
"subject": {
"type": "Result",
"id": 8
}
}
// Delete result comment
{
"message_items": {
"result": {
"type": "Result",
"value": "Antonette Jast",
"id": 10,
"value_for": "name"
},
"user": {
"id": 553,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"result": "Antonette Jast",
"my_module": "Task-153",
"experiment": "Experiment-138",
"project": "My project-207",
"team": "My team-303"
},
"type": "delete_result_comment",
"created_at": "2021-12-29 11:24:34 +0000",
"subject": {
"type": "Result",
"id": 10
}
}
// Add result
{
"message_items": {
"result": {
"type": "Result",
"value": "result name created",
"id": 12,
"value_for": "name"
},
"type_of_result": "table",
"user": {
"id": 557,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"result": "result name created",
"my_module": "Task-155",
"experiment": "Experiment-140",
"project": "My project-209",
"team": "My team-305"
},
"type": "add_result",
"created_at": "2021-12-29 11:24:35 +0000",
"subject": {
"type": "Result",
"id": 12
}
}
// Archive result
{
"message_items": {
"result": {
"type": "Result",
"value": "Fr. Kelsie Carroll",
"id": 15,
"value_for": "name"
},
"type_of_result": "table",
"user": {
"id": 563,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"result": "Fr. Kelsie Carroll",
"my_module": "Task-158",
"experiment": "Experiment-143",
"project": "My project-212",
"team": "My team-308"
},
"type": "archive_result",
"created_at": "2021-12-29 11:24:36 +0000",
"subject": {
"type": "Result",
"id": 15
}
}
// Destroy result
{
"message_items": {
"result": {
"type": "Result",
"value": "Rudy Hand",
"id": 22,
"value_for": "name"
},
"type_of_result": "text",
"user": {
"id": 577,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"result": "Rudy Hand",
"my_module": "Task-165",
"experiment": "Experiment-150",
"project": "My project-219",
"team": "My team-315"
},
"type": "destroy_result",
"created_at": "2021-12-29 11:24:38 +0000",
"subject": {
"type": "Result",
"id": 22
}
}
// Add comment to step
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-167",
"id": 173,
"value_for": "name"
},
"step": {
"type": "Step",
"value": "Brendan Legros",
"id": 9,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 9,
"value_for": "position_plus_one"
},
"user": {
"id": 581,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-167",
"experiment": "Experiment-152",
"project": "My project-221",
"team": "My team-317"
},
"type": "add_comment_to_step",
"created_at": "2021-12-29 11:24:38 +0000",
"subject": {
"type": "Protocol",
"id": 207
}
}
// Edit step comment
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-169",
"id": 175,
"value_for": "name"
},
"step": {
"type": "Step",
"value": "Clifton Daniel",
"id": 11,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 11,
"value_for": "position_plus_one"
},
"user": {
"id": 585,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-169",
"experiment": "Experiment-154",
"project": "My project-223",
"team": "My team-319"
},
"type": "edit_step_comment",
"created_at": "2021-12-29 11:24:39 +0000",
"subject": {
"type": "Protocol",
"id": 209
}
}
// Delete step comment
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-171",
"id": 177,
"value_for": "name"
},
"step": {
"type": "Step",
"value": "Remedios Jakubowski",
"id": 13,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 13,
"value_for": "position_plus_one"
},
"user": {
"id": 589,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-171",
"experiment": "Experiment-156",
"project": "My project-225",
"team": "My team-321"
},
"type": "delete_step_comment",
"created_at": "2021-12-29 11:24:40 +0000",
"subject": {
"type": "Protocol",
"id": 211
}
}
// Add step to protocol repository
{
"message_items": {
"step": {
"type": "Step",
"value": "test",
"id": 15,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 15,
"value_for": "position_plus_one"
},
"protocol": {
"type": "Protocol",
"value": "Tandy Abbott",
"id": 215,
"value_for": "name"
},
"user": {
"id": 593,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Tandy Abbott",
"team": "My team-323"
},
"type": "add_step_to_protocol_repository",
"created_at": "2021-12-29 11:24:40 +0000",
"subject": {
"type": "Protocol",
"id": 215
}
}
// Create step
{
"message_items": {
"step": {
"type": "Step",
"value": "test",
"id": 17,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 17,
"value_for": "position_plus_one"
},
"my_module": {
"type": "MyModule",
"value": "Task-175",
"id": 181,
"value_for": "name"
},
"user": {
"id": 597,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-175",
"experiment": "Experiment-160",
"project": "My project-229",
"team": "My team-325"
},
"type": "create_step",
"created_at": "2021-12-29 11:24:41 +0000",
"subject": {
"type": "Protocol",
"id": 217
}
}
// Edit step in protocol repository
{
"message_items": {
"step": {
"type": "Step",
"value": "updated name",
"id": 19,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 19,
"value_for": "position_plus_one"
},
"protocol": {
"type": "Protocol",
"value": "Brice Gislason",
"id": 221,
"value_for": "name"
},
"user": {
"id": 602,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Brice Gislason",
"team": "My team-327"
},
"type": "edit_step_in_protocol_repository",
"created_at": "2021-12-29 11:24:42 +0000",
"subject": {
"type": "Protocol",
"id": 221
}
}
// Edit step
{
"message_items": {
"step": {
"type": "Step",
"value": "updated name",
"id": 21,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 21,
"value_for": "position_plus_one"
},
"my_module": {
"type": "MyModule",
"value": "Task-179",
"id": 185,
"value_for": "name"
},
"user": {
"id": 607,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-179",
"experiment": "Experiment-164",
"project": "My project-233",
"team": "My team-329"
},
"type": "edit_step",
"created_at": "2021-12-29 11:24:42 +0000",
"subject": {
"type": "Protocol",
"id": 223
}
}
// Delete step in protocol repository
{
"message_items": {
"step": {
"type": "Step",
"value": "Alfredo Luettgen Jr.",
"id": 23,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 23,
"value_for": "position_plus_one"
},
"protocol": {
"type": "Protocol",
"value": "Cleo Hilll",
"id": 227,
"value_for": "name"
},
"user": {
"id": 612,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Cleo Hilll",
"team": "My team-331"
},
"type": "delete_step_in_protocol_repository",
"created_at": "2021-12-29 11:24:43 +0000",
"subject": {
"type": "Protocol",
"id": 227
}
}
// Destroy step
{
"message_items": {
"step": {
"type": "Step",
"value": "The Hon. Joleen Farrell",
"id": 25,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 25,
"value_for": "position_plus_one"
},
"my_module": {
"type": "MyModule",
"value": "Task-183",
"id": 189,
"value_for": "name"
},
"user": {
"id": 617,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-183",
"experiment": "Experiment-168",
"project": "My project-237",
"team": "My team-333"
},
"type": "destroy_step",
"created_at": "2021-12-29 11:24:44 +0000",
"subject": {
"type": "Protocol",
"id": 229
}
}
// Check step checklist item
{
"message_items": {
"step": {
"type": "Step",
"value": "Leonel Toy",
"id": 27,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 27,
"value_for": "position_plus_one"
},
"my_module": {
"type": "MyModule",
"value": "Task-185",
"id": 191,
"value_for": "name"
},
"checkbox": "Debitis modi neque voluptatum earum ratione sunt excepturi aut dolores.",
"num_completed": "1",
"num_all": "1",
"user": {
"id": 621,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-185",
"experiment": "Experiment-170",
"project": "My project-239",
"team": "My team-335"
},
"type": "check_step_checklist_item",
"created_at": "2021-12-29 11:24:44 +0000",
"subject": {
"type": "Protocol",
"id": 231
}
}
// Uncheck step checklist item
{
"message_items": {
"step": {
"type": "Step",
"value": "Marty Jast",
"id": 29,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 29,
"value_for": "position_plus_one"
},
"my_module": {
"type": "MyModule",
"value": "Task-187",
"id": 193,
"value_for": "name"
},
"checkbox": "Magni et doloremque minus facilis earum officiis ea unde ut.",
"num_completed": "0",
"num_all": "1",
"user": {
"id": 625,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-187",
"experiment": "Experiment-172",
"project": "My project-241",
"team": "My team-337"
},
"type": "uncheck_step_checklist_item",
"created_at": "2021-12-29 11:24:45 +0000",
"subject": {
"type": "Protocol",
"id": 233
}
}
// Complete step
{
"message_items": {
"step": {
"type": "Step",
"value": "Karl Cronin",
"id": 31,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 31,
"value_for": "position_plus_one"
},
"my_module": {
"type": "MyModule",
"value": "Task-189",
"id": 195,
"value_for": "name"
},
"num_completed": "1",
"num_all": "1",
"user": {
"id": 629,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-189",
"experiment": "Experiment-174",
"project": "My project-243",
"team": "My team-339"
},
"type": "complete_step",
"created_at": "2021-12-29 11:24:46 +0000",
"subject": {
"type": "Protocol",
"id": 235
}
}
// Uncomplete step
{
"message_items": {
"step": {
"type": "Step",
"value": "Ozzie Bergnaum",
"id": 33,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 33,
"value_for": "position_plus_one"
},
"my_module": {
"type": "MyModule",
"value": "Task-191",
"id": 197,
"value_for": "name"
},
"num_completed": "0",
"num_all": "1",
"user": {
"id": 633,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-191",
"experiment": "Experiment-176",
"project": "My project-245",
"team": "My team-341"
},
"type": "uncomplete_step",
"created_at": "2021-12-29 11:24:46 +0000",
"subject": {
"type": "Protocol",
"id": 237
}
}
// Create tag
{
"message_items": {
"tag": {
"type": "Tag",
"value": "name",
"id": 6,
"value_for": "name"
},
"project": {
"type": "Project",
"value": "My project-247",
"id": 256,
"value_for": "name"
},
"user": {
"id": 642,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "My project-247",
"team": "My team-343"
},
"type": "create_tag",
"created_at": "2021-12-29 11:24:48 +0000",
"subject": {
"type": "Project",
"id": 256
}
}
// Edit tag
{
"message_items": {
"tag": {
"type": "Tag",
"value": "Name2",
"id": 8,
"value_for": "name"
},
"project": {
"type": "Project",
"value": "My project-249",
"id": 258,
"value_for": "name"
},
"user": {
"id": 646,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "My project-249",
"team": "My team-345"
},
"type": "edit_tag",
"created_at": "2021-12-29 11:24:48 +0000",
"subject": {
"type": "Project",
"id": 258
}
}
// Delete tag
{
"message_items": {
"tag": {
"type": "Tag",
"value": "My tag-8",
"id": 10,
"value_for": "name"
},
"project": {
"type": "Project",
"value": "My project-251",
"id": 260,
"value_for": "name"
},
"user": {
"id": 650,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "My project-251",
"team": "My team-347"
},
"type": "delete_tag",
"created_at": "2021-12-29 11:24:49 +0000",
"subject": {
"type": "Project",
"id": 260
}
}
// Unshare inventory
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-136",
"id": 138,
"value_for": "name"
},
"team": {
"type": "Team",
"value": "My team-349",
"id": 349,
"value_for": "name"
},
"permission_level": "view-only",
"user": {
"id": 652,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-136",
"team": "My team-348"
},
"type": "unshare_inventory",
"created_at": "2021-12-29 11:24:49 +0000",
"subject": {
"type": "RepositoryBase",
"id": 138
}
}
// Export projects
{
"message_items": {
"team": {
"type": "Team",
"value": "My team-362",
"id": 362,
"value_for": "name"
},
"projects": "My project-254, My project-255",
"user": {
"id": 674,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"team": "My team-362"
},
"type": "export_projects",
"created_at": "2021-12-29 11:24:55 +0000",
"subject": {
"type": "Team",
"id": 362
}
}
// Undesignate user from my module
{
"message_items": {
"my_module": {
"type": "MyModule",
"value": "Task-201",
"id": 207,
"value_for": "name"
},
"user_target": {
"type": "User",
"value": "admin",
"id": 681,
"value_for": "name"
},
"user": {
"id": 681,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"my_module": "Task-201",
"experiment": "Experiment-186",
"project": "My project-259",
"team": "My team-366"
},
"type": "undesignate_user_from_my_module",
"created_at": "2021-12-29 11:24:56 +0000",
"subject": {
"type": "MyModule",
"id": 207
}
}
// Remove user from team
{
"message_items": {
"team": {
"type": "Team",
"value": "My team-368",
"id": 368,
"value_for": "name"
},
"user_removed": {
"type": "User",
"value": "admin",
"id": 686,
"value_for": "name"
},
"user": {
"id": 685,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"team": "My team-368"
},
"type": "remove_user_from_team",
"created_at": "2021-12-29 11:24:56 +0000",
"subject": {
"type": "Team",
"id": 368
}
}
// User leave team
{
"message_items": {
"team": {
"type": "Team",
"value": "My team-371",
"id": 371,
"value_for": "name"
},
"user": {
"id": 691,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"team": "My team-371"
},
"type": "user_leave_team",
"created_at": "2021-12-29 11:24:57 +0000",
"subject": {
"type": "Team",
"id": 371
}
}
// Change users role on team
{
"message_items": {
"team": {
"type": "Team",
"value": "My team-373",
"id": 373,
"value_for": "name"
},
"user_changed": {
"type": "User",
"value": "admin",
"id": 696,
"value_for": "name"
},
"role": "Administrator",
"user": {
"id": 695,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"team": "My team-373"
},
"type": "change_users_role_on_team",
"created_at": "2021-12-29 11:24:57 +0000",
"subject": {
"type": "Team",
"id": 373
}
}
// Edit wopi file on result
{
"message_items": {
"result": {
"type": "Result",
"value": "test result",
"id": 24,
"value_for": "name"
},
"asset_name": {
"type": "Asset",
"value": "test.jpg",
"id": 12,
"value_for": "file_name"
},
"action": "editing finished",
"user": {
"id": 707,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"result": "test result",
"my_module": "Task-203",
"experiment": "Experiment-188",
"project": "My project-261",
"team": "My team-375"
},
"type": "edit_wopi_file_on_result",
"created_at": "2021-12-29 11:25:00 +0000",
"subject": {
"type": "Result",
"id": 24
}
}
// Edit wopi file on step
{
"message_items": {
"step": {
"type": "Step",
"value": "Scot Cummings",
"id": 35,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 35,
"value_for": "position_plus_one"
},
"asset_name": {
"type": "Asset",
"value": "test.jpg",
"id": 14,
"value_for": "file_name"
},
"action": "editing finished",
"my_module": {
"type": "MyModule",
"value": "Task-205",
"id": 211,
"value_for": "name"
},
"user": {
"id": 711,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": null,
"my_module": "Task-205",
"experiment": "Experiment-190",
"project": "My project-263",
"team": "My team-377"
},
"type": "edit_wopi_file_on_step",
"created_at": "2021-12-29 11:25:01 +0000",
"subject": {
"type": "Protocol",
"id": 251
}
}
// Edit wopi file on step in repository
{
"message_items": {
"step": {
"type": "Step",
"value": "Edris DuBuque",
"id": 37,
"value_for": "name"
},
"step_position": {
"type": "Step",
"value": "1",
"id": 37,
"value_for": "position_plus_one"
},
"asset_name": {
"type": "Asset",
"value": "test.jpg",
"id": 16,
"value_for": "file_name"
},
"action": "editing finished",
"protocol": {
"type": "Protocol",
"value": "Msgr. Rhoda Champlin",
"id": 255,
"value_for": "name"
},
"user": {
"id": 716,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Msgr. Rhoda Champlin",
"team": "My team-379"
},
"type": "edit_wopi_file_on_step_in_repository",
"created_at": "2021-12-29 11:25:02 +0000",
"subject": {
"type": "Protocol",
"id": 255
}
}
// Add comment to module
{
"message_items": {
"user": {
"id": 790,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
},
"type": "add_comment_to_module",
"created_at": "2021-12-29 11:25:14 +0000",
"subject": {
"type": "MyModule",
"id": 19
}
}
// Unassign user from project
{
"message_items": {
"project": {
"type": "Project",
"value": "My project-333",
"id": 337,
"value_for": "name"
},
"user_target": {
"type": "User",
"value": "admin",
"id": 877,
"value_for": "name"
},
"role": "Owner",
"user": {
"id": 877,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"project": "My project-333",
"team": "My team-479"
},
"type": "unassign_user_from_project",
"created_at": "2021-12-29 11:25:29 +0000",
"subject": {
"type": "Project",
"id": 337
}
}
// Archive protocol in repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "Jason Prohaska PhD",
"id": 441,
"value_for": "name"
},
"user": {
"id": 902,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Jason Prohaska PhD",
"team": "My team-500"
},
"type": "archive_protocol_in_repository",
"created_at": "2021-12-29 11:25:32 +0000",
"subject": {
"type": "Protocol",
"id": 441
}
}
// Restore protocol in repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "Rosalia Marquardt",
"id": 443,
"value_for": "name"
},
"user": {
"id": 906,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Rosalia Marquardt",
"team": "My team-502"
},
"type": "restore_protocol_in_repository",
"created_at": "2021-12-29 11:25:32 +0000",
"subject": {
"type": "Protocol",
"id": 443
}
}
// Move protocol in repository
{
"message_items": {
"protocol": {
"type": "Protocol",
"value": "Mrs. Roxy Kshlerin",
"id": 445,
"value_for": "name"
},
"storage": "My protocols to Team protocols",
"user": {
"id": 910,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Mrs. Roxy Kshlerin",
"team": "My team-504"
},
"type": "move_protocol_in_repository",
"created_at": "2021-12-29 11:25:33 +0000",
"subject": {
"type": "Protocol",
"id": 445
}
}
// Copy protocol in repository
{
"message_items": {
"protocol_new": {
"type": "Protocol",
"value": "Katie Crooks (1)",
"id": 451,
"value_for": "name"
},
"protocol_original": {
"type": "Protocol",
"value": "Katie Crooks",
"id": 450,
"value_for": "name"
},
"user": {
"id": 918,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"protocol": "Katie Crooks",
"team": "My team-508"
},
"type": "copy_protocol_in_repository",
"created_at": "2021-12-29 11:25:33 +0000",
"subject": {
"type": "Protocol",
"id": 450
}
}
// Copy inventory
{
"message_items": {
"repository_new": {
"type": "Repository",
"value": "name for copied repo",
"id": 224,
"value_for": "name"
},
"repository_original": {
"type": "Repository",
"value": "My repository-242",
"id": 223,
"value_for": "name"
},
"user": {
"id": 1325,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "name for copied repo",
"team": "My team-613"
},
"type": "copy_inventory",
"created_at": "2021-12-29 11:26:08 +0000",
"subject": {
"type": "RepositoryBase",
"id": 224
}
}
// Archive inventory
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-314",
"id": 303,
"value_for": "name"
},
"user": {
"id": 3501,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-314",
"team": "My team-1057"
},
"type": "archive_inventory",
"created_at": "2021-12-29 11:29:53 +0000",
"subject": {
"type": "RepositoryBase",
"id": 303
}
}
// Share inventory
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-322",
"id": 311,
"value_for": "name"
},
"team": {
"type": "Team",
"value": "My team-1063",
"id": 1009,
"value_for": "name"
},
"permission_level": "view-only",
"user": {
"id": 3529,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-322",
"team": "My team-1062"
},
"type": "share_inventory",
"created_at": "2021-12-29 11:29:55 +0000",
"subject": {
"type": "RepositoryBase",
"id": 311
}
}
// Update share inventory
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-328",
"id": 317,
"value_for": "name"
},
"team": {
"type": "Team",
"value": "My team-1073",
"id": 1019,
"value_for": "name"
},
"permission_level": "view-only",
"user": {
"id": 3551,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-328",
"team": "My team-1072"
},
"type": "update_share_inventory",
"created_at": "2021-12-29 11:29:57 +0000",
"subject": {
"type": "RepositoryBase",
"id": 317
}
}
// Share inventory with all
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-331",
"id": 320,
"value_for": "name"
},
"team": {
"type": "Team",
"value": "My team-1077",
"id": 1023,
"value_for": "name"
},
"permission_level": "edit",
"user": {
"id": 3562,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-331",
"team": "My team-1077"
},
"type": "share_inventory_with_all",
"created_at": "2021-12-29 11:29:58 +0000",
"subject": {
"type": "RepositoryBase",
"id": 320
}
}
// Restore inventory
{
"message_items": {
"repository": {
"type": "Repository",
"value": "My repository-333",
"id": 322,
"value_for": "name"
},
"user": {
"id": 3573,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-333",
"team": "My team-1079"
},
"type": "restore_inventory",
"created_at": "2021-12-29 11:29:58 +0000",
"subject": {
"type": "RepositoryBase",
"id": 322
}
}
// Create column inventory
{
"message_items": {
"repository_column": {
"type": "RepositoryColumn",
"value": "myrepo",
"id": 180,
"value_for": "name"
},
"repository": {
"type": "Repository",
"value": "My repository-362",
"id": 352,
"value_for": "name"
},
"user": {
"id": 3789,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-362",
"team": "My team-1106"
},
"type": "create_column_inventory",
"created_at": "2021-12-29 11:30:16 +0000",
"subject": {
"type": "RepositoryBase",
"id": 352
}
}
// Edit column inventory
{
"message_items": {
"repository_column": {
"type": "RepositoryColumn",
"value": "my new column",
"id": 184,
"value_for": "name"
},
"repository": {
"type": "Repository",
"value": "My repository-370",
"id": 360,
"value_for": "name"
},
"user": {
"id": 3817,
"value": "admin",
"type": "User",
"value_for": "full_name"
}
},
"breadcrumbs": {
"repository": "My repository-370",
"team": "My team-1117"
},
"type": "edit_column_inventory",
"created_at": "2021-12-29 11:30:18 +0000",
"subject": {
"type": "RepositoryBase",
"id": 360
}
}
Errors
The API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- You don't have permission to access it. |
404 | Not Found -- The specified entity could not be found. |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |
Status
Status
curl "https://<server-name>/api/status"
The above command returns JSON structured like this:
{
"message":"Ok",
"versions": [
{
"version": "v1",
"baseUrl": "/api/v1/"
}
]
}
This endpoint returns status of API and index of all running API versions.
HTTP Request
GET https://<server-name>/api/status
Health
curl "https://<server-name>/api/health"
The above command returns a plain text:
RUNNING
This endpoint returns RUNNING
response along with the 200 status code
if the API is running.
HTTP Request
GET https://<server-name>/api/health