API Reference

Questionnaire Responses

Submit and manage questionnaire responses via the Jump EHR API. Create, retrieve, and update form submissions.

The Questionnaire Responses API allows you to submit form data against questionnaire templates, and retrieve or update existing responses.

API-created responses have submitted_by_patient: false automatically. The questionnaire_id must match a template visible to your organisation.

GET
/questionnaire-responses

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Query Parameters

limit?integer

Maximum number of records to return (1–100, default 20)

Range1 <= value <= 100
Default20
offset?integer

Number of records to skip (default 0)

Range0 <= value
Default0
patient_id?string
Formatuuid
questionnaire_id?string
Formatuuid
episode_id?string
Formatuuid
appointment_id?string
Formatuuid
is_pre_booking?string

Response Body

application/json

curl -X GET "https://example.com/questionnaire-responses"
{  "data": [    {      "id": "string",      "questionnaire_id": "string",      "patient_id": "string",      "appointment_id": "string",      "episode_id": "string",      "responses": {},      "submitted_at": "string",      "submitted_by_patient": true,      "is_pre_booking": true,      "created_at": "string",      "updated_at": "string"    }  ],  "meta": {    "limit": 20,    "next_offset": 1,    "has_more": true,    "request_id": "req_abc123"  }}

Try-it is disabled for POST /questionnaire-responses

This operation writes data. Running it from these docs would target the production API and change a real record. Copy the request sample and run it against staging first.

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Header Parameters

Idempotency-Key?string

Optional UUID for request deduplication. Same key + same body returns the cached response. Same key + different body returns 409 CONFLICT. Keys are scoped to your organisation and endpoint, and expire after 24 hours.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/questionnaire-responses" \  -H "Content-Type: application/json" \  -d '{    "questionnaire_id": "81208fa5-5c42-422e-97cc-33494b88f3c3",    "responses": {}  }'
{  "data": {    "id": "string",    "questionnaire_id": "string",    "patient_id": "string",    "appointment_id": "string",    "episode_id": "string",    "responses": {},    "submitted_at": "string",    "submitted_by_patient": true,    "is_pre_booking": true,    "created_at": "string",    "updated_at": "string"  },  "meta": {    "request_id": "req_abc123"  }}
GET
/questionnaire-responses/{id}

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Path Parameters

id*string
Formatuuid

Response Body

application/json

application/json

curl -X GET "https://example.com/questionnaire-responses/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "data": {    "id": "string",    "questionnaire_id": "string",    "patient_id": "string",    "appointment_id": "string",    "episode_id": "string",    "responses": {},    "submitted_at": "string",    "submitted_by_patient": true,    "is_pre_booking": true,    "created_at": "string",    "updated_at": "string"  },  "meta": {    "request_id": "req_abc123"  }}

Try-it is disabled for PATCH /questionnaire-responses/{id}

This operation writes data. Running it from these docs would target the production API and change a real record. Copy the request sample and run it against staging first.

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Path Parameters

id*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X PATCH "https://example.com/questionnaire-responses/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{  "data": {    "id": "string",    "questionnaire_id": "string",    "patient_id": "string",    "appointment_id": "string",    "episode_id": "string",    "responses": {},    "submitted_at": "string",    "submitted_by_patient": true,    "is_pre_booking": true,    "created_at": "string",    "updated_at": "string"  },  "meta": {    "request_id": "req_abc123"  }}