HMPPS Integration API v1.0
A long-lived API that exposes data from HMPPS systems such as the National Offender Management Information System (NOMIS), nDelius (probation system) and Offender Assessment System (OASys), providing a single point of entry for consumers.
Servers
Development server
Pre-production server, containing live data
Production
/v1/persons
get
Returns person(s) by search criteria, sorted by date of birth (newest first). At least one query parameter must be specified.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
first_name | query | string | false | The first name of the person |
last_name | query | string | false | The last name of the person |
pnc_number | query | string | false | A URL-encoded pnc identifier |
date_of_birth | query | string | false | The date of birth of the person |
search_within_aliases | query | boolean | false | Whether to return results that match the search criteria within the aliases of a person. |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully performed the query on upstream APIs. An empty list is returned when no results are found.
|
PaginatedResponsePerson |
400 |
There were no query parameters passed in. At least one must be specified.
|
BadRequest |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}
get
Returns a person.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found a person with the provided HMPPS ID.
|
DataResponseOffenderSearchResponse |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/status-information
get
Returns the status information associated with a person.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found status information for a person with the provided HMPPS ID.
|
PaginatedResponseStatusInformation |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/sentences
get
Returns sentences associated with a person, sorted by dateOfSentencing (newest first).
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found sentences for a person with the provided HMPPS ID.
|
PaginatedResponseSentence |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/sentences/latest-key-dates-and-adjustments
get
Returns the key dates and adjustments about a person’s release from prison for their latest sentence.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found latest sentence key dates and adjustments for a person with the provided HMPPS ID.
|
DataResponseLatestSentenceKeyDatesAndAdjustments |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/risks/serious-harm
get
Returns Risk of Serious Harm (ROSH) risks associated with a person. Returns only assessments completed in the last year. This endpoint does not serve LAO (Limited Access Offender) data.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found risks for a person with the provided HMPPS ID.
|
DataResponseRisks |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/risks/scores
get
Returns risk scores from the last year associated with a person, sorted by completedDate (newest first). This endpoint does not serve LAO (Limited Access Offender) data.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found risk scores for a person with the provided HMPPS ID.
|
PaginatedResponseRiskPredictorScore |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/risks/mappadetail
get
Returns the mappa detail related to a person.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found mappa detail for a person with the provided HMPPS ID.
|
DataResponseMappaDetail |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/risks/dynamic
get
Returns dynamic risks associated with a person.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found dynamic risks for a person with the provided HMPPS ID.
|
PaginatedResponseDynamicRisk |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/risks/categories
get
Returns the categories related to an offender.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found risk categories for a person with the provided HMPPS ID.
|
DataResponseRiskCategory |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/risk-management-plan
get
Returns a list of Risk Management Plans created for the person with the provided HMPPS ID.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found risk management plans for a person with the provided HMPPS ID.
|
PaginatedResponseRiskManagementPlan |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/reported-adjudications
get
Returns adjudications associated with a person, sorted by dateTimeOfIncident (newest first).
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
OK
|
PaginatedResponseAdjudication |
404 |
Failed to find adjudications for the person with the provided hmppsId.
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/protected-characteristics
get
Returns protected characteristics of a person.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
OK
|
DataResponsePersonProtectedCharacteristics |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/plp/inductionScheduleUpdated
get
Returns plp the induction schedule associated with a person.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found induction schedule for a person with the provided HMPPS ID.
|
DataResponseInductionSchedule |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/person-responsible-officer
get
Returns the person responsible officer associated with a person.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found the person responsible officer for a person with the provided HMPPS ID.
|
DataResponsePersonResponsibleOfficer |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/offences
get
Returns offences associated with a person, ordered by startDate (newest first). > Note: This API does not contain the complete list of offences for a person. > Offences are retrieved from Prison and Probation systems exclusively. > Prison systems record only custodial sentences, while Probation systems record only the main offence and some additional offences for case management purposes. Other offences recorded by HMCTS and police may not be included.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found offences for a person with the provided HMPPS ID.
|
PaginatedResponse |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/needs
get
Returns criminogenic needs associated with a person. This endpoint does not serve LAO (Limited Access Offender) data. Note: Criminogenic needs are dynamic factors that are directly linked to criminal behaviour. Eight criminogenic needs are measured in OASys: Accommodation, Employability, Relationships, Lifestyle and Associates, Drug Misuse, Alcohol Misuse, Thinking & Behaviour and Attitudes. These are scored according to whether there is “no need”, “some need” or “severe need”, and a need is identified in a specific section based on calculations around these scores. However, the process by which needs are assessed is changing as early as next year (2024), specifically moving to a strength-based model that seeks to identify and develop the strengths of people with convictions. As a consequence of this, the information provided by this endpoint will also change.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found criminogenic needs for a person with the provided HMPPS ID.
|
DataResponseNeeds |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/name
get
Returns a person’s name
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found a person with the provided HMPPS ID.
|
DataResponsePersonName |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/licences/conditions
get
Returns license conditions associated with a person, sorted by createdDateTime (newest first).
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found licenses for a person with the provided HMPPS ID.
|
DataResponsePersonLicences |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/images
get
Returns metadata of images associated with a person sorted by captureDateTime (newest first).
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found a person with the provided HMPPS ID. If a person doesn’t have any images, then an empty list (
|
PaginatedResponseImageMetadata |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/cell-location
get
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
OK
|
DataResponseCellLocation |
/v1/persons/{encodedHmppsId}/case-notes
get
Returns case notes associated with a person.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
startDate | query | string | false | Filter case notes from this date |
endDate | query | string | false | Filter case notes up to this date |
locationId | query | string | false | Filter by the location. example MDI |
page | query | integer | false | |
perPage | query | integer | false |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found case notes for a person with the provided HMPPS ID.
|
PaginatedResponseCaseNote |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/alerts
get
Returns alerts associated with a person, sorted by dateCreated (newest first).
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found alerts for a person with the provided HMPPS ID.
|
PaginatedResponseAlert |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/alerts/pnd
get
Returns alerts associated with a person, sorted by dateCreated (newest first).
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
page | query | string | false | The page number (starting from 1) |
perPage | query | string | false | The maximum number of results for a page |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found alerts for a person with the provided HMPPS ID.
|
PaginatedResponseAlert |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/persons/{encodedHmppsId}/addresses
get
Returns addresses associated with a person, ordered by startDate.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true | A URL-encoded HMPPS identifier |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found a person with the provided HMPPS ID.
|
DataResponseListAddress |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/images/{id}
get
Returns an image in bytes as a JPEG.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | integer | true |
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully found an image with the provided ID. |
|
404 |
Failed to find an image with the provided ID.
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
/v1/hmpps/reference-data
get
Returns probation and prison reference data codes descriptions for values returned by the API
Responses
Status | Description | Schema |
---|---|---|
200 |
Successfully returned prison and probation reference data.
|
Response |
500 |
Internal Server Error
|
InternalServerError |
/v1/hmpps/id/{encodedHmppsId}/nomis-number
get
Return NOMS number for a given hmpps Id
Accepts a HMPPS Id (hmppsId) and looks up the corresponding NOMS number.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedHmppsId | path | string | true |
Responses
Status | Description | Schema |
---|---|---|
200 |
OK
|
DataResponseNomisNumber |
404 |
NOMS number could not be found.
|
DataResponseNomisNumber |
400 |
Invalid hmppsId.
|
DataResponseNomisNumber |
/v1/hmpps/id/nomis-number/{encodedNomisNumber}
get
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
encodedNomisNumber | path | string | true |
Responses
Status | Description | Schema |
---|---|---|
200 |
OK
|
DataResponseHmppsId |
/v1/epf/person-details/{hmppsId}/{eventNumber}
get
Probation case information for the Effective Proposals Framework service
Accepts an HMPPS Id (hmppsId) and Delius Event number and returns a data structure giving background information on the probation case for use in the Effective Proposals Framework system. The information is used to reduce the need for the EPF user to re-key information already held in Delius.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
hmppsId | path | string | true | |
eventNumber | path | integer | true |
Responses
Status | Description | Schema |
---|---|---|
200 |
OK
|
ResponseCaseDetail |
404 |
Not Found
|
PersonNotFound |
500 |
Internal Server Error
|
InternalServerError |
Schemas
Alias
Name | Type | Required | Description | Schema |
---|---|---|---|---|
firstName | string | true | first name |
|
lastName | string | true | last name |
|
middleName | string | false | last name |
|
dateOfBirth | string | false | date of birth |
|
gender | string | false | gender |
|
ethnicity | string | false | ethnicity |
ContactDetailsWithEmailAndPhone
Name | Type | Required | Description | Schema |
---|---|---|---|---|
phoneNumbers | array | false | PhoneNumber | |
emails | array | false | A list of email addresses |
Identifiers
Other unique identifiers for a person.
Name | Type | Required | Description | Schema |
---|---|---|---|---|
nomisNumber | string | false | A prisoner identifier from NOMIS. |
|
croNumber | string | false | A Criminal Records Office identifier from National Identification Service (NIS) or National Automated Fingerprint Identification System (NAFIS). |
|
deliusCrn | string | false | A Case Reference Number from Delius. |
PaginatedResponsePerson
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | Person | |
pagination | object | true | Pagination |
Pagination
Name | Type | Required | Description | Schema |
---|---|---|---|---|
isLastPage | boolean | true | Is the current page the last one? |
|
count | integer | true | The number of results in |
|
page | integer | true | The current page number |
|
perPage | integer | true | The maximum number of results in |
|
totalCount | integer | true | The total number of results in |
|
totalPages | integer | true | The total number of pages |
Person
Name | Type | Required | Description | Schema |
---|---|---|---|---|
firstName | string | true | First name |
|
lastName | string | true | Last name |
|
middleName | string | false | Middle name |
|
dateOfBirth | string | false | Date of birth |
|
gender | string | false | Gender |
|
ethnicity | string | false | Ethnicity |
|
aliases | array | true | Alias | |
identifiers | object | true | Other unique identifiers for a person. |
Identifiers |
pncId | string | false | An identifier from the Police National Computer (PNC) |
|
hmppsId | string | false | HMPPS identifier |
|
contactDetails | object | false | ContactDetailsWithEmailAndPhone |
PhoneNumber
Name | Type | Required | Description | Schema |
---|---|---|---|---|
number | string | false | A phone number |
|
type | string | false | The type of number |
DataResponseOffenderSearchResponse
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | OffenderSearchResponse |
OffenderSearchResponse
Name | Type | Required | Description | Schema |
---|---|---|---|---|
prisonerOffenderSearch | object | false | Person | |
probationOffenderSearch | object | false | PersonOnProbation |
PersonOnProbation
Name | Type | Required | Description | Schema |
---|---|---|---|---|
person | object | false | Person | |
underActiveSupervision | boolean | true | ||
firstName | string | true | ||
lastName | string | true | ||
middleName | string | false | ||
dateOfBirth | string | false | ||
gender | string | false | ||
ethnicity | string | false | ||
aliases | array | true | Alias | |
identifiers | object | true | Other unique identifiers for a person. |
Identifiers |
pncId | string | false | ||
hmppsId | string | false | ||
contactDetails | object | false | ContactDetailsWithEmailAndPhone |
PaginatedResponseStatusInformation
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | StatusInformation | |
pagination | object | true | Pagination |
StatusInformation
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | ||
description | string | false | ||
startDate | string | false | ||
reviewDate | string | false | ||
notes | string | false |
PaginatedResponseSentence
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | Sentence | |
pagination | object | true | Pagination |
Sentence
Name | Type | Required | Description | Schema |
---|---|---|---|---|
serviceSource | string | true |
|
|
systemSource | string | true |
|
|
dateOfSentencing | string | false | Date of sentencing |
|
description | string | false | Description of the sentence |
|
isActive | boolean | false | Whether the sentence is active |
|
isCustodial | boolean | true | Whether the sentence is custodial |
|
fineAmount | number | false | The amount of fine related to the sentence and offence |
|
length | object | true | SentenceLength |
SentenceLength
Name | Type | Required | Description | Schema |
---|---|---|---|---|
duration | integer | false | Duration of the sentence |
|
units | string | false |
|
|
terms | array | true | SentenceTerm |
SentenceTerm
Name | Type | Required | Description | Schema |
---|---|---|---|---|
years | integer | false | Number of years in the term |
|
months | integer | false | Number of months in the term |
|
weeks | integer | false | Number of weeks in the term |
|
days | integer | false | Number of days in the term |
|
hours | integer | false | Number of hours in the term |
|
prisonTermCode | string | false |
|
DataResponseLatestSentenceKeyDatesAndAdjustments
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | LatestSentenceKeyDatesAndAdjustments |
HomeDetentionCurfewDate
Name | Type | Required | Description | Schema |
---|---|---|---|---|
actualDate | string | false | ||
eligibilityCalculatedDate | string | false | ||
eligibilityDate | string | false | ||
eligibilityOverrideDate | string | false | ||
endDate | string | false |
LatestSentenceKeyDatesAndAdjustments
Name | Type | Required | Description | Schema |
---|---|---|---|---|
adjustments | object | false | SentenceAdjustment | |
automaticRelease | object | false | SentenceKeyDate | |
conditionalRelease | object | false | SentenceKeyDate | |
dtoPostRecallRelease | object | false | SentenceKeyDate | |
earlyTerm | object | false | SentenceKeyDateWithCalculatedDate | |
homeDetentionCurfew | object | false | HomeDetentionCurfewDate | |
lateTerm | object | false | SentenceKeyDateWithCalculatedDate | |
licenceExpiry | object | false | SentenceKeyDateWithCalculatedDate | |
midTerm | object | false | SentenceKeyDateWithCalculatedDate | |
nonDto | object | false | NonDtoDate | |
nonParole | object | false | SentenceKeyDate | |
paroleEligibility | object | false | SentenceKeyDateWithCalculatedDate | |
postRecallRelease | object | false | SentenceKeyDate | |
release | object | false | ReleaseDate | |
sentence | object | false | SentenceDate | |
topupSupervision | object | false | TopupSupervision | |
actualParoleDate | string | false | the offender’s actual parole date |
|
earlyRemovalSchemeEligibilityDate | string | false | the date on which offender will be eligible for early removal (under the Early Removal Scheme for foreign nationals). |
|
releaseOnTemporaryLicenceDate | string | false | the date on which offender will be released on temporary licence. |
|
tariffDate | string | false | date on which minimum term is reached for parole (indeterminate/life sentences). |
|
tariffEarlyRemovalSchemeEligibilityDate | string | false | tariffEarlyRemovalSchemeEligibilityDate. |
NonDtoDate
Name | Type | Required | Description | Schema |
---|---|---|---|---|
date | string | false | Release date for non-DTO sentence (if applicable). This will be based on one of ARD, CRD, NPD or PRRD. NonDto stands for Non-Detention training order. |
|
releaseDateType | string | false |
|
ReleaseDate
Name | Type | Required | Description | Schema |
---|---|---|---|---|
date | string | false |
|
|
confirmedDate | string | false | Confirmed release date for offender. |
SentenceAdjustment
Name | Type | Required | Description | Schema |
---|---|---|---|---|
additionalDaysAwarded | number | false | Number of additional days awarded |
|
unlawfullyAtLarge | number | false | Number unlawfully at large days |
|
lawfullyAtLarge | number | false | Number of lawfully at large days |
|
restoredAdditionalDaysAwarded | number | false | Number of restored additional days awarded |
|
specialRemission | number | false | Number of special remission days |
|
recallSentenceRemand | number | false | Number of recall sentence remand days |
|
recallSentenceTaggedBail | number | false | Number of recall sentence tagged bail days |
|
remand | number | false | Number of remand days |
|
taggedBail | number | false | Number of tagged bail days |
|
unusedRemand | number | false | Number of unused remand days |
SentenceDate
Name | Type | Required | Description | Schema |
---|---|---|---|---|
effectiveEndDate | string | false | Effective sentence end date. |
|
expiryCalculatedDate | string | false | date on which sentence expired (as calculated by NOMIS). |
|
expiryDate | string | false | date on which sentence expires. |
|
expiryOverrideDate | string | false | date on which sentence expires (override). |
|
startDate | string | false | Sentence start date. |
SentenceKeyDate
Name | Type | Required | Description | Schema |
---|---|---|---|---|
date | string | false | release date for offender |
|
overrideDate | string | false | release override date for offender |
SentenceKeyDateWithCalculatedDate
Name | Type | Required | Description | Schema |
---|---|---|---|---|
date | string | false | release date for offender |
|
overrideDate | string | false | release override date for offender |
|
calculatedDate | string | false | release calculated date for offender |
TopupSupervision
Name | Type | Required | Description | Schema |
---|---|---|---|---|
expiryCalculatedDate | string | false | (calculated) - top-up supervision expiry date for offender. |
|
expiryDate | string | false | top-up supervision expiry date for offender. |
|
expiryOverrideDate | string | false | (override) - top-up supervision expiry date for offender. |
|
startDate | string | false | Top-up supervision start date for offender - calculated as licence end date + 1 day or releaseDate if licence end date not set. |
DataResponseRisks
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | Risks |
OtherRisks
Name | Type | Required | Description | Schema |
---|---|---|---|---|
escapeOrAbscond | string | false |
|
|
controlIssuesDisruptiveBehaviour | string | false |
|
|
breachOfTrust | string | false |
|
|
riskToOtherPrisoners | string | false |
|
Risk
Name | Type | Required | Description | Schema |
---|---|---|---|---|
risk | string | false |
|
|
previous | string | false |
|
|
previousConcernsText | string | false | Supporting comments for any previous concerns. |
|
current | string | false |
|
|
currentConcernsText | string | false | Supporting comments for any current concerns. |
RiskSummary
Name | Type | Required | Description | Schema |
---|---|---|---|---|
whoIsAtRisk | string | false | Who is at risk |
|
natureOfRisk | string | false | What is the nature of the risk |
|
riskImminence | string | false | When is the risk likely to be greatest. Consider the timescale and indicate whether risk is immediate or not. Consider the risks in custody as well as on release. |
|
riskIncreaseFactors | string | false | What circumstances are likely to increase risk. Describe factors, actions, events which might increase level of risk, now and in the future. |
|
riskMitigationFactors | string | false | What factors are likely to reduce the risk. Describe factors, actions, and events which may reduce or contain the level of risk. What has previously stopped them? |
|
overallRiskLevel | string | false | The overall risk level |
|
riskInCommunity | object | false | Assess the risk of serious harm the offender poses on the basis that they could be released imminently back into the community. This field is a map which can return all or some of the properties given. |
|
riskInCustody | object | false | Assess both the risk of serious harm the offender presents now, in custody, and the risk they could present to others whilst in a custodial setting. This field is a map which can return all or some of the properties given. |
RiskToSelf
Name | Type | Required | Description | Schema |
---|---|---|---|---|
suicide | object | true | Risk | |
selfHarm | object | true | Risk | |
custody | object | true | Risk | |
hostelSetting | object | true | Risk | |
vulnerability | object | true | Risk |
Risks
Name | Type | Required | Description | Schema |
---|---|---|---|---|
assessedOn | string | false | Date of risk assessment |
|
riskToSelf | object | true | RiskToSelf | |
otherRisks | object | true | OtherRisks | |
summary | object | true | RiskSummary |
GeneralPredictor
Name | Type | Required | Description | Schema |
---|---|---|---|---|
scoreLevel | string | false |
|
GroupReconviction
Name | Type | Required | Description | Schema |
---|---|---|---|---|
scoreLevel | string | false |
|
PaginatedResponseRiskPredictorScore
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | RiskPredictorScore | |
pagination | object | true | Pagination |
RiskOfSeriousRecidivism
Name | Type | Required | Description | Schema |
---|---|---|---|---|
scoreLevel | string | false |
|
RiskPredictorScore
Name | Type | Required | Description | Schema |
---|---|---|---|---|
completedDate | string | false | Risk scores calculation completion date |
|
assessmentStatus | string | false |
|
|
generalPredictor | object | true | GeneralPredictor | |
violencePredictor | object | true | ViolencePredictor | |
groupReconviction | object | true | GroupReconviction | |
riskOfSeriousRecidivism | object | true | RiskOfSeriousRecidivism | |
sexualPredictor | object | true | SexualPredictor |
SexualPredictor
Name | Type | Required | Description | Schema |
---|---|---|---|---|
indecentScoreLevel | string | false |
|
|
contactScoreLevel | string | false |
|
ViolencePredictor
Name | Type | Required | Description | Schema |
---|---|---|---|---|
scoreLevel | string | false |
|
DataResponseMappaDetail
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | MappaDetail |
MappaDetail
Name | Type | Required | Description | Schema |
---|---|---|---|---|
level | number | false | ||
levelDescription | string | false | ||
category | number | false | ||
categoryDescription | string | false | ||
startDate | string | false | ||
reviewDate | string | false | ||
notes | string | false |
DynamicRisk
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | ||
description | string | false | ||
startDate | string | false | ||
reviewDate | string | false | ||
notes | string | false |
PaginatedResponseDynamicRisk
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | DynamicRisk | |
pagination | object | true | Pagination |
DataResponseRiskCategory
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | RiskCategory |
RiskAssessment
Name | Type | Required | Description | Schema |
---|---|---|---|---|
classificationCode | string | false | The classification code of the risk |
|
classification | string | false | The classification of the code |
|
assessmentCode | string | false | The assessment code |
|
assessmentDescription | string | false | The description of the assessment |
|
assessmentDate | string | false | The date of the assessment |
|
nextReviewDate | string | false | Next review date |
|
assessmentAgencyId | string | false | Agency ID of the assessment |
|
assessmentStatus | string | false | The status of the assessment |
|
assessmentComment | string | false | Comments regarding the assessment |
RiskCategory
Name | Type | Required | Description | Schema |
---|---|---|---|---|
offenderNo | string | false | ||
assessments | array | true | RiskAssessment | |
category | string | false | ||
categoryCode | string | false |
PaginatedResponseRiskManagementPlan
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | RiskManagementPlan | |
pagination | object | true | Pagination |
RiskManagementPlan
Name | Type | Required | Description | Schema |
---|---|---|---|---|
assessmentId | string | true | The unique ID of the risk management plan |
|
dateCompleted | string | true | The date that the risk management plan was completed |
|
initiationDate | string | true | The date of plan initiation |
|
assessmentStatus | string | true | The status of the plan |
|
assessmentType | string | true | The type of assessment |
|
keyInformationCurrentSituation | string | true | Key information about the current situation of the subject being assessed |
|
furtherConsiderationsCurrentSituation | string | true | Further considerations about the situation of the subject being assessed |
|
supervision | string | true | Who they see, when and why, any support they get from their community, and how well they’re desisting from problematic behaviour |
|
monitoringAndControl | string | true | Information on restrictions in place to prevent reoffending, what steps have been taken to monitor potential reoffending, including license conditions, community order requirements, PPM restrictions and such. |
|
interventionsAndTreatment | string | true | Interventions delivered to develop controls and protective factors to reduce risk of reoffending, including practical support, requirements to support interventions and details of who and where these interventions will be administered. |
|
victimSafetyPlanning | string | true | Restrictions in place to specifically protect victims of, adults known to, and children potentially at risk from the offender. |
|
contingencyPlans | string | true | Future plans in the form “If X happens, we will do Y….” for if parts of the risk management plan break down or requirements or restrictions are breached by the offender. |
|
latestSignLockDate | string | true | An assessment is considered ‘Signed and locked’ once it is signed by the assessor, making the plan read-only. This is the date the plan has been signed by the assessor. |
|
latestCompleteDate | string | true | Once a countersignature has been applied to the plan, the plan is considered complete. This is the date the plan has been countersigned. |
Adjudication
Name | Type | Required | Description | Schema |
---|---|---|---|---|
incidentDetails | object | false | IncidentDetailsDto | |
isYouthOffender | boolean | false | ||
incidentRole | object | false | IncidentRoleDto | |
offenceDetails | object | false | OffenceDto | |
status | string | false | ||
statusReason | string | false | ||
statusDetails | string | false | ||
hearings | array | false | HearingDto | |
outcomes | array | false | OutcomeHistoryDto | |
punishments | array | false | PunishmentDto | |
punishmentComments | array | false | PunishmentCommentDto |
CombinedOutcomeDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
outcome | object | false | OutcomeDto | |
referralOutcome | object | false | OutcomeDto |
HearingDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
dateTimeOfHearing | string | false | ||
oicHearingType | string | false | ||
outcome | object | false | HearingOutcomeDto |
HearingOutcomeDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | ||
reason | string | false | ||
details | string | false | ||
plea | string | false |
IncidentDetailsDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
dateTimeOfIncident | string | false |
IncidentRoleDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
roleCode | string | false | ||
offenceRule | object | false | OffenceRuleDetailsDto |
OffenceDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
offenceCode | number | false | ||
offenceRule | object | false | OffenceRuleDto |
OffenceRuleDetailsDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
paragraphNumber | string | false | ||
paragraphDescription | string | false |
OffenceRuleDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
paragraphNumber | string | false | ||
paragraphDescription | string | false |
OutcomeDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | ||
details | string | false | ||
reason | string | false | ||
quashedReason | string | false | ||
canRemove | boolean | false |
OutcomeHistoryDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
hearing | object | false | HearingDto | |
outcome | object | false | CombinedOutcomeDto |
PaginatedResponseAdjudication
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | Adjudication | |
pagination | object | true | Pagination |
PunishmentCommentDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
comment | string | false | ||
reasonForChange | string | false | ||
dateTime | string | false |
PunishmentDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
type | string | false | ||
privilegeType | string | false | ||
otherPrivilege | string | false | ||
schedule | object | false | PunishmentScheduleDto |
PunishmentScheduleDto
Name | Type | Required | Description | Schema |
---|---|---|---|---|
days | number | false | ||
startDate | string | false | ||
endDate | string | false | ||
suspendedUntil | string | false |
DataResponsePersonProtectedCharacteristics
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | PersonProtectedCharacteristics |
Disability
Name | Type | Required | Description | Schema |
---|---|---|---|---|
disabilityType | object | false | KeyValue | |
condition | object | false | KeyValue | |
startDate | string | false | ||
endDate | string | false | ||
notes | string | false |
KeyValue
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | ||
description | string | false |
PersonProtectedCharacteristics
Name | Type | Required | Description | Schema |
---|---|---|---|---|
age | number | true | Age of the person |
|
gender | string | false | Gender of the person |
|
sexualOrientation | string | false | Sexual orientation of the person |
|
ethnicity | string | false | Ethnicity of the person |
|
nationality | string | false | Nationality of the person |
|
religion | string | false | Religion of the person |
|
disabilities | array | true | Disability | |
maritalStatus | string | false | Marital status of the person |
|
reasonableAdjustments | array | true | ReasonableAdjustment |
ReasonableAdjustment
Name | Type | Required | Description | Schema |
---|---|---|---|---|
treatmentCode | string | false | Treatment code |
|
commentText | string | false | Comment text |
|
startDate | string | false | Start date |
|
endDate | string | false | End date |
|
treatmentDescription | string | false | Treatment description |
DataResponseInductionSchedule
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | InductionSchedule |
InductionSchedule
Name | Type | Required | Description | Schema |
---|---|---|---|---|
deadlineDate | string | false | An ISO-8601 date representing when the Induction should be completed by. |
|
scheduleStatus | string | false | The current status of the Induction Schedule |
|
scheduleCalculationRule | string | false | The Induction Schedule rule used to determine deadline date. |
|
nomisNumber | string | false | The Nomis number of the person. |
CommunityOffenderManager
Name | Type | Required | Description | Schema |
---|---|---|---|---|
name | object | true | PersonResponsibleOfficerName | |
string | false | |||
telephoneNumber | string | false | ||
team | object | true | PersonResponsibleOfficerTeam |
DataResponsePersonResponsibleOfficer
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | PersonResponsibleOfficer |
PersonResponsibleOfficer
Name | Type | Required | Description | Schema |
---|---|---|---|---|
prisonOffenderManager | object | true | PrisonOffenderManager | |
communityOffenderManager | object | true | CommunityOffenderManager |
PersonResponsibleOfficerName
Name | Type | Required | Description | Schema |
---|---|---|---|---|
forename | string | false | ||
surname | string | false |
PersonResponsibleOfficerTeam
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | ||
description | string | false | ||
string | false | |||
telephoneNumber | string | false |
Prison
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | The prison code, which is usually short for the prison name. |
PrisonOffenderManager
Name | Type | Required | Description | Schema |
---|---|---|---|---|
forename | string | false | ||
surname | string | false | ||
prison | object | true | Prison |
PaginatedResponse
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | ||
pagination | object | true | Pagination |
DataResponseNeeds
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | Needs |
Need
Name | Type | Required | Description | Schema |
---|---|---|---|---|
type | string | false | The type of need |
|
riskOfHarm | boolean | false | Risk of harm |
|
riskOfReoffending | boolean | false | Risk of reoffending |
|
severity | string | false | Severity of need |
Needs
Name | Type | Required | Description | Schema |
---|---|---|---|---|
assessedOn | string | false | Needs assessment completion date |
|
identifiedNeeds | array | true | Need | |
notIdentifiedNeeds | array | true | Need | |
unansweredNeeds | array | true | Need |
DataResponsePersonName
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | PersonName |
PersonName
Name | Type | Required | Description | Schema |
---|---|---|---|---|
firstName | string | false | ||
lastName | string | false |
DataResponsePersonLicences
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | PersonLicences |
Licence
Name | Type | Required | Description | Schema |
---|---|---|---|---|
status | string | false | ||
typeCode | string | false | ||
createdDate | string | false | ||
approvedDate | string | false | ||
updatedDate | string | false | ||
conditions | array | true | LicenceCondition |
LicenceCondition
Name | Type | Required | Description | Schema |
---|---|---|---|---|
type | string | false | ||
code | string | false | ||
category | string | false | ||
condition | string | false |
PersonLicences
Name | Type | Required | Description | Schema |
---|---|---|---|---|
hmppsId | string | true | ||
offenderNumber | string | false | ||
licences | array | true | Licence |
ImageMetadata
Name | Type | Required | Description | Schema |
---|---|---|---|---|
id | integer | true | The Image ID, in reference to a unique identifier. |
|
active | boolean | true | A flag to indicate whether an image is in active use. It is no guarantee that the latest uploaded image will be the active one. |
|
captureDateTime | string | true | The Date and Time of when the image was captured. |
|
view | string | true |
|
|
orientation | string | true |
|
|
type | string | true |
|
PaginatedResponseImageMetadata
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | ImageMetadata | |
pagination | object | true | Pagination |
CellLocation
Name | Type | Required | Description | Schema |
---|---|---|---|---|
prisonCode | string | false | ||
prisonName | string | false | ||
cell | string | false |
DataResponseCellLocation
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | CellLocation |
CaseNote
Name | Type | Required | Description | Schema |
---|---|---|---|---|
caseNoteId | string | false | ||
offenderIdentifier | string | false | ||
type | string | false | ||
typeDescription | string | false | ||
subType | string | false | ||
subTypeDescription | string | false | ||
creationDateTime | string | false | Date and Time of Case Note creation |
|
occurrenceDateTime | string | false | Date and Time of when case note contact with offender was made |
|
text | string | false | ||
locationId | string | false | ||
sensitive | boolean | true | ||
amendments | array | true | List of amendments to the case note |
CaseNoteAmendment |
CaseNoteAmendment
List of amendments to the case note
Name | Type | Required | Description | Schema |
---|---|---|---|---|
caseNoteAmendmentId | integer | false | ||
creationDateTime | string | false | Date and Time of Case Note creation |
|
additionalNoteText | string | false |
PaginatedResponseCaseNote
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | CaseNote | |
pagination | object | true | Pagination |
Alert
Name | Type | Required | Description | Schema |
---|---|---|---|---|
offenderNo | string | false | Offender unique reference |
|
type | string | false | Alert type |
|
typeDescription | string | false | Alert type description |
|
code | string | false | Alert code |
|
codeDescription | string | false | Alert code description |
|
comment | string | false | Alert comment |
|
dateCreated | string | false | Date of the alert, which might differ from the date it was created |
|
dateExpired | string | false | Date that the alert expires |
|
expired | boolean | false | Whether the alert has expired |
|
active | boolean | false | Whether the alert is active |
PaginatedResponseAlert
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | Alert | |
pagination | object | true | Pagination |
Address
Name | Type | Required | Description | Schema |
---|---|---|---|---|
country | string | false | ||
county | string | false | ||
endDate | string | false | ||
locality | string | false | ||
name | string | false | ||
noFixedAddress | boolean | true | Indicates whether the person has a permanent place of residence |
|
number | string | false | ||
postcode | string | false | ||
startDate | string | false | ||
street | string | false | ||
town | string | false | ||
types | array | true | Type | |
notes | string | false |
DataResponseListAddress
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | array | true | Address |
Type
Type or usage of address, for example Business Address
, Home Address
, Work Address
.
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | Address type code, for example: |
|
description | string | false | Description of address type, for example: |
Response
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | ||
errors | array | true | UpstreamApiError |
UpstreamApiError
Name | Type | Required | Description | Schema |
---|---|---|---|---|
causedBy | string | true | ||
type | string | true | ||
description | string | false |
DataResponseNomisNumber
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | NomisNumber |
NomisNumber
Name | Type | Required | Description | Schema |
---|---|---|---|---|
nomisNumber | string | false |
DataResponseHmppsId
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | HmppsId |
HmppsId
Name | Type | Required | Description | Schema |
---|---|---|---|---|
hmppsId | string | false |
CaseDetail
Name | Type | Required | Description | Schema |
---|---|---|---|---|
nomsId | string | false | ||
name | object | false | Name | |
dateOfBirth | string | false | ||
gender | string | false | ||
courtAppearance | object | false | CourtAppearance | |
sentence | object | false | CaseSentence | |
responsibleProvider | object | false | ResponsibleProvider | |
ogrsScore | integer | false | ||
rsrScore | number | false | ||
age | integer | false | ||
ageAtRelease | integer | false |
CaseSentence
Name | Type | Required | Description | Schema |
---|---|---|---|---|
date | string | false | ||
sentencingCourt | object | false | SentencingCourt | |
releaseDate | string | false | ||
expectedReleaseDate | string | false |
CourtAppearance
Name | Type | Required | Description | Schema |
---|---|---|---|---|
date | string | false | ||
court | object | false | CourtDetails |
CourtDetails
Name | Type | Required | Description | Schema |
---|---|---|---|---|
name | string | false | The name of the court |
Name
Name | Type | Required | Description | Schema |
---|---|---|---|---|
forename | string | false | ||
middleName | string | false | ||
surname | string | false |
ResponseCaseDetail
Name | Type | Required | Description | Schema |
---|---|---|---|---|
data | object | true | CaseDetail | |
errors | array | true | UpstreamApiError |
ResponsibleProvider
Name | Type | Required | Description | Schema |
---|---|---|---|---|
code | string | false | ||
name | string | false |
SentencingCourt
Name | Type | Required | Description | Schema |
---|---|---|---|---|
name | string | false |
BadRequest
Name | Type | Required | Description | Schema |
---|---|---|---|---|
status | number | false | ||
userMessage | string | false | ||
developerMessage | string | false |
PersonNotFound
Failed to find a person with the provided HMPPS ID.
Name | Type | Required | Description | Schema |
---|---|---|---|---|
status | number | false | ||
userMessage | string | false | ||
developerMessage | string | false |
InternalServerError
An upstream service was not responding, so we cannot verify the accuracy of any data we did get.
Name | Type | Required | Description | Schema |
---|---|---|---|---|
status | number | false | ||
userMessage | string | false | ||
developerMessage | string | false |
OpenAPI Specification
View our OpenAPI specification file in JSON format.