# Project controller (/project) - Read
The project controller contains many endpoints related to projects, which is where all data is stored. The endpoints are divided in five groups:
General
Get information about available projects and tables within projects, and run a basic check of access and system status.Users
Manage users that are members of a project.Read
Read user data from tables.Write
Create, update or delete user data in tables.Watch
Watch for changes of user data in tables, and for changes of project members.
# All project endpoints
Below are all endpoints in the entire project controller in alphabetical order. Endpoints in the current group are in bold.
/project/list (GET)
/project/list/all (GET)
/project/{project}/check (GET)
/project/{project}/subjects/watch/register (POST)
/project/{project}/subjects/watch/unregister/{id} (POST)
/project/{project}/subjects/watch/{id} (GET)
/project/{project}/table/{table} (GET)
/project/{project}/table/{table} (POST)
/project/{project}/table/{table} (DELETE)
/project/{project}/table/{table}/filter/delete (POST)
/project/{project}/table/{table}/filter/get (POST)
/project/{project}/table/{table}/filter/get/first (POST)
/project/{project}/table/{table}/filter/get/last (POST)
/project/{project}/table/{table}/first (GET)
/project/{project}/table/{table}/last (GET)
/project/{project}/table/{table}/purge (DELETE)
/project/{project}/table/{table}/spec (GET)
/project/{project}/table/{table}/watch/register (POST)
/project/{project}/table/{table}/watch/unregister/{id} (POST)
/project/{project}/table/{table}/watch/{id} (GET)
/project/{project}/table/{table}/{recordId} (GET)
/project/{project}/table/{table}/{recordId} (PUT)
/project/{project}/table/{table}/{recordId} (DELETE)
/project/{project}/tables (GET)
/project/{project}/user (POST)
/project/{project}/user (DELETE)
/project/{project}/users (GET)
# /{project}/table/{table} (GET)
If the table has a field “utcTime” or “localTime”, you can filter records with a start and end time, or a start and end date.
You can specify a date/time as:
- An ISO date/time with a time zone: 2015-09-20T00:00:00.000+02:00
It will filter on “utcTime” if it exists. Otherwise it filters on “localTime” and ignores the time zone. - An ISO date/time without a time zone: 2015-09-20T00:00:00.000
It will filter on “localTime”. - A date: 2015-09-20
It will filter on “localTime”. - A UNIX time in milliseconds: 1442700000000
It will filter on “utcTime” if it exists. Otherwise it will convert the unix time to a local time in time zone UTC, and then filter on “localTime”.
If the table does not have a time field, then the start and end parameters are ignored.
All users can access their own data within a project that they can access, and data to which they were granted access with .
Patients can only access their own data.
Professionals can access the data of users to whom they were granted access. Admins can access all data.
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000+02:00
&end=2015-09-21T00:00:00.000+02:00
X-Auth-Token: ...
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000
&end=2015-09-21T00:00:00.000
X-Auth-Token: ...
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20
&end=2015-09-21
X-Auth-Token: ...
[
{
"id": "69a4588f14ba4c989e83dd67ea6e4350",
"user": "b43f784d76c44e7a9ae0370b91521753",
"utcTime": 1442736900000,
"timezone": "Europe/Amsterdam",
"localTime": "2015-09-20T10:15:00.000",
"value": 947
},
...
]
# /{project}/table/{table}/filter/get
If you do not specify a custom sort, the records will be sorted by “utcTime”, “localTime” or “id”, depending on what fields are available in the table.
If the table has a field “utcTime” or “localTime”, you can filter records with a start and end time, or a start and end date.
You can specify a date/time as:
- An ISO date/time with a time zone: 2015-09-20T00:00:00.000+02:00
It will filter on “utcTime” if it exists. Otherwise it filters on “localTime” and ignores the time zone. - An ISO date/time without a time zone: 2015-09-20T00:00:00.000
It will filter on “localTime”. - A date: 2015-09-20
It will filter on “localTime”. - A UNIX time in milliseconds: 1442700000000
It will filter on “utcTime” if it exists. Otherwise it will convert the unix time to a local time in time zone UTC, and then filter on “localTime”.
If the table does not have a time field, then the start and end parameters are ignored.
All users can access their own data within a project that they can access, and data to which they were granted access with .
Patients can only access their own data.
Professionals can access the data of users to whom they were granted access.
Admins can access all data.
Filter
A filter is a JSON object with one key/value pair. Possible keys:
A value filter for equality is a simple string or numeric value (matching the
field type).
A value filter for other comparisons is a JSON object with one key/value pair.
The value is again a simple string or numeric value. The key is one of:
Sort
A list of sort objects. Each sort object has the following properties:
Limit
The maximum number of records to return. If you omit it or set it to null or 0, then there is no limit.
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000+02:00
&end=2015-09-21T00:00:00.000+02:00
X-Auth-Token: ...
{
"filter": {
"$and": [
{ "field1": "value1" },
{ "field2": { "$ne": 2 } },
{ "$or": [
{ "field3": "value3" },
{ "field4": { "$lt": 4 } }
] }
]
},
"sort": [ {
"column": "utcTime",
"ascending": true
} ],
"limit": 0
}
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000
&end=2015-09-21T00:00:00.000
X-Auth-Token: ...
...
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20
&end=2015-09-21
X-Auth-Token: ...
...
[
{
"id": "69a4588f14ba4c989e83dd67ea6e4350",
"user": "b43f784d76c44e7a9ae0370b91521753",
"utcTime": 1442736900000,
"timezone": "Europe/Amsterdam",
"localTime": "2015-09-20T10:15:00.000",
"value": 947
},
...
]
# /{project}/table/{table}/first
If the table has a field “utcTime” or “localTime”, you can restrict the search range with a start and end time, or a start and end date.
You can specify a date/time as:
- An ISO date/time with a time zone: 2015-09-20T00:00:00.000+02:00
It will filter on “utcTime” if it exists. Otherwise it filters on “localTime” and ignores the time zone. - An ISO date/time without a time zone: 2015-09-20T00:00:00.000
It will filter on “localTime”. - A date: 2015-09-20
It will filter on “localTime”. - A UNIX time in milliseconds: 1442700000000
It will filter on “utcTime” if it exists. Otherwise it will convert the unix time to a local time in time zone UTC, and then filter on “localTime”.
If the table does not have a time field, then the start and end parameters are ignored.
All users can access their own data within a project that they can access, and data to which they were granted access with .
Patients can only access their own data.
Professionals can access the data of users to whom they were granted access.
Admins can access all data.
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/first
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000+02:00
&end=2015-09-21T00:00:00.000+02:00
X-Auth-Token: ...
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/first
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000
&end=2015-09-21T00:00:00.000
X-Auth-Token: ...
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/first
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20
&end=2015-09-21
X-Auth-Token: ...
{
"value": {
"id": "69a4588f14ba4c989e83dd67ea6e4350",
"user": "b43f784d76c44e7a9ae0370b91521753",
"utcTime": 1442736900000,
"timezone": "Europe/Amsterdam",
"localTime": "2015-09-20T10:15:00.000",
"value": 947
}
}
or
{
"value": null
}
# /{project}/table/{table}/filter/get/first
If you do not specify a custom sort, the records will be sorted by “utcTime”, “localTime” or “id”, depending on what fields are available in the table.
If the table has a field “utcTime” or “localTime”, you can restrict the search range with a start and end time, or a start and end date.
You can specify a date/time as:
- An ISO date/time with a time zone: 2015-09-20T00:00:00.000+02:00
It will filter on “utcTime” if it exists. Otherwise it filters on “localTime” and ignores the time zone. - An ISO date/time without a time zone: 2015-09-20T00:00:00.000
It will filter on “localTime”. - A date: 2015-09-20
It will filter on “localTime”. - A UNIX time in milliseconds: 1442700000000
It will filter on “utcTime” if it exists. Otherwise it will convert the unix time to a local time in time zone UTC, and then filter on “localTime”.
If the table does not have a time field, then the start and end parameters are ignored.
All users can access their own data within a project that they can access, and data to which they were granted access with .
Patients can only access their own data.
Professionals can access the data of users to whom they were granted access.
Admins can access all data.
Filter
A filter is a JSON object with one key/value pair. Possible keys:
A value filter for other comparisons is a JSON object with one key/value pair. The value is again a simple string or numeric value. The key is one of:
Sort
A list of sort objects. Each sort object has the following properties:
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get/first
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000+02:00
&end=2015-09-21T00:00:00.000+02:00
X-Auth-Token: ...
{
"filter": {
"$and": [
{ "field1": "value1" },
{ "field2": { "$ne": 2 } },
{ "$or": [
{ "field3": "value3" },
{ "field4": { "$lt": 4 } }
] }
]
},
"sort": [ {
"column": "utcTime",
"ascending": true
} ]
}
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get/first
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000
&end=2015-09-21T00:00:00.000
X-Auth-Token: ...
...
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get/first
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20
&end=2015-09-21
X-Auth-Token: ...
...
{
"value": {
"id": "69a4588f14ba4c989e83dd67ea6e4350",
"user": "b43f784d76c44e7a9ae0370b91521753",
"utcTime": 1442736900000,
"timezone": "Europe/Amsterdam",
"localTime": "2015-09-20T10:15:00.000",
"value": 947
}
}
or
{
"value": null
}
# /{project}/table/{table}/last
If the table has a field “utcTime” or “localTime”, you can restrict the search range with a start and end time, or a start and end date.
You can specify a date/time as:
- An ISO date/time with a time zone: 2015-09-20T00:00:00.000+02:00
It will filter on “utcTime” if it exists. Otherwise it filters on “localTime” and ignores the time zone. - An ISO date/time without a time zone: 2015-09-20T00:00:00.000
It will filter on “localTime”. - A date: 2015-09-20
It will filter on “localTime”. - A UNIX time in milliseconds: 1442700000000
It will filter on “utcTime” if it exists. Otherwise it will convert the unix time to a local time in time zone UTC, and then filter on “localTime”.
If the table does not have a time field, then the start and end parameters are ignored.
All users can access their own data within a project that they can access, and data to which they were granted access with .
Patients can only access their own data.
Professionals can access the data of users to whom they were granted access.
Admins can access all data.
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/last
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000+02:00
&end=2015-09-21T00:00:00.000+02:00
X-Auth-Token: ...
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/last
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000
&end=2015-09-21T00:00:00.000
X-Auth-Token: ...
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/last
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20
&end=2015-09-21
X-Auth-Token: ...
{
"value": {
"id": "69a4588f14ba4c989e83dd67ea6e4350",
"user": "b43f784d76c44e7a9ae0370b91521753",
"utcTime": 1442736900000,
"timezone": "Europe/Amsterdam",
"localTime": "2015-09-20T10:15:00.000",
"value": 947
}
}
or
{
"value": null
}
# /{project}/table/{table}/filter/get/last
If you do not specify a custom sort, the records will be sorted by “utcTime”, “localTime” or “id”, depending on what fields are available in the table.
If the table has a field “utcTime” or “localTime”, you can restrict the search range with a start and end time, or a start and end date.
You can specify a date/time as:
- An ISO date/time with a time zone: 2015-09-20T00:00:00.000+02:00
It will filter on “utcTime” if it exists. Otherwise it filters on “localTime” and ignores the time zone. - An ISO date/time without a time zone: 2015-09-20T00:00:00.000
It will filter on “localTime”. - A date: 2015-09-20
It will filter on “localTime”. - A UNIX time in milliseconds: 1442700000000
It will filter on “utcTime” if it exists. Otherwise it will convert the unix time to a local time in time zone UTC, and then filter on “localTime”.
If the table does not have a time field, then the start and end parameters are ignored.
All users can access their own data within a project that they can access, and data to which they were granted access with .
Patients can only access their own data.
Professionals can access the data of users to whom they were granted access.
Admins can access all data.
Filter
A filter is a JSON object with one key/value pair. Possible keys:
A value filter for other comparisons is a JSON object with one key/value pair. The value is again a simple string or numeric value. The key is one of:
Sort
A list of sort objects. Each sort object has the following properties:
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get/last
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000+02:00
&end=2015-09-21T00:00:00.000+02:00
X-Auth-Token: ...
{
"filter": {
"$and": [
{ "field1": "value1" },
{ "field2": { "$ne": 2 } },
{ "$or": [
{ "field3": "value3" },
{ "field4": { "$lt": 4 } }
] }
]
}
}
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get/last
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20T00:00:00.000
&end=2015-09-21T00:00:00.000
X-Auth-Token: ...
...
POST https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps/filter/get/last
?user=b43f784d76c44e7a9ae0370b91521753
&start=2015-09-20
&end=2015-09-21
X-Auth-Token: ...
...
{
"value": {
"id": "69a4588f14ba4c989e83dd67ea6e4350",
"user": "b43f784d76c44e7a9ae0370b91521753",
"utcTime": 1442736900000,
"timezone": "Europe/Amsterdam",
"localTime": "2015-09-20T10:15:00.000",
"value": 947
}
}
or
{
"value": null
}
# /{project}/table/{table}/{recordId} (GET)
All users can access their own data within a project that they can access, and data to which they were granted access with .
Patients can only access their own data.
Professionals can access the data of users to whom they were granted access.
Admins can access all data.
GET https://www.example.com/servlets/senseeact/v6.1.0/project/default/table/steps
/69a4588f14ba4c989e83dd67ea6e4350?user=b43f784d76c44e7a9ae0370b91521753
X-Auth-Token: ...
{
"id": "69a4588f14ba4c989e83dd67ea6e4350",
"user": "b43f784d76c44e7a9ae0370b91521753",
"timezone": "Europe/Amsterdam",
"utcTime": 1442736900000,
"localTime": "2015-09-20T10:15:00.000",
"value": 947
}