HM Courts & Tribunals Service Jobs API

Background job operations for asynchronous tasks (polling status across all job types).

Operations 1

GET /jobs/{jobId} Get the status of a background job #

Specifications

SDKs

Schemas & Data

📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-job-acknowledgement-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-entry-update-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-entry-create-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-application-code-get-detail-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-entry-get-detail-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-entry-get-detail-dto-1-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-event-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-hmac-credentials-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-client-subscription-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-client-subscription-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-rotate-secret-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-event-type-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-draft-validation-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-draft-validation-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-update-rule-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/json-schema/hmcts-rule-detail-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/hmcts/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-jobs-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-jobs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    name: HMCTS AppReg Team
    url: https://github.com/hmcts/appreg-api
  description: REST API for managing Administrative Tasks, Applications Lists, Application List Entries and getting important, reference data including Application Codes, Result Codes, Fees, Court Locations, Criminal Justice Areas and Standard Applicants.
  title: Applications Register Jobs API
  version: '@version@'
servers:
- url: /
tags:
- description: Background job operations for asynchronous tasks (polling status across all job types).
  name: Jobs
paths:
  /jobs/{jobId}:
    get:
      description: Returns the current status and details of a background job.
      operationId: getJobStatusById
      parameters:
      - description: The unique identifier of the job.
        example: 9f7b2a35-57ac-4a1c-9c41-83b6c8157af4
        in: path
        name: jobId
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/vnd.hmcts.appreg.v1+json:
              schema:
                $ref: '#/components/schemas/job-acknowledgement'
          description: Job status retrieved successfully.
          headers:
            Vary:
              description: Response varies by Accept for media-type versioning.
              example: Accept
              schema:
                type: string
        '401':
          content:
            application/problem+json:
              examples:
                unauthenticated:
                  value:
                    type: https://errors.hmcts.net/common/unauthorized
                    title: Unauthorized
                    status: 401
                    detail: Missing or invalid credentials
              schema:
                $ref: '#/components/schemas/problem'
          description: Authentication required or token invalid.
        '403':
          content:
            application/problem+json:
              examples:
                forbidden:
                  value:
                    type: https://errors.hmcts.net/common/forbidden
                    title: Forbidden
                    status: 403
                    detail: You do not have permission to access this resource
              schema:
                $ref: '#/components/schemas/problem'
          description: Authenticated but not permitted to perform this action.
        '404':
          content:
            application/problem+json:
              examples:
                missing:
                  value:
                    type: https://errors.hmcts.net/appreg/not-found
                    title: Not Found
                    status: 404
                    detail: Result code with id=123 was not found
              schema:
                $ref: '#/components/schemas/problem'
          description: The requested resource was not found.
        '500':
          content:
            application/problem+json:
              examples:
                generic:
                  value:
                    type: https://errors.hmcts.net/common/internal-error
                    title: Internal Server Error
                    status: 500
                    detail: An unexpected error occurred
              schema:
                $ref: '#/components/schemas/problem'
          description: Unexpected server error.
      summary: Get the status of a background job
      tags:
      - Jobs
components:
  schemas:
    job-status:
      description: The status of the job being polled by the user.
      enum:
      - RECEIVED
      - VALIDATING
      - PROCESSING
      - FAILED
      - COMPLETED
      example: RECEIVED
      type: string
    job-type:
      description: The type of the job being polled by the user.
      enum:
      - ACTIVITY_AUDIT_REPORT
      - FEES_REPORT
      - LIST_MAINTENANCE_REPORT
      - SEARCH_WARRANTS_REPORT
      - WORKLOAD_REPORT
      - DURATION_REPORT
      - PRIVATE_PROSECUTORS_INDEX_REPORT
      - BULK_UPLOAD_ENTRIES
      example: FEES_REPORT
      type: string
    job-acknowledgement:
      additionalProperties: false
      description: Acknowledgement returned when a background job is created.
      properties:
        id:
          description: Unique identifier for the job, in UUID v4 format.
          example: 9f7b2a35-57ac-4a1c-9c41-83b6c8157af4
          format: uuid
          type: string
        type:
          $ref: '#/components/schemas/job-type'
        status:
          $ref: '#/components/schemas/job-status'
        createdCount:
          description: 'Number of applications imported by this job, excluding the CSV header and including subsequently soft-deleted applications. Available only when polling a completed BULK_UPLOAD_ENTRIES job; omitted from all other responses. Counted from retained job-to-application mappings, not the current list size.

            '
          example: 12
          format: int64
          minimum: 0
          type: integer
          x-field-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)'
        mainFeeTotal:
          description: 'Current main fees in GBP for non-deleted applications created by this upload, regardless of payment or remission status. Available only when polling a completed BULK_UPLOAD_ENTRIES job; zero when no applicable fees remain. Calculated on read, so later changes to applications or associated fees can change this value. Omitted from all other responses.

            '
          example: 120.5
          type: number
          x-field-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)'
        offsiteFeeTotal:
          description: 'Current applicable offsite fees in GBP for non-deleted applications created by this upload, regardless of payment or remission status. Available only when polling a completed BULK_UPLOAD_ENTRIES job; zero when no applicable fees remain. Calculated on read, not an upload-time snapshot. Omitted from all other responses.

            '
          example: 30.25
          type: number
          x-field-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)'
        totalFeeValue:
          description: 'Sum of mainFeeTotal and offsiteFeeTotal in GBP. Available only when polling a completed BULK_UPLOAD_ENTRIES job. Zero when no applicable fees remain; calculated on read. Omitted from all other responses.

            '
          example: 150.75
          type: number
          x-field-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)'
        error_description:
          description: 'Details of a failed job. Bulk-upload validation failures may include actionable input errors; unexpected bulk-upload processing failures use a generic message and identify the job reference to quote to support.

            '
          type: string
      required:
      - id
      - status
      - type
      type: object
    problem:
      description: RFC 9457/7807 problem details.
      properties:
        type:
          description: Problem type identifier (URI).
          example: https://errors.hmcts.net/appreg/bad-request
          format: uri
          type: string
        title:
          description: Short, human-readable summary.
          example: Invalid request parameters
          type: string
        status:
          description: HTTP status code.
          example: 400
          format: int32
          type: integer
        detail:
          description: Human-readable explanation specific to this occurrence.
          example: startDateFrom must be on or before startDateTo
          type: string
        instance:
          description: URI reference to the specific occurrence (if applicable).
          example: urn:request:2f9c3d8a-1b3a-4a1e-9b7f-6b2a6a0a2b2f
          format: uri
          type: string
        correlationId:
          description: Server-side correlation ID for tracing.
          example: 3e1a2c95a7d84a5fb3e1a2c95a7d84a5
          type: string
      required:
      - status
      - title
      - type
      type: object