---
title: "Download a bounded case audit packet in JSON or PDF"
method: GET
path: "/reports/cases/{id}"
tags: ["Reports"]
---

# Download a bounded case audit packet in JSON or PDF

`GET /reports/cases/{id}`

## Request

- Base URL: `https://www.sanctionskit.com/api/v1`
- URL: `https://www.sanctionskit.com/api/v1/reports/cases/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sanctionskit/apis/sanctionskit-api/docs/reports/cases/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Required API key scope: results:read.

Includes retained findings, decisions, external-check history, document references and text attachments. Large cases require the segmented archive route. External repository bytes are not copied. This packet is not an immutable or signed archive.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `format` 'json' | 'pdf'

## Response `200`

Successful response. The response is the documented raw JSON or file content, without a data envelope. Check Content-Type before decoding.

- AuditPacket
  - `format` 'sanctionskit-case-audit@1', required
  - `generatedAt` string, date-time, required
  - `environment` 'sandbox' | 'production', required
  - `investigation` object, required
    - `id` string, uuid, required
    - `screeningId` string, uuid, required
    - `counterpartyId` string, uuid, nullable, required
    - `decision` 'open' | 'confirmed' | 'dismissed', required
    - `revision` integer, required
    - `assigneeId` string, nullable, required
    - `priority` string, required
    - `dueAt` string, date-time, nullable, required
    - `escalatedAt` string, date-time, nullable, required
    - `requiresSecondReview` boolean, required
    - `reviewState` 'open' | 'pending_approval' | 'approved' | 'superseded', required
    - `businessDisposition` 'pending' | 'allow' | 'restrict' | 'escalate', required
    - `reviewStartedAt` string, date-time, required
    - `supersededByScreeningId` string, uuid, nullable, required
    - `supersededByCaseId` string, uuid, nullable, required
    - `approvalRequiredByPolicy` boolean, required
    - `approvalRequiredForActions` string[], required
    - `approverRoles` string[], required
    - `reviewConcern` string, nullable, required
    - `policyContext` object, nullable, required
      - `id` string, uuid, required
      - `version` integer, required
      - `name` string, required
      - `purpose` string, required
      - `exclusions` string[], required
    - `decisionHistory` object[], required
      - `id` string, uuid, required
      - `screeningId` string, uuid, nullable, required
      - `decision` 'open' | 'confirmed' | 'dismissed', required
      - `businessDisposition` 'pending' | 'allow' | 'restrict' | 'escalate', nullable, required
      - `rationale` string, nullable, required
      - `actorId` string, required
      - `actorLabel` string, nullable, required
      - `createdAt` string, date-time, required
      - `appliedControls` AppliedDecisionControls, required: Immutable decision-time approval configuration. A null appliedControls value on a decision means no historic snapshot is available; current settings are never substituted. Notification recipients and document hosts are excluded.
        - `governanceRevision` integer, required
        - `organizationApproval` object, required
          - `requireSecondReview` boolean, required
          - `secondReviewFor` string[], required
          - `approverRoles` string[], required
        - `restrictedRoles` object, required
          - `approval` string[], required
          - `production` string[], required
        - `screeningPolicy` object, nullable, required
          - `id` string, uuid, required
          - `version` integer, required
          - `review` object, required
            - `requireSecondReview` boolean, required
            - `secondReviewFor` string[], required
            - `approverRoles` string[], required
    - `decisionHistoryTruncated` boolean, required
    - `checks` object[], required
      - `label` string, required
      - `instructions` string
      - `evidenceExample` string
      - `reviewConcern` string
      - `status` 'outstanding' | 'completed_externally' | 'not_applicable', required
      - `evidenceReference` string, required
      - `rationale` string, required
      - `actorId` string, nullable, required
      - `updatedAt` string, date-time, nullable, required
    - `checkHistory` object[], required
      - `id` string, uuid, required
      - `screeningId` string, uuid, required
      - `label` string, required
      - `status` 'outstanding' | 'completed_externally' | 'not_applicable', required
      - `evidenceReference` string, required
      - `rationale` string, required
      - `actorId` string, required
      - `updatedAt` string, date-time, required
      - `expiresAt` string, date-time, nullable, required
    - `reuseChallenges` object[], required
      - `ruleId` string, required
      - `originCaseId` string, required
      - `challengedByCaseId` string, required
      - `actorId` string, required
      - `revokedAt` string, date-time, required
      - `affectedCaseIds` string[], required
    - `submittedBy` string, nullable, required
    - `approvedBy` string, nullable, required
    - `matches` object[], required
      - `id` string, uuid, required
      - `screeningId` string, uuid, required
      - `sourceId` string, required
      - `recordId` string, required
      - `identityDecision` string, required
      - `businessDecision` string, required
      - `rationale` string, required
      - `reusableUntil` string, date-time, nullable, required
      - `reusedRuleId` string, uuid, nullable, required
      - `actorId` string, required
      - `updatedAt` string, date-time, required
    - `subject` Subject, required
      - `name` string, required: Name to compare with publisher records. Leading and trailing whitespace is removed; provide the fullest reliable name available.
      - `entityType` 'person' | 'organization' | 'vessel' | 'aircraft' | 'other': Type of subject. Defaults to person when omitted. Every selected source must support this type.
      - `identifiers` object[]: Typed identifiers used for exact matching, such as passport, national_id, registration, lei, imo or mmsi. Defaults to an empty array. Use the publisher’s identifier scheme; custom scheme names are accepted.
        - `type` string, required: Identifier scheme, such as passport, national_id, registration, lei, imo or mmsi. Matching normalizes supported scheme aliases.
        - `value` string, required: Identifier value. Send the original value; scheme-specific normalization is applied during matching.
        - `issuer` string: Optional issuing authority or country. Omit when unknown; do not send null.
      - `birthDate` union: Known date or partial date: YYYY, YYYY-MM or YYYY-MM-DD. Preserve known precision; do not invent a month or day. Year 0000 and invalid dates are rejected.
        - string
        - string
      - `country` string: Known country name or code used as supporting identity evidence. It is not a source-selection or geographic coverage filter.
    - `originCorrection` object, nullable, required
      - `caseId` string, uuid, required
      - `screeningId` string, uuid, required
    - `evidence` object[], required
      - `id` string, uuid, required
      - `screeningId` string, uuid, required
      - `sourceId` string, required
      - `recordId` string, required
      - `field` string, required
      - `value` string, required
      - `sourceReference` string, required
      - `verification` 'unverified' | 'verified', required
      - `comparison` 'agrees' | 'conflicts' | 'unknown', required
      - `notes` string, required
      - `content` string, required
      - `actorId` string, required
      - `createdAt` string, date-time, required
      - `expiresAt` string, date-time, nullable, required
    - `corrections` object[], required
      - `id` string, uuid, required
      - `screeningId` string, uuid, required
      - `resultScreeningId` string, uuid, required
      - `resultCaseId` string, uuid, nullable, required
      - `before` Subject, required
        - `name` string, required: Name to compare with publisher records. Leading and trailing whitespace is removed; provide the fullest reliable name available.
        - `entityType` 'person' | 'organization' | 'vessel' | 'aircraft' | 'other': Type of subject. Defaults to person when omitted. Every selected source must support this type.
        - `identifiers` object[]: Typed identifiers used for exact matching, such as passport, national_id, registration, lei, imo or mmsi. Defaults to an empty array. Use the publisher’s identifier scheme; custom scheme names are accepted.
          - `type` string, required: Identifier scheme, such as passport, national_id, registration, lei, imo or mmsi. Matching normalizes supported scheme aliases.
          - `value` string, required: Identifier value. Send the original value; scheme-specific normalization is applied during matching.
          - `issuer` string: Optional issuing authority or country. Omit when unknown; do not send null.
        - `birthDate` union: Known date or partial date: YYYY, YYYY-MM or YYYY-MM-DD. Preserve known precision; do not invent a month or day. Year 0000 and invalid dates are rejected.
          - string
          - string
        - `country` string: Known country name or code used as supporting identity evidence. It is not a source-selection or geographic coverage filter.
      - `after` Subject, required
        - `name` string, required: Name to compare with publisher records. Leading and trailing whitespace is removed; provide the fullest reliable name available.
        - `entityType` 'person' | 'organization' | 'vessel' | 'aircraft' | 'other': Type of subject. Defaults to person when omitted. Every selected source must support this type.
        - `identifiers` object[]: Typed identifiers used for exact matching, such as passport, national_id, registration, lei, imo or mmsi. Defaults to an empty array. Use the publisher’s identifier scheme; custom scheme names are accepted.
          - `type` string, required: Identifier scheme, such as passport, national_id, registration, lei, imo or mmsi. Matching normalizes supported scheme aliases.
          - `value` string, required: Identifier value. Send the original value; scheme-specific normalization is applied during matching.
          - `issuer` string: Optional issuing authority or country. Omit when unknown; do not send null.
        - `birthDate` union: Known date or partial date: YYYY, YYYY-MM or YYYY-MM-DD. Preserve known precision; do not invent a month or day. Year 0000 and invalid dates are rejected.
          - string
          - string
        - `country` string: Known country name or code used as supporting identity evidence. It is not a source-selection or geographic coverage filter.
      - `reason` string, required
      - `actorId` string, required
      - `createdAt` string, date-time, required
      - `expiresAt` string, date-time, nullable, required
    - `reviewHistory` object[], required
      - `id` string, uuid, required
      - `screeningId` string, uuid, required
      - `sourceId` string, required
      - `recordId` string, required
      - `review` object, required
        - `id` string, uuid, required
        - `screeningId` string, uuid, required
        - `sourceId` string, required
        - `recordId` string, required
        - `identityDecision` string, required
        - `businessDecision` string, required
        - `rationale` string, required
        - `reusableUntil` string, date-time, nullable, required
        - `reusedRuleId` string, uuid, nullable, required
        - `actorId` string, required
        - `updatedAt` string, date-time, required
      - `replacedBy` string, required
      - `reason` 'decision_updated' | 'evidence_added' | 'subject_corrected' | 'rule_challenged', required
      - `createdAt` string, date-time, required
      - `expiresAt` string, date-time, nullable, required
    - `comments` object[], required
      - `id` string, uuid, required
      - `body` string, required
      - `actorId` string, required
      - `createdAt` string, date-time, required
    - `attachments` object[], required
      - `id` string, uuid, required
      - `title` string, required
      - `sha256` string, required
      - `size` integer, required
      - `actorId` string, required
      - `createdAt` string, date-time, required
      - `expiresAt` string, date-time, nullable, required
  - `evidence` object[], required
    - `id` string, uuid, required
    - `createdAt` string, date-time, required
    - `expiresAt` string, date-time, nullable, required
    - `expired` boolean, required
    - `subject` Subject, required
      - `name` string, required: Name to compare with publisher records. Leading and trailing whitespace is removed; provide the fullest reliable name available.
      - `entityType` 'person' | 'organization' | 'vessel' | 'aircraft' | 'other': Type of subject. Defaults to person when omitted. Every selected source must support this type.
      - `identifiers` object[]: Typed identifiers used for exact matching, such as passport, national_id, registration, lei, imo or mmsi. Defaults to an empty array. Use the publisher’s identifier scheme; custom scheme names are accepted.
        - `type` string, required: Identifier scheme, such as passport, national_id, registration, lei, imo or mmsi. Matching normalizes supported scheme aliases.
        - `value` string, required: Identifier value. Send the original value; scheme-specific normalization is applied during matching.
        - `issuer` string: Optional issuing authority or country. Omit when unknown; do not send null.
      - `birthDate` union: Known date or partial date: YYYY, YYYY-MM or YYYY-MM-DD. Preserve known precision; do not invent a month or day. Year 0000 and invalid dates are rejected.
        - string
        - string
      - `country` string: Known country name or code used as supporting identity evidence. It is not a source-selection or geographic coverage filter.
    - `result` ScreeningResult, required: Result returned by POST /screenings and plain GET /results items. Its required fields are always present. A successful result is either potential_match or no_match; failures use the Error envelope instead.
      - `id` string, uuid, required: Screening UUID; use it to retrieve retained result/evidence and locate linked review cases.
      - `environment` 'sandbox' | 'production', required: Environment owned by the API key. Sandbox evidence is synthetic.
      - `status` 'potential_match' | 'no_match', required: potential_match requires review of candidates; no_match means no returned candidates within the selected coverage and matching rules. Neither is a business approval or legal clearance.
      - `createdAt` string, date-time, required: Screening creation timestamp in ISO 8601 UTC.
      - `matches` object[], required: Candidate records with field evidence and conflicts. Always an array; empty for no_match. No silent truncation is performed.
        - `record` SourceRecord, required
          - `id` string, required
          - `sourceId` string, required
          - `authority` string, required
          - `list` string, required
          - `sourceUrl` string, required
          - `entityType` 'person' | 'organization' | 'vessel' | 'aircraft' | 'other', required
          - `names` object[], required
            - `value` string, required
            - `kind` 'primary' | 'alias', required
            - `quality` 'strong' | 'weak' | 'unknown'
            - `script` string
            - `provenance` SourceProvenance: Publisher field attribution. rawValue is optional; when present it preserves the original published value.
              - …
          - `identifiers` object[], required
            - `type` string, required
            - `value` string, required
            - `issuer` string
            - `provenance` SourceProvenance: Publisher field attribution. rawValue is optional; when present it preserves the original published value.
              - …
          - `birthDates` object[], required
            - `value` string, required
            - `precision` 'day' | 'month' | 'year' | 'range' | 'unknown', required
            - `original` string, required
          - `addresses` object[], required
            - `text` string
            - `country` string
            - `provenance` SourceProvenance: Publisher field attribution. rawValue is optional; when present it preserves the original published value.
              - …
          - `nationalities` string[], required
          - `designations` object[], required
            - `category` 'financial_sanctions' | 'export_control' | 'debarment' | 'other', required
            - `programs` string[], required
            - `legalReferences` string[], required
            - `wording` string
            - `effectiveDate` string
          - `dataThrough` string, date: Inclusive publisher data-availability deadline; not a legal end date.
          - `screeningPeriods` object[]: Inclusive UTC date intervals for current screening. Omitted means no date filter; an empty array excludes the record from current screening.
            - `from` string, date
            - `through` string, date
          - `publicContext` object[]
            - `label` string, required
            - `value` string, required
          - `extensions` object, required: Source-specific published extensions. Keys and value shapes vary by source; preserve unknown values without assuming a fixed schema.
        - `score` number, required: Legacy composite review score retained for compatibility. Use assessment.name.similarity for name similarity and assessment for corroboration and conflicts. Not a probability of identity or wrongdoing.
        - `assessment` MatchAssessment: Retained name similarity, identity comparison states and review evidence tier. Contains no copied subject values. Missing information, conflicts and partial dates remain distinct; an evidence tier is not a finding of identity or wrongdoing.
          - `name` object, nullable, required
            - `similarity` integer, required
            - `method` string, required
            - `aliasKind` 'primary' | 'alias', required
            - `aliasQuality` 'strong' | 'weak' | 'unknown', required
          - `identifiers` object, required
            - `status` 'agreement' | 'conflict' | 'not_supplied' | 'unavailable' | 'not_comparable', required
            - `matched` integer, required
            - `issuerAgreements` integer, required
            - `issuerUnknown` integer, required
            - `conflicts` integer, required
          - `birthDate` object, required
            - `status` 'agreement' | 'conflict' | 'not_supplied' | 'unavailable' | 'not_comparable', required
            - `precision` 'year' | 'month' | 'day'
          - `country` object, required
            - `status` 'agreement' | 'conflict' | 'not_supplied' | 'unavailable' | 'not_comparable', required
          - `entityType` object, required
            - `status` 'agreement' | 'conflict' | 'not_supplied' | 'unavailable' | 'not_comparable', required
          - `reviewTier` 'identifier' | 'corroborated' | 'conflicting' | 'name_only', required
          - `alertBasis` 'identifier' | 'name' | 'name_and_birth_date' | 'partial_name', required
          - `hasConflicts` boolean, required
          - `sameNameCandidates` integer, required
        - `evidence` object[], required
          - `field` string, required
          - `queryValue` string, required
          - `sourceValue` string, required
          - `method` string, required
          - `contribution` number, required
          - `explanation` string, required
        - `conflicts` string[], required
      - `coverage` Coverage[], required: Exact source versions used, including freshness and retained publisher notices. Always present, including no_match.
        - `sourceId` string, required
        - `version` string, required
        - `retrievedAt` string, date-time, required
        - `publishedAt` union: Authority-supplied publication date (YYYY-MM-DD) or RFC 3339 timestamp, preserving the precision supplied by the publisher. A date-only value does not imply midnight or a timezone. Omitted when no genuine publication date or timestamp is supplied.
          - string, date
          - string, date-time
        - `fresh` boolean, required
        - `sourceNotice` SourceNotice
          - `text` string, required: Required publisher attribution and reuse notices captured when screening runs.
          - `sourceUrl` string, uri, required
          - `termsUrl` string, uri, required
          - `licenseUrl` string, uri: Only included for a reviewed explicit license instrument.
          - `databaseDownloadUrl` string, uri-reference: Free complete derivative database for the exact immutable source version, where required. A relative path resolves against this API origin.
      - `versions` object, required: Dataset, matching engine and policy versions used for this result. package is included only for package-based coverage.
        - `dataset` string, required
        - `matchingEngine` string, required
        - `policy` string, required
        - `package` string
      - `disclaimer` string, required: Interpretation limits supplied with this result; preserve them when presenting or exporting evidence.
      - `policySnapshot` ScreeningPolicySnapshot
        - `name` string, required
        - `purpose` string, required
        - `jurisdictions` string[], required
        - `matching` object
          - `profile` 'standard' | 'focused', required
          - `partialNames` 'review' | 'exclude'
        - `requiredSources` object, required
        - `optionalSources` object, required
        - `exclusions` string[], required
        - `externalChecks` string[], required
        - `externalCheckGuidance` object[]
          - `label` string, required
          - `instructions` string, required
          - `evidenceExample` string
        - `review` object, required
          - `requireSecondReview` boolean
          - `secondReviewFor` string[]
          - `approverRoles` string[]
        - `monitoringIntervalHours` union, required
          - 6
          - 24
          - 168
        - `retentionTrigger` 'review_completed' | 'relationship_ended' | 'business_event', required
        - `id` string, uuid, required
        - `version` integer, required
        - `environment` 'sandbox' | 'production', required
        - `createdAt` string, date-time, required
      - `matching` AppliedMatchingPolicy: Effective matching profile, partial-name policy and retrieval version retained at screening, including no-match results. Historical results can omit this snapshot. Partial names are excluded unless an approved policy explicitly enables review. Scores are not population-calibrated probabilities.
        - `version` string, required
        - `profile` 'standard' | 'focused', required
        - `nameThreshold` integer, required
        - `corroboratedNameThreshold` integer, required
        - `retrievalVersion` string, required
        - `partialNames` 'review' | 'exclude'
      - `warnings` object[]: Input limitations without copied subject values. A one-word person name produces limited_name_information; legitimate single-word names are accepted. Preserve this warning with no-match outcomes and retained evidence. Historical results may omit it.
        - `code` 'limited_name_information', required
        - `message` string, required
  - `decisions` object[], required
    - `id` string, uuid, required
    - `actorId` string, required
    - `decision` string, required
    - `businessDisposition` 'pending' | 'allow' | 'restrict' | 'escalate', required
    - `appliedControls` AppliedDecisionControls, required: Immutable decision-time approval configuration. A null appliedControls value on a decision means no historic snapshot is available; current settings are never substituted. Notification recipients and document hosts are excluded.
      - `governanceRevision` integer, required
      - `organizationApproval` object, required
        - `requireSecondReview` boolean, required
        - `secondReviewFor` string[], required
        - `approverRoles` string[], required
      - `restrictedRoles` object, required
        - `approval` string[], required
        - `production` string[], required
      - `screeningPolicy` object, nullable, required
        - `id` string, uuid, required
        - `version` integer, required
        - `review` object, required
          - `requireSecondReview` boolean, required
          - `secondReviewFor` string[], required
          - `approverRoles` string[], required
    - `notes` string, nullable, required
    - `createdAt` string, date-time, required
    - `screeningId` string, uuid, nullable, required
    - `evidenceExpired` boolean, required
  - `attachments` object[], required
    - `id` string, uuid, required
    - `title` string, required
    - `sha256` string, required
    - `content` string, required
    - `createdAt` string, date-time, required
  - `documents` object[], required
    - `id` string, uuid, required
    - `title` string, required
    - `url` string, required
    - `repository` string, required
    - `documentVersion` string, required
    - `sha256` string, nullable, required
    - `provenance` string, required
    - `verification` 'unverified' | 'reviewer_verified', required
    - `verifiedAt` string, date-time, nullable, required
    - `actorId` string, required
    - `createdAt` string, date-time, required
  - `holds` object[], required
    - `id` string, uuid, required
    - `reason` string, required
    - `until` string, date-time, nullable, required
    - `releasedAt` string, date-time, nullable, required
    - `releasedBy` string, nullable
    - `releaseReason` string, nullable
  - `limitations` string[], required

## Other responses

- `400`: **invalid_request** — Correct the request fields, resource identifiers, JSON body or query parameters before retrying.
- `401`: **authentication_required** — Send Authorization: Bearer with a valid API key. An omitted header can produce authentication_required; invalid supplied credentials produce invalid_api_key. **invalid_api_key** — Use an active key for the intended environment.
- `403`: **permission_denied** — Ask an organization owner to grant the required role or API-key scope. **insufficient_scope** — Use a key with the scope stated in this operation.
- `404`: **not_found** — Check the identifier and selected environment. The resource must belong to your organization and remain available.
- `405`: **method_not_allowed** — Use a method in the Allow response header. OPTIONS lists supported methods; HEAD follows GET authorization and returns no body.
- `413`: **response_too_large** — Reduce the requested page size or use the documented segmented case archive. No evidence is silently truncated. **export_too_large** — Narrow the screening date range. For a large case, retrieve every segment from the case archive endpoint.
- `429`: **rate_limited** — Wait for the request window to reset and retry with backoff.
- `500`: **internal_error** — Retry with backoff. For writes reuse the same idempotency key and identical input; include requestId when contacting support.
- `503`: **temporarily_unavailable** — Honor Retry-After when present and retry with bounded backoff. Follow this endpoint’s retry contract; preserve the same key and input for idempotent writes. Contact support with requestId if the failure persists.

---

[API](https://skmtc.dev/sanctionskit/apis/sanctionskit-api.md) - [All operations](https://skmtc.dev/sanctionskit/apis/sanctionskit-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sanctionskit/apis/sanctionskit-api/revisions/ee35d211051a?raw)
