Patients
Manage patient records with the Jump EHR Patients API. Create, read, update, and search patient data.
The Patients API allows you to manage patient records in Jump EHR. Patients are the core resource that other clinical data (episodes, appointments, questionnaires) relates to.
Deleting patients is not permitted (clinical data protection). Use PATCH to archive instead.
Status filters are case-sensitive and must match exact values. See individual collection docs below for valid values.
consultation_context is not a substitute for consultation endpoints. To reconstruct what happened in a specific consultation, use GET /consultations/{id}.
Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Query Parameters
Maximum number of records to return (1–100, default 20)
1 <= value <= 10020Number of records to skip (default 0)
0 <= value0Value in
- "active"
- "inactive"
- "archived"
- "merged"
Value in
- "active"
- "temporary"
- "dummy"
- "archived"
- "merged"
Comma-separated list of statuses
date-timedate-timeCase-insensitive search across first_name, last_name, email, nhs_number
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/patients"{ "data": [ { "id": "123e4567-e89b-12d3-a456-426614174000", "first_name": "Sarah", "last_name": "Johnson", "middle_name": "Anne", "preferred_name": "Sally", "title": "Ms", "date_of_birth": "1985-03-15", "biological_sex": "female", "gender": "woman", "ethnicity": "Example ethnicity", "nhs_number": "9990000018", "email": "sarah.johnson@example.com", "phone": "+44 7700 900123", "mobile_phone": "+44 7700 900123", "home_phone": "+44 7700 900456", "address_line_1": "123 Example Street", "address_line_2": "Flat 4", "address_line_3": null, "town_city": "London", "postcode": "SW1A 1AA", "country": "United Kingdom", "preferred_contact_method": "email", "status": "active", "patient_type": "active", "is_deceased": false, "date_of_death": null, "requires_review": false, "review_reason": "Example review reason", "accessibility_needs": { "requiresInterpreter": true, "interpreterLanguage": { "code": "pl", "display": "Polish" }, "requiresBSL": false, "accessNeeds": [ "wheelchair_access_required" ] }, "accessibility_notes": "Example accessibility notes", "occupation": "Teacher", "pronouns": "she/her", "named_clinician_id": "123e4567-e89b-12d3-a456-426614174001", "patient_id": "P-100428", "external_id": "crm-4821", "patient_notes": "Example patient notes", "consent_sms": false, "consent_email": false, "consent_marketing": false, "consent_electronic_communication": false, "archived_at": "2026-01-15T10:30:00Z", "archived_by": "123e4567-e89b-12d3-a456-426614174002", "archive_reason": "Example archive reason", "archive_notes": "Example archive notes", "created_at": "2026-01-15T10:30:00Z", "updated_at": "2026-01-15T10:30:00Z" } ], "meta": { "limit": 20, "next_offset": 1, "has_more": true, "request_id": "req_abc123" }}Try-it is disabled for POST /patients
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 API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Header Parameters
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.
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
curl -X POST "https://example.com/patients" \ -H "Content-Type: application/json" \ -d '{ "first_name": "string", "last_name": "string", "date_of_birth": "2019-08-24" }'{ "data": { "id": "123e4567-e89b-12d3-a456-426614174000", "first_name": "Sarah", "last_name": "Johnson", "middle_name": "Anne", "preferred_name": "Sally", "title": "Ms", "date_of_birth": "1985-03-15", "biological_sex": "female", "gender": "woman", "ethnicity": "Example ethnicity", "nhs_number": "9990000018", "email": "sarah.johnson@example.com", "phone": "+44 7700 900123", "mobile_phone": "+44 7700 900123", "home_phone": "+44 7700 900456", "address_line_1": "123 Example Street", "address_line_2": "Flat 4", "address_line_3": null, "town_city": "London", "postcode": "SW1A 1AA", "country": "United Kingdom", "preferred_contact_method": "email", "status": "active", "patient_type": "active", "is_deceased": false, "date_of_death": null, "requires_review": false, "review_reason": "Example review reason", "accessibility_needs": { "requiresInterpreter": true, "interpreterLanguage": { "code": "pl", "display": "Polish" }, "requiresBSL": false, "accessNeeds": [ "wheelchair_access_required" ] }, "accessibility_notes": "Example accessibility notes", "occupation": "Teacher", "pronouns": "she/her", "named_clinician_id": "123e4567-e89b-12d3-a456-426614174001", "patient_id": "P-100428", "external_id": "crm-4821", "patient_notes": "Example patient notes", "consent_sms": false, "consent_email": false, "consent_marketing": false, "consent_electronic_communication": false, "archived_at": "2026-01-15T10:30:00Z", "archived_by": "123e4567-e89b-12d3-a456-426614174002", "archive_reason": "Example archive reason", "archive_notes": "Example archive notes", "created_at": "2026-01-15T10:30:00Z", "updated_at": "2026-01-15T10:30:00Z" }, "meta": { "request_id": "req_abc123" }}Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/patients/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "data": { "id": "123e4567-e89b-12d3-a456-426614174000", "first_name": "Sarah", "last_name": "Johnson", "middle_name": "Anne", "preferred_name": "Sally", "title": "Ms", "date_of_birth": "1985-03-15", "biological_sex": "female", "gender": "woman", "ethnicity": "Example ethnicity", "nhs_number": "9990000018", "email": "sarah.johnson@example.com", "phone": "+44 7700 900123", "mobile_phone": "+44 7700 900123", "home_phone": "+44 7700 900456", "address_line_1": "123 Example Street", "address_line_2": "Flat 4", "address_line_3": null, "town_city": "London", "postcode": "SW1A 1AA", "country": "United Kingdom", "preferred_contact_method": "email", "status": "active", "patient_type": "active", "is_deceased": false, "date_of_death": null, "requires_review": false, "review_reason": "Example review reason", "accessibility_needs": { "requiresInterpreter": true, "interpreterLanguage": { "code": "pl", "display": "Polish" }, "requiresBSL": false, "accessNeeds": [ "wheelchair_access_required" ] }, "accessibility_notes": "Example accessibility notes", "occupation": "Teacher", "pronouns": "she/her", "named_clinician_id": "123e4567-e89b-12d3-a456-426614174001", "patient_id": "P-100428", "external_id": "crm-4821", "patient_notes": "Example patient notes", "consent_sms": false, "consent_email": false, "consent_marketing": false, "consent_electronic_communication": false, "archived_at": "2026-01-15T10:30:00Z", "archived_by": "123e4567-e89b-12d3-a456-426614174002", "archive_reason": "Example archive reason", "archive_notes": "Example archive notes", "created_at": "2026-01-15T10:30:00Z", "updated_at": "2026-01-15T10:30:00Z" }, "meta": { "request_id": "req_abc123" }}Try-it is disabled for PATCH /patients/{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 API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Partial update — only supplied fields are changed.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/patients/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "id": "123e4567-e89b-12d3-a456-426614174000", "first_name": "Sarah", "last_name": "Johnson", "middle_name": "Anne", "preferred_name": "Sally", "title": "Ms", "date_of_birth": "1985-03-15", "biological_sex": "female", "gender": "woman", "ethnicity": "Example ethnicity", "nhs_number": "9990000018", "email": "sarah.johnson@example.com", "phone": "+44 7700 900123", "mobile_phone": "+44 7700 900123", "home_phone": "+44 7700 900456", "address_line_1": "123 Example Street", "address_line_2": "Flat 4", "address_line_3": null, "town_city": "London", "postcode": "SW1A 1AA", "country": "United Kingdom", "preferred_contact_method": "email", "status": "active", "patient_type": "active", "is_deceased": false, "date_of_death": null, "requires_review": false, "review_reason": "Example review reason", "accessibility_needs": { "requiresInterpreter": true, "interpreterLanguage": { "code": "pl", "display": "Polish" }, "requiresBSL": false, "accessNeeds": [ "wheelchair_access_required" ] }, "accessibility_notes": "Example accessibility notes", "occupation": "Teacher", "pronouns": "she/her", "named_clinician_id": "123e4567-e89b-12d3-a456-426614174001", "patient_id": "P-100428", "external_id": "crm-4821", "patient_notes": "Example patient notes", "consent_sms": false, "consent_email": false, "consent_marketing": false, "consent_electronic_communication": false, "archived_at": "2026-01-15T10:30:00Z", "archived_by": "123e4567-e89b-12d3-a456-426614174002", "archive_reason": "Example archive reason", "archive_notes": "Example archive notes", "created_at": "2026-01-15T10:30:00Z", "updated_at": "2026-01-15T10:30:00Z" }, "meta": { "request_id": "req_abc123" }}Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidQuery Parameters
Maximum number of records to return (1–100, default 20)
1 <= value <= 10020Number of records to skip (default 0)
0 <= value0Filter by SNOMED/observation code
date-timedate-timeResponse Body
application/json
application/json
curl -X GET "https://example.com/patients/497f6eca-6276-4993-bfeb-53cbbbba6f08/observations"{ "data": [ {} ], "meta": { "limit": 20, "next_offset": 1, "has_more": true, "request_id": "req_abc123" }}Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidQuery Parameters
Maximum number of records to return (1–100, default 20)
1 <= value <= 10020Number of records to skip (default 0)
0 <= value0Comma-separated status values
Response Body
application/json
application/json
curl -X GET "https://example.com/patients/497f6eca-6276-4993-bfeb-53cbbbba6f08/medications"{ "data": [ {} ], "meta": { "limit": 20, "next_offset": 1, "has_more": true, "request_id": "req_abc123" }}Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidQuery Parameters
Maximum number of records to return (1–100, default 20)
1 <= value <= 10020Number of records to skip (default 0)
0 <= value0Comma-separated status values
Response Body
application/json
application/json
curl -X GET "https://example.com/patients/497f6eca-6276-4993-bfeb-53cbbbba6f08/problems"{ "data": [ {} ], "meta": { "limit": 20, "next_offset": 1, "has_more": true, "request_id": "req_abc123" }}Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidQuery Parameters
Maximum number of records to return (1–100, default 20)
1 <= value <= 10020Number of records to skip (default 0)
0 <= value0Response Body
application/json
application/json
curl -X GET "https://example.com/patients/497f6eca-6276-4993-bfeb-53cbbbba6f08/referrals"{ "data": [ {} ], "meta": { "limit": 20, "next_offset": 1, "has_more": true, "request_id": "req_abc123" }}Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidQuery Parameters
Maximum number of records to return (1–100, default 20)
1 <= value <= 10020Number of records to skip (default 0)
0 <= value0Response Body
application/json
application/json
curl -X GET "https://example.com/patients/497f6eca-6276-4993-bfeb-53cbbbba6f08/allergies"{ "data": [ {} ], "meta": { "limit": 20, "next_offset": 1, "has_more": true, "request_id": "req_abc123" }}Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidQuery Parameters
Maximum number of records to return (1–100, default 20)
1 <= value <= 10020Number of records to skip (default 0)
0 <= value0Response Body
application/json
application/json
curl -X GET "https://example.com/patients/497f6eca-6276-4993-bfeb-53cbbbba6f08/immunisations"{ "data": [ {} ], "meta": { "limit": 20, "next_offset": 1, "has_more": true, "request_id": "req_abc123" }}