Skip to main content
GET/transactional-api/patient/:patientId/prescriptions

List 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

NameInTypeRequiredDescription
patientIdpathstring<uuid>YesMedicus patient identifier.
startDatequerystring<date>NoEarliest authorisedDate to return, as Y-m-d.
endDatequerystring<date>NoLatest authorisedDate to return, as Y-m-d.
statusqueryenumNoOne of: authorised, discontinued, reauthorised, requires-review.
typequeryenumNoOne of: acute, repeat, variable-repeat, repeat-dispensing.
startRowqueryintegerNoZero-based index of the first row to return. Defaults to 0.
endRowqueryintegerNoExclusive 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

FieldTypeDescription
totalCountintegerPrescriptions matching the filters, ignoring paging. Request the next page while startRow plus the number returned is below this.
prescriptions[].idstring<uuid>
prescriptions[].typeenumOne of: acute, repeat, variable-repeat, repeat-dispensing.
prescriptions[].statusenumOne of: authorised, discontinued, reauthorised, requires-review.
prescriptions[].product.conceptIdstring (nullable)
prescriptions[].product.descriptionstring (nullable)
prescriptions[].dosageInstructionsstring
prescriptions[].dispenserInstructionsstring (nullable)
prescriptions[].prescriberEndorsementsarray<string>Each item one of: cc, fs, acbs, af, sls.
prescriptions[].startDatestring<date> (nullable)
prescriptions[].reviewDatestring<date> (nullable)
prescriptions[].authorisedDatestring<date> (nullable)
prescriptions[].discontinuedDatestring<date> (nullable)
prescriptions[].reasonDiscontinuedenum (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.namestring (nullable)
prescriptions[].authorisedBy.practitioner.identifierTypeenum (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.identifierValuestring (nullable)
prescriptions[].authorisedBy.organisation.namestring (nullable)
prescriptions[].authorisedBy.organisation.identifierTypeenum (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.identifierValuestring (nullable)
prescriptions[].discontinuedBy.practitioner.namestring (nullable)
prescriptions[].discontinuedBy.practitioner.identifierTypeenum (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.identifierValuestring (nullable)
prescriptions[].discontinuedBy.organisation.namestring (nullable)
prescriptions[].discontinuedBy.organisation.identifierTypeenum (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.identifierValuestring (nullable)
prescriptions[].issues[].idstring<uuid>
prescriptions[].issues[].issueNumberinteger
prescriptions[].issues[].issueStatusenumOne of: not-issued, issued.
prescriptions[].issues[].issueMethodenum (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[].issueDatestring<date> (nullable)
prescriptions[].issues[].expectedDaysSupplyinteger (nullable)
prescriptions[].issues[].quantity.valuestring (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.conceptIdstring (nullable)
prescriptions[].issues[].quantity.unit.descriptionstring (nullable)
prescriptions[].issues[].issuedBy.practitioner.namestring (nullable)
prescriptions[].issues[].issuedBy.practitioner.identifierTypeenum (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.identifierValuestring (nullable)
prescriptions[].issues[].issuedBy.organisation.namestring (nullable)
prescriptions[].issues[].issuedBy.organisation.identifierTypeenum (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.identifierValuestring (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
CodeDescriptionWhen
invalid-patient-idThe patientId is not a UUIDpatientId not a UUID
invalid-start-dateThe startDate is not a valid date in Y-m-d format.startDate is not a valid Y-m-d date
invalid-end-dateThe endDate is not a valid date in Y-m-d format.endDate is not a valid Y-m-d date
invalid-statusThe status is not a recognised prescription status.status is not one of the known prescription statuses
invalid-typeThe type is not a recognised prescription type.type is not one of the known prescription types
invalid-start-rowThe startRow must be a whole number of zero or more.startRow is present but not a whole number of zero or more
invalid-end-rowThe endRow must be a whole number of zero or more.endRow is present but not a whole number of zero or more
invalid-row-rangeThe endRow must be greater than the startRow.endRow is not greater than startRow, so the page size would be zero or negative
patient-not-foundPatient not found for this patientIdpatientId doesn't exist
patient-restrictedAccess 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

FieldTypeDescription
errors[].codestring
errors[].descriptionstring
{
"errors": [
{
"code": "invalid-patient-id",
"description": "The patientId is not a UUID"
}
]
}