IotDevice

Get Pulsene MQTT settings

  • Sandbox: available
  • Staging: available
  • Production: unknown
POST
/v1/iot-device/pulsene/setup

Returns the MQTT connection settings for a Pulsene MC01 device. The device calls this route on startup to learn which broker to connect to.

Auth: None at the HTTP level (no bearer token). The body must carry an apiKey that matches the key the device firmware ships with. A wrong or missing key is rejected with 401.

Behaviour

  • The body must contain serialNumber (non-empty string) and apiKey (non-empty string).
  • Ovok does not look the device up. Any serial that passes the key check receives the same response shape: mqtt.clientId is the serial you sent, username and password are the fixed MC01 broker credentials, and url is the broker URL configured for the environment.
  • wifi and pairing are not returned for this device family.
  • The route answers 200. It does not write anything.

Example

curl -X POST 'https://api.sandbox.ovok.com/v1/iot-device/pulsene/setup' \  -H 'Content-Type: application/json' \  -d '{ "serialNumber": "<serial>", "apiKey": "<device-api-key>" }'

Request Body

application/json
  1. body
serialNumber*string

The unique serial number of the device

Length1 <= length
apiKey*string

The API key for authentication

Length1 <= length

Response Body

The MQTT settings for the device.

application/json
  1. response
mqtt*
wifi?
pairing?
Example Request
curl -X POST 'https://api.sandbox.ovok.com/v1/iot-device/pulsene/setup' \  -H 'Content-Type: application/json' \  -d '{  "serialNumber": "string",  "apiKey": "string"}'
Example Response
{  "mqtt": {    "clientId": "string",    "username": "string",    "password": "string",    "url": "string"  },  "wifi": {    "SSID": "string",    "password": "string",    "method": "string"  },  "pairing": {    "method": "string",    "H10Address": "string",    "O2RingAddress": "string"  }}

Accept a practitioner's care invite POST

The signed-in patient accepts a practitioner's invite into their care from a `PATIENT_ASSIGNMENT_REQUEST` email. From then on their whole record is shared with the inviting practitioner. **Auth:** bearer token of a Patient. **Scope:** the caller's project (from the token). ## Behaviour - Send the `invite` and `code` values from the email's accept link as `inviteId` and `code`. - Gates: practitioner sharing must be on for the project, and `PATIENT_INVITATION_ENABLED` must not be `false`. - Only the patient the invite names can accept it. The invite is single use and expires 7 days after it was sent. - On success the invite's Consent becomes `active` and a grant for the caller's record is added to the practitioner's membership, in one atomic write. The practitioner's cached sessions are refreshed. - The practitioner gets the access described on `POST /v1/invites/record-share/accept`: the patient's whole compartment, with no delete. - The share lasts until the patient ends it (`DELETE /v1/patient-sharing/shares/{consentId}`). - A 409 with `practitioner_without_access_policy` means the practitioner has full project access, which a share would narrow. ## Example ```bash curl -X POST 'https://api.sandbox.ovok.com/v1/invites/care/accept' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \ -H 'Content-Type: application/json' \ -d '{ "inviteId": "c3499c27-2973-0a7f-807e-fb8676a92dcb", "code": "<code from the accept link>" }' ```

Get project locales GET

Returns the languages enabled for your project and its default language. **Auth:** bearer token. You need `List:read` and `List:search` access, or be a project admin. **Scope:** the caller's project (from the token). ## Behaviour - The locale settings are stored as a FHIR `List` in your project. - If the project has no locale settings yet, the route returns 404. Create them with `PATCH /locales`. - Localization and content routes accept only the languages returned here. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/locales' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```