Developers
V1MePassportReadings

Save reviewed manual readings with explicit storage consent

Only the canonical CODES units and plausibility bounds are accepted. This route records manual entries after review and save; it does not perform OCR or write to native health stores. Reuse entryId and the same readings on retry. A changed payload or another owner's UUID returns 409. No existing health reading is updated.

POST
/v1/me/passport/readings
AuthorizationBearer <token>

In: header

Request 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

curl -X POST "https://example.com/v1/me/passport/readings" \  -H "Content-Type: application/json" \  -d '{    "entryId": "09a8b554-45ca-4bab-a638-265db4b3e828",    "effectiveAt": "2019-08-24T14:15:22Z",    "readings": [      {        "code": "8480-6",        "valueNum": 0,        "unit": "string"      }    ],    "consentHealthStorage": true  }'
{  "entryId": "09a8b554-45ca-4bab-a638-265db4b3e828",  "effectiveAt": "2019-08-24T14:15:22Z",  "recordedAt": "2019-08-24T14:15:22Z",  "source": "manual",  "consent": {    "purpose": "health_storage",    "version": "2026-09-09",    "grantedAt": "2019-08-24T14:15:22Z"  },  "readings": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "entryId": "09a8b554-45ca-4bab-a638-265db4b3e828",      "code": "8480-6",      "valueNum": 0,      "valueText": "string",      "unit": "string",      "effectiveAt": "2019-08-24T14:15:22Z",      "recordedAt": "2019-08-24T14:15:22Z",      "source": "healthkit",      "confidence": 0,      "supersedesId": "688cf67a-2e6c-4e49-8750-5bc8809fcd6f"    }  ]}