HM Courts & Tribunals Service · Schema
DraftValidationRequest
CompanyGovernmentCourtsJusticePublic SectorUnited Kingdom
Properties
| Name | Type | Description |
|---|---|---|
| hearingId | string | Hearing identifier |
| caseId | string | Case identifier (optional, for log correlation) |
| hearingDay | string | Date of hearing |
| courtType | string | Court type |
| resultLines | array | |
| defendants | array | |
| offences | array |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/hmcts/main/json-schema/hmcts-draft-validation-request-schema.json",
"title": "DraftValidationRequest",
"x-generated": "2026-10-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/hmcts-results-validation-service-openapi.yml#/components/schemas/DraftValidationRequest",
"type": "object",
"required": [
"hearingId",
"hearingDay",
"courtType",
"resultLines",
"defendants",
"offences"
],
"properties": {
"hearingId": {
"type": "string",
"description": "Hearing identifier"
},
"caseId": {
"type": "string",
"description": "Case identifier (optional, for log correlation)"
},
"hearingDay": {
"type": "string",
"format": "date",
"description": "Date of hearing"
},
"courtType": {
"type": "string",
"enum": [
"MAGISTRATES",
"CROWN",
"YOUTH"
],
"description": "Court type"
},
"resultLines": {
"type": "array",
"items": {
"$ref": "#/$defs/ResultLineDto"
}
},
"defendants": {
"type": "array",
"items": {
"$ref": "#/$defs/DefendantDto"
}
},
"offences": {
"type": "array",
"items": {
"$ref": "#/$defs/OffenceDto"
}
}
},
"$defs": {
"DefendantDto": {
"type": "object",
"required": [
"defendantId",
"firstName",
"lastName"
],
"properties": {
"defendantId": {
"type": "string",
"description": "Defendant identifier"
},
"firstName": {
"type": "string",
"description": "Defendant first name"
},
"lastName": {
"type": "string",
"description": "Defendant last name"
},
"masterDefendantId": {
"type": "string",
"description": "Master defendant identifier for linked cases (same person across cases)"
},
"dateOfBirth": {
"type": "string",
"format": "date",
"description": "Defendant's date of birth. Optional during the transition period while callers are updated to populate it."
}
}
},
"OffenceDto": {
"type": "object",
"required": [
"offenceId",
"offenceCode",
"offenceTitle"
],
"properties": {
"offenceId": {
"type": "string",
"description": "Offence identifier"
},
"offenceCode": {
"type": "string",
"description": "Offence code (e.g. TH68001)"
},
"offenceTitle": {
"type": "string",
"description": "Offence description"
},
"hasActiveElectronicMonitoring": {
"type": "boolean",
"description": "Active electronic monitoring indicator"
},
"orderIndex": {
"type": "integer",
"description": "Offence order index (count number) for display in validation messages"
},
"caseUrn": {
"type": "string",
"description": "Case URN (prosecution case reference) for identifying which case this offence belongs to"
},
"hasExistingCtlRecord": {
"type": "boolean",
"description": "True if a Custody Time Limit record is already associated with this offence from a previous hearing. When true the CTL missing check (DR-CTL-001) is suppressed."
},
"isConvicted": {
"type": "boolean",
"description": "True if this offence is convicted (guilty plea, finding of guilt, or a recorded date of conviction). When true the CTL missing check (DR-CTL-001) is suppressed."
}
}
},
"Prompt": {
"type": "object",
"required": [
"promptRef",
"promptValue"
],
"properties": {
"promptRef": {
"type": "string",
"description": "Identifies the data field this prompt captures (e.g. endDate, endDateOfTagging)."
},
"promptValue": {
"type": "string",
"description": "The raw string value entered for this prompt."
}
}
},
"ResultLineDto": {
"type": "object",
"required": [
"resultLineId",
"shortCode",
"label",
"defendantId",
"offenceId"
],
"properties": {
"resultLineId": {
"type": "string",
"description": "Result line identifier"
},
"shortCode": {
"type": "string",
"description": "Result code (e.g. IMP, EMONE)"
},
"label": {
"type": "string",
"description": "Display label"
},
"defendantId": {
"type": "string",
"description": "Reference to defendant"
},
"offenceId": {
"type": "string",
"description": "Reference to offence"
},
"isConcurrent": {
"type": "boolean",
"description": "Whether this sentence is concurrent with another"
},
"consecutiveToOffence": {
"type": "string",
"description": "Offence identifier that this sentence is consecutive to"
},
"category": {
"type": "string",
"enum": [
"A",
"I",
"F"
],
"description": "Closed enum identifying the role of this result line on the offence: A = Ancillary (e.g. adjournment, listing); I = Intermediary (e.g. plea, hearing-internal); F = Final (the line that makes the offence inactive)."
},
"prompts": {
"type": "array",
"items": {
"$ref": "#/$defs/Prompt"
},
"description": "Structured data fields captured alongside the result line."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/hmcts-draft-validation-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.