Update a project
- Sandbox: available
- Staging: available
- Production: unknown
Updates a project's name, address, contact and settings, and returns the updated project. Use it to edit your project or one of its child projects.
Auth: Bearer token of a project admin (ProjectMembership.admin).
Scope: The project in the path. It must be the caller's project (from the token) or a direct child of it.
Behaviour
- Sets the project
nameand replaces the organization stored inside the project with one built fromname,address,contactandsettings. This is a full replace, not a merge:- an omitted
addressorcontactclears it; - an omitted
settings.timeZoneresets the time zone toEurope/Berlin; - an omitted
settings.trendsPeriodremoves the stored trends period, so reads fall back to the default.
- an omitted
idandextensionin the body are ignored. The project comes from the path.settings.trendsPeriod.startmust beHH:MM:SS.- The response has the shape of
GET /v1/slim/project/{id}.
Example
curl -X PUT 'https://api.sandbox.ovok.com/v1/slim/project/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \ -H 'Content-Type: application/json' \ -d '{ "name": "My Medical Project", "address": [{ "line": ["Hauptstrasse 1"], "city": "Berlin", "postalCode": "10115", "country": "DE" }], "settings": { "timeZone": "Europe/Berlin", "trendsPeriod": { "start": "09:00:00", "durationSeconds": 86400 } } }'bearerAuthorizationBearer <JWT>id*stringuuidapplication/json- body
id?stringuuidname*string1 <= lengthcontact?array<>address?array<>extension?unknownsettings?The project was updated successfully.
application/json- response
resourceType*"Project""Project"id*stringname*stringaddress?array<>contact?array<>settings?curl -X PUT 'https://api.sandbox.ovok.com/v1/slim/project/497f6eca-6276-4993-bfeb-53cbbbba6f08' \ -H 'Content-Type: application/json' \ -d '{ "name": "string"}'{ "resourceType": "Project", "id": "string", "name": "string", "address": [ { "use": "work", "type": "postal", "text": "string", "line": [ "string" ], "city": "string", "district": "string", "state": "string", "postalCode": "string", "country": "string" } ], "contact": [ { "telecom": [ { "system": "email", "use": "work", "value": "string" } ], "name": { "use": "temp", "prefix": [ "string" ], "given": [ "string" ], "family": "string", "suffix": [ "string" ] }, "address": { "use": "work", "type": "postal", "text": "string", "line": [ "string" ], "city": "string", "district": "string", "state": "string", "postalCode": "string", "country": "string" } } ], "settings": { "timeZone": "string", "trendsPeriod": { "start": "string", "durationSeconds": 0 } }}Get a project GET
Returns a project's name, address, contact and settings. Use it to show or edit your project or one of its child projects. **Auth:** Bearer token. The caller's access policy must grant `AccessPolicy:read` and `AccessPolicy:update` (a project admin who holds no access policy skips this check). **Scope:** The project in the path. It must be the caller's project (from the token) or a direct child of it. ## Behaviour - `address` and `contact` come from the organization stored inside the project. - `name` falls back to the project id when the project has no name. - `settings.timeZone` defaults to `Europe/Berlin` when none is stored. - `settings.trendsPeriod` defaults to `start: "09:00:00"` and `durationSeconds: 86400` when none is stored. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/project/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```
List devices with telemetry (compatibility) GET
Compatibility route for older query clients. Returns device rows joined with their resident, location, zone and telemetry. For new integrations, use `GET /v1/slim/device/live` or the `/v1/slim/patient` routes. **Auth:** bearer token. The caller must be a practitioner, an admin or a System Owner, and needs `search` and `read` on `Patient`, `Device`, `Location`, `Observation` and `Organization`. **Scope:** the caller's project (from the token). The `project` parameter is ignored. ## Behaviour - `mustInclude` lists the resources a row must have to be returned. `shouldInclude` lists the resources added to each row when present. Both are comma-separated lists of `organization`, `device`, `location`, `patient` and `telemetry`. - Every entry in `mustInclude` must also be in `shouldInclude`. `telemetry` in either list needs `device` in the same list. - When `mustInclude` contains `patient`, the query runs on the older resident-oriented path, which reads telemetry from the device database and Redis. Otherwise it runs on the same path as `GET /v1/slim/device/live`. - Without `includeUnassigned=true`, rows without a resident are left out when `patient` is required. - `organization` takes `Organization/<id>`, `assigned` or `unassigned`. - `page` is zero-based. `count` defaults to 20, maximum 100. - The route returns 503 when the server is at capacity for live reads or the device list cannot be built. Retry shortly. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query?mustInclude=device,telemetry&shouldInclude=organization,device,location,patient,telemetry&page=0&count=20' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```