# 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 }