GET
/transactional-api/patient/:patientId/prescriptionsList Prescriptions
Returns a patient's finalised prescriptions, most recently authorised first, each including its dispense/issue history.
Authorization: Bearer token (JWT). See Authentication.
Request
curl -L -X GET 'https://{tenantId}.api.england.medicus.health/transactional-api/patient/3fa85f64-5717-4562-b3fc-2c963f66afa6/prescriptions' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
Path and query parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
patientId | path | string<uuid> | Yes | Medicus patient identifier. |
startDate | query | string<date> | No | Earliest authorisedDate to return, as Y-m-d. |
endDate | query | string<date> | No | Latest authorisedDate to return, as Y-m-d. |
status | query | enum | No | One of: authorised, discontinued, reauthorised, requires-review. |
type | query | enum | No | One of: acute, repeat, variable-repeat, repeat-dispensing. |
startRow | query | integer | No | Zero-based index of the first row to return. Defaults to 0. |
endRow | query | integer | No | Exclusive index to return up to, so endRow minus startRow is the page size. Defaults to 50, and must be greater than startRow. |
Responses
200 Prescriptions for the patient.
Response fields
| Field | Type | Description |
|---|---|---|
totalCount | integer | Prescriptions matching the filters, ignoring paging. Request the next page while startRow plus the number returned is below this. |
prescriptions[].id | string<uuid> | |
prescriptions[].type | enum | One of: acute, repeat, variable-repeat, repeat-dispensing. |
prescriptions[].status | enum | One of: authorised, discontinued, reauthorised, requires-review. |
prescriptions[].product.conceptId | string (nullable) | |
prescriptions[].product.description | string (nullable) | |
prescriptions[].dosageInstructions | string | |
prescriptions[].dispenserInstructions | string (nullable) | |
prescriptions[].prescriberEndorsements | array<string> | Each item one of: cc, fs, acbs, af, sls. |
prescriptions[].startDate | string<date> (nullable) | |
prescriptions[].reviewDate | string<date> (nullable) | |
prescriptions[].authorisedDate | string<date> (nullable) | |
prescriptions[].discontinuedDate | string<date> (nullable) | |
prescriptions[].reasonDiscontinued | enum (nullable) | One of: change-to-medication-treatment-regime, clinical-contraindication, patients-request, pharmacists-request, prescribing-error, naturally-ended-due-to-inactivity, other-clinical-reason, unknown. |
prescriptions[].authorisedBy.practitioner.name | string (nullable) | |
prescriptions[].authorisedBy.practitioner.identifierType | enum (nullable) | One of: medicus-staff-id, medicus-referral-provider-practitioner-id, gb-nhs-gp-connect-practitioner-id, gb-gmc-number, gb-gphc-number, gb-hcpc-number, gb-nmc-pin, sds-user-id. |
prescriptions[].authorisedBy.practitioner.identifierValue | string (nullable) | |
prescriptions[].authorisedBy.organisation.name | string (nullable) | |
prescriptions[].authorisedBy.organisation.identifierType | enum (nullable) | One of: medicus-tenant-id, nhs-england-ods-code, medicus-referral-provider-id, third-party-system-organisation-id, unknown-identifier-type. |
prescriptions[].authorisedBy.organisation.identifierValue | string (nullable) | |
prescriptions[].discontinuedBy.practitioner.name | string (nullable) | |
prescriptions[].discontinuedBy.practitioner.identifierType | enum (nullable) | One of: medicus-staff-id, medicus-referral-provider-practitioner-id, gb-nhs-gp-connect-practitioner-id, gb-gmc-number, gb-gphc-number, gb-hcpc-number, gb-nmc-pin, sds-user-id. |
prescriptions[].discontinuedBy.practitioner.identifierValue | string (nullable) | |
prescriptions[].discontinuedBy.organisation.name | string (nullable) | |
prescriptions[].discontinuedBy.organisation.identifierType | enum (nullable) | One of: medicus-tenant-id, nhs-england-ods-code, medicus-referral-provider-id, third-party-system-organisation-id, unknown-identifier-type. |
prescriptions[].discontinuedBy.organisation.identifierValue | string (nullable) | |
prescriptions[].issues[].id | string<uuid> | |
prescriptions[].issues[].issueNumber | integer | |
prescriptions[].issues[].issueStatus | enum | One of: not-issued, issued. |
prescriptions[].issues[].issueMethod | enum (nullable) | One of: electronic-prescription-service, fp10ss-printed-script, handwritten-script, private-handwritten-script, private-printed-script, fp10-personally-administered, fp10-private-controlled-drug, gg-ps2016-printed-script, gg-private-printed-script, local-dispensary, unknown. |
prescriptions[].issues[].issueDate | string<date> (nullable) | |
prescriptions[].issues[].expectedDaysSupply | integer (nullable) | |
prescriptions[].issues[].quantity.value | string (nullable) | Always numeric, and may have a fractional part. Sent as a string so the recorded decimal precision is preserved exactly. |
prescriptions[].issues[].quantity.unit.conceptId | string (nullable) | |
prescriptions[].issues[].quantity.unit.description | string (nullable) | |
prescriptions[].issues[].issuedBy.practitioner.name | string (nullable) | |
prescriptions[].issues[].issuedBy.practitioner.identifierType | enum (nullable) | One of: medicus-staff-id, medicus-referral-provider-practitioner-id, gb-nhs-gp-connect-practitioner-id, gb-gmc-number, gb-gphc-number, gb-hcpc-number, gb-nmc-pin, sds-user-id. |
prescriptions[].issues[].issuedBy.practitioner.identifierValue | string (nullable) | |
prescriptions[].issues[].issuedBy.organisation.name | string (nullable) | |
prescriptions[].issues[].issuedBy.organisation.identifierType | enum (nullable) | One of: medicus-tenant-id, nhs-england-ods-code, medicus-referral-provider-id, third-party-system-organisation-id, unknown-identifier-type. |
prescriptions[].issues[].issuedBy.organisation.identifierValue | string (nullable) |
{
"totalCount": 42,
"prescriptions": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "repeat",
"status": "authorised",
"product": {
"conceptId": "322236009",
"description": "Amoxicillin 250mg capsules"
},
"dosageInstructions": "One capsule three times a day",
"dispenserInstructions": null,
"prescriberEndorsements": [],
"startDate": "2026-08-01",
"reviewDate": "2027-02-01",
"authorisedDate": "2026-08-01",
"discontinuedDate": null,
"reasonDiscontinued": null,
"authorisedBy": {
"practitioner": {
"name": "Dr Lara Lincoln",
"identifierType": "gb-gmc-number",
"identifierValue": "7654321"
},
"organisation": {
"name": "Riley House GP Practice",
"identifierType": "nhs-england-ods-code",
"identifierValue": "A12345"
}
},
"discontinuedBy": {
"practitioner": {
"name": null,
"identifierType": null,
"identifierValue": null
},
"organisation": {
"name": null,
"identifierType": null,
"identifierValue": null
}
},
"issues": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"issueNumber": 1,
"issueStatus": "issued",
"issueMethod": "electronic-prescription-service",
"issueDate": "2026-08-01",
"expectedDaysSupply": 28,
"quantity": {
"value": "21",
"unit": {
"conceptId": null,
"description": null
}
},
"issuedBy": {
"practitioner": {
"name": null,
"identifierType": null,
"identifierValue": null
},
"organisation": {
"name": null,
"identifierType": null,
"identifierValue": null
}
}
}
]
}
]
}
400 Validation error.
10 possible code values
| Code | Description | When |
|---|---|---|
invalid-patient-id | The patientId is not a UUID | patientId not a UUID |
invalid-start-date | The startDate is not a valid date in Y-m-d format. | startDate is not a valid Y-m-d date |
invalid-end-date | The endDate is not a valid date in Y-m-d format. | endDate is not a valid Y-m-d date |
invalid-status | The status is not a recognised prescription status. | status is not one of the known prescription statuses |
invalid-type | The type is not a recognised prescription type. | type is not one of the known prescription types |
invalid-start-row | The startRow must be a whole number of zero or more. | startRow is present but not a whole number of zero or more |
invalid-end-row | The endRow must be a whole number of zero or more. | endRow is present but not a whole number of zero or more |
invalid-row-range | The endRow must be greater than the startRow. | endRow is not greater than startRow, so the page size would be zero or negative |
patient-not-found | Patient not found for this patientId | patientId doesn't exist |
patient-restricted | Access to this patient is restricted for this staff member. | patient record is marked as restricted in Medicus; only explicitly permitted staff members can access it (not a configuration error, handle gracefully) |
Response fields
| Field | Type | Description |
|---|---|---|
errors[].code | string | |
errors[].description | string |
{
"errors": [
{
"code": "invalid-patient-id",
"description": "The patientId is not a UUID"
}
]
}