Save your setup state with optimistic concurrency; terminal sessions are immutable
Every question can be declined: send the question ids in declinedQuestionIds on the completing save and nothing is stored for them. Version 2 validates visible required questions, typed answers, exclusive options and explicit health-storage consent against the pinned revision. On a 409 read the latest session. Explicitly delete your setup data before starting over.
Authorization
bearer In: header
Path Parameters
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/me/onboarding/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "expectedVersion": 1, "status": "in_progress", "stepId": "string", "seenSlideIds": [ "string" ], "answers": { "property1": [ "string" ], "property2": [ "string" ] } }'{ "revision": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "draft", "version": 1, "definition": { "name": "string", "formatVersion": 2, "slides": [ { "id": "string", "title": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" }, "body": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" }, "image": { "url": "http://example.com", "alt": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" } }, "companion": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" }, "pose": "wave" } ], "questions": [ { "id": "string", "prompt": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" }, "kind": "single", "why": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" }, "shown": true, "required": true, "details": { "optionId": "string", "prompt": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" }, "placeholder": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" } }, "number": { "unit": "string", "min": -1000000, "max": 1000000 }, "options": [ { "id": "string", "label": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" }, "tracks": [ "bp" ], "icon": "bp", "reply": { "en-MY": "string", "ms-MY": "string", "zh-Hans-MY": "string" }, "exclusive": true } ], "maxSelections": 1 } ] }, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "publishedAt": "2019-08-24T14:15:22Z" }, "progress": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "revisionId": "bae12d01-48af-47b3-9304-b09ef0081cd6", "version": 1, "status": "in_progress", "locale": "en-MY", "stepId": "string", "seenSlideIds": [ "string" ], "answers": { "property1": [ "string" ], "property2": [ "string" ] }, "healthConsent": { "version": "2026-10-02", "grantedAt": "2019-08-24T14:15:22Z" }, "startedAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "completedAt": "2019-08-24T14:15:22Z" }}Download your setup sessions and their original questions as portable JSON GET
Owner-only, up to 100 sessions per page. Follow nextCursor until null. This is separate from clinical passport readings; no public download URL is created.
Your private latest readings and chronological timeline GET
Latest readings exclude hidden and superseded records. Timeline is newest first; follow nextCursor for older readings. Use visibility=hidden for the owner's restorable hidden records. Full immutable history remains in private export and record history.