---
title: "Generate an Activity Audit report of user actions within the application register."
method: POST
path: "/reports/activity-audit/jobs"
tags: ["reports"]
---

# Generate an Activity Audit report of user actions within the application register.

`POST /reports/activity-audit/jobs`

## Request

- Base URL: `/` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/reports/activity-audit/jobs`
- Auth: none declared

Creates an asynchronous job to produce a CSV report detailing user activity within the application register, filtered by date range, username, and activity type. Returns an acknowledgement containing the job ID that can be used to track progress and download the report once complete. The CSV output is capped by server configuration, defaulting to 100,000 rows.

## Request body

- ActivityAuditFilterDto: Filter criteria for POST /reports/activity-audit/jobs. Both dateFrom and dateTo are required and are treated as inclusive bounds. If dateFrom is later than dateTo, the API treats the earlier date as the inclusive start and the later date as the inclusive end. The username must match exactly. Blank fields will be rejected, nulls should be used instead.
  - `dateFrom` string, date, required: Inclusive start date (YYYY-MM-DD).
  - `dateTo` string, date, required: Inclusive end date (YYYY-MM-DD).
  - `username` string: Exact display username to audit, normally the user's email address.
  - `activityTypes` ActivityType[], required: One or more activity types to include in the audit report. Must contain at least one value.

## Response `202`

Report job accepted for asynchronous processing.

- JobAcknowledgement: Acknowledgement returned when a background job is created.
  - `id` string, uuid, required: Unique identifier for the job, in UUID v4 format.
  - `type` 'ACTIVITY_AUDIT_REPORT' | 'FEES_REPORT' | 'LIST_MAINTENANCE_REPORT' | 'SEARCH_WARRANTS_REPORT' | 'WORKLOAD_REPORT' | 'DURATION_REPORT' | 'PRIVATE_PROSECUTORS_INDEX_REPORT' | 'BULK_UPLOAD_ENTRIES', required: The type of the job being polled by the user.
  - `status` 'RECEIVED' | 'VALIDATING' | 'PROCESSING' | 'FAILED' | 'COMPLETED', required: The status of the job being polled by the user.
  - `createdCount` integer: 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.
  - `mainFeeTotal` number: 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.
  - `offsiteFeeTotal` number: 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.
  - `totalFeeValue` number: 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.
  - `error_description` string: 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.

## Other responses

- `400`: Invalid request parameters.
- `401`: Authentication required or token invalid.
- `403`: Authenticated but not permitted to perform this action.
- `500`: Unexpected server error.

## Changes

- **2026-10-08** `d4587b3d88ec`: 1 info
  - added the optional property `createdCount` to the response with the `202` status
- **2026-09-22** `50e88f2e5845`: 3 breaking
  - removed the enum value `ADD_STANDARD_APPLICANT` of the request property `activityTypes/items/`
  - removed the enum value `DELETE_STANDARD_APPLICANT` of the request property `activityTypes/items/`
  - removed the enum value `UPDATE_STANDARD_APPLICANT` of the request property `activityTypes/items/`
- **2026-09-17** `22203fd337b7`: 3 info
  - added the optional property `mainFeeTotal` to the response with the `202` status
  - added the optional property `offsiteFeeTotal` to the response with the `202` status
  - added the optional property `totalFeeValue` to the response with the `202` status
- **2026-08-13** `69a94bc033d8`: 1 warning
  - the `username` request property's maxLength was set to `250`

[Operation history](https://skmtc.dev/hm-courts-and-tribunals-service/apis/applications-register-api/changes/reports/activity-audit/jobs/post.md)

---

[API](https://skmtc.dev/hm-courts-and-tribunals-service/apis/applications-register-api.md) - [All operations](https://skmtc.dev/hm-courts-and-tribunals-service/apis/applications-register-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hm-courts-and-tribunals-service/apis/applications-register-api/revisions/36521cfe1ab7?raw)
