HM Courts & Tribunals Service Data API

The Data API from HM Courts & Tribunals Service — 2 operation(s) for data.

Operations 3

GET /data/case-type/{id} Fetch a Case Type Schema #
GET /data/jurisdictions/{jurisdiction_id}/case-type Get case types #
POST /data/jurisdictions/{jurisdiction_id}/case-type Create a new Case Type #

Specifications

SDKs

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-job-acknowledgement-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-entry-update-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-entry-create-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-application-code-get-detail-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-entry-get-detail-dto-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-entry-get-detail-dto-1-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-event-payload-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-hmac-credentials-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-client-subscription-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-client-subscription-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-rotate-secret-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-event-type-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-draft-validation-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-draft-validation-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-update-rule-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-rule-detail-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hmcts/refs/heads/main/json-schema/hmcts-rule-list-response-schema.json

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hmcts:hmcts-data-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

hmcts-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hmcts Data API
  version: 0.0.1
  description: 'Operations tagged Data across 2 of this provider''s published API definitions: ccd-data-store-definition.yaml, hmcts-core-case-data-definition-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://core-case-data.common-components.reform/api
tags:
- name: Data
paths:
  /data/case-type/{id}:
    get:
      summary: Fetch a Case Type Schema
      description: Returns the schema of a single case type.
      parameters:
      - name: id
        in: path
        description: Case Type ID
        required: true
        schema:
          type: string
      responses:
        200:
          description: A Case Type Schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseType'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Data
      operationId: getDataCaseTypeById
      x-operation-id-source: derived
    servers:
    - url: https://core-case-data.common-components.reform/api
  /data/jurisdictions/{jurisdiction_id}/case-type:
    parameters:
    - name: jurisdiction_id
      in: path
      description: ID for a Jurisdiction
      required: true
      schema:
        type: string
    get:
      summary: Get case types
      description: Get the case types as a list with optional jurisdiction filter
      responses:
        200:
          description: List of Case Types
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CaseType'
      tags:
      - Data
      operationId: getDataJurisdictionsByJurisdictionIdCaseType
      x-operation-id-source: derived
    post:
      summary: Create a new Case Type
      description: Create a new Case Type and return the object which was created
      responses:
        201:
          description: Successfully created a new Case Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseType'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseType'
        description: case type definition
        required: true
      tags:
      - Data
      operationId: postDataJurisdictionsByJurisdictionIdCaseType
      x-operation-id-source: derived
    servers:
    - url: https://core-case-data.common-components.reform/api
components:
  schemas:
    CaseState:
      type: object
      properties:
        id:
          type: string
        name:
          description: Short name to display.
          type: string
        description:
          type: string
      required:
      - id
    Error:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        fields:
          type: string
    CaseEventField:
      type: object
      properties:
        case_field_id:
          type: string
          description: Foriegn key to CaseField.id
        required:
          type: boolean
          description: whether this field is required for this event or not
      required:
      - case_field_id
      - required
    CaseEvents:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        case_fields:
          type: array
          items:
            $ref: '#/components/schemas/CaseEventField'
        valid_pre_states:
          type: array
          items:
            type: string
        post_state:
          type: string
      required:
      - id
      - name
    FieldType:
      type: object
      properties:
        name:
          type: string
    CaseField:
      type: object
      properties:
        id:
          type: string
          description: The id of the case field
        case_type_id:
          type: string
          description: Foriegn key to the case type as fields should not work across
        label:
          type: string
        hint_text:
          type: string
        field_type:
          $ref: '#/components/schemas/FieldType'
        hidden:
          type: boolean
        validation_expr:
          type: string
        security_label:
          type: string
          description: Gov security level of the data (official, top secret etc)
        live_from:
          type: string
        live_until:
          type: string
      required:
      - id
      - label
      - field_type
    CaseType:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for a Case Type.
        version:
          $ref: '#/components/schemas/Version'
        name:
          type: string
          description: Display name of the Case Type.
        jurisdiction:
          $ref: '#/components/schemas/Jurisdiction'
        events:
          type: array
          items:
            $ref: '#/components/schemas/CaseEvents'
        states:
          type: array
          items:
            $ref: '#/components/schemas/CaseState'
        case_fields:
          type: array
          items:
            $ref: '#/components/schemas/CaseField'
      required:
      - id
      - version
      - name
      - Jurisdiction
      - states
    Version:
      type: object
      properties:
        number:
          type: integer
          description: Sequantial version number
        live_from:
          type: string
          format: date-time
          description: Date and time from when this version is valid from
        live_until:
          type: string
          format: date-time
          description: Date and time this version is to be retired
      required:
      - number
      - live_from
    Jurisdiction:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        live_from:
          type: string
          format: date-time
        live_until:
          type: string
          format: date-time
      required:
      - id
      - name
x-refined-from:
- ccd-data-store-definition.yaml
- hmcts-core-case-data-definition-openapi.yml