Skip to main content

List examinations

method
GET
/api/examinations
Returns all examinations for the current organization.
data.examinations
array
Array of examination objects with id, name, type, status, examiner, dateReceived, responseDeadline, createdAt, updatedAt.

Create examination

method
POST
/api/examinations
type
string
required
Examination type. One of: regulatory, bank_partner, internal_audit.
examiner
string
Name of the examining entity (e.g., “FDIC”, “OCC”).
name
string
Display name for the examination.
dateReceived
string
ISO date string when the request letter was received.
responseDeadline
string
required
ISO date string for the response deadline.
data.examination
object
The created examination with auto-generated ID (e.g., EX-2026-001). Status starts as preparing.

Get examination

method
GET
/api/examinations/{examId}
examId
string
required
Examination ID (e.g., EX-2026-001).

Update examination

method
PATCH
/api/examinations/{examId}
status
string
One of: preparing, in_progress, submitted, findings_received, archived.
type
string
Examination type.
examiner
string
Examiner name.
name
string
Display name.
dateReceived
string
ISO date string.
responseDeadline
string
ISO date string.
Archived examinations can only update findingsReportPath.

Delete examination

method
DELETE
/api/examinations/{examId}
Deletes the examination and all associated data (request items, evidence, uploads). Cleans up files from storage.

Archive examination

method
POST
/api/examinations/{examId}/archive
Transitions the examination to archived status. Only valid from submitted or findings_received.

Unarchive examination

method
POST
/api/examinations/{examId}/unarchive
Transitions an archived examination back to in_progress. Idempotent — if already in_progress, returns 200 with current record.

List request items

method
GET
/api/examinations/{examId}/items
after
number
Sort order cursor for polling during parse (returns items with sortOrder > after).
data.items
array
Array of request items.
data.parseStatus
string
Upload parse status: pending, processing, or completed.
data.totalCount
number
Total number of request items.

Create request item

method
POST
/api/examinations/{examId}/items
originalText
string
required
The examiner’s request text.
category
string
required
Regulatory category (e.g., internal_controls, cdd_kyc). Valid categories are defined per regulation type in REGULATION_CONFIG.
ffiecSection
string
Specific FFIEC section reference.
evidenceType
string
Type of evidence that satisfies this request.

Update request item

method
PATCH
/api/examinations/{examId}/items/{itemId}
originalText
string
Updated request text.
category
string
Updated category assignment.
assigneeId
string
User ID to assign the item to.
dueDate
string
ISO date string for the item deadline.
status
string
Item status: not_started, in_progress, uploaded, needs_rework, reviewed, or ready.
notes
string
Reviewer notes.
Updating any item on a preparing examination automatically advances the exam to in_progress.

List evidence attachments

method
GET
/api/examinations/{examId}/items/{itemId}/evidence
data.attachments
array
Array of evidence attachment objects with id, fileName, filePath, fileSize, mimeType, createdAt.

Upload evidence

method
POST
/api/examinations/{examId}/items/{itemId}/evidence
Accepts either file upload (multipart/form-data) or external URL (application/json). File upload:
file
file
required
The evidence file. Max 50 MB. Allowed: PDF, DOCX, XLSX, CSV, PNG, JPG.
URL mode:
url
string
required
External URL to the evidence document.
fileName
string
Display name for the URL evidence.

Delete evidence

method
DELETE
/api/examinations/{examId}/items/{itemId}/evidence/{evidenceId}
Deletes the evidence attachment and cleans up the file from storage.

Upload examination file

method
POST
/api/examinations/{examId}/upload
Uploads an examination request letter for AI parsing. Triggers the parse-examination background job.
file
file
required
The request letter file. Max 50 MB. Allowed: PDF, CSV, PNG, JPG.
data.uploadId
string
Upload ID for tracking parse progress.
data.status
string
Initial status: pending.

method
GET
/api/examinations/{examId}/evidence-link-count
Returns the count of pending (auto-applied) evidence links for an obligation. Used for the sidebar badge.
examId
string
required
Examination/obligation ID.
data.count
number
Number of auto_applied (pending review) evidence links targeting items in this obligation.

Get report data

method
GET
/api/examinations/{examId}/report
Returns aggregated report data for the examination, including item counts by pillar and status.

Save report configuration

method
POST
/api/examinations/{examId}/report
format
string
required
Export format: pdf or zip.
watermark
boolean
Enable watermark on PDF output.
batesNumbering
boolean
Enable Bates numbering on PDF output.

Generate report

method
POST
/api/examinations/{examId}/report/generate
Generates the response package and returns a signed download URL (valid for 1 hour).
format
string
required
Export format: pdf or zip.
data.downloadUrl
string
Signed URL for downloading the generated package.
data.format
string
The format that was generated.
data.expiresAt
string
ISO timestamp when the download URL expires.