API REFERENCE · Reports

Download a bounded case audit packet in JSON or PDF

Complete request parameters, body fields, response formats, examples, and errors for GET /reports/cases/{id}.

Base URL: https://www.sanctionskit.com/api/v1. Documentation examples are saved and require no API key to read.

All endpoints and schemas
GET/reports/cases/{id}Download a bounded case audit packet in JSON or PDF

Authentication: Authorization: Bearer YOUR_API_KEY (required). Use a server-side key for the intended environment and scopes.

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.

Request parameters

Path parameters
id
Query parameters
format
JSON body fields
None.

This operation has no request body.

Headers, path and query parameters

idpathRequired
string

Opaque resource identifier owned by the authenticated organization.

Format: uuid.

formatqueryOptional
enum

Download format. Read the corresponding response Content-Type before decoding.

Values: "json", "pdf". Default: "json".

Request body

This operation has no request body.

Responses

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

Response headers

X-Request-Id
string

Server-generated request correlation identifier.

Format: uuid.

application/jsonView AuditPacket schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

formatRequired
"sanctionskit-case-audit@1"

Must equal "sanctionskit-case-audit@1".

generatedAtRequired
string

Format: date-time.

environmentRequired
string

Values: "sandbox", "production".

investigationRequired
object
investigation fields and rules
investigation.idRequired
string

Format: uuid.

investigation.screeningIdRequired
string

Format: uuid.

investigation.counterpartyIdRequired
string or null

May be null.

investigation.counterpartyId fields and rules

Allowed alternatives

  • string

    Format: uuid.

  • null

    May be null.

investigation.decisionRequired
string

Values: "open", "confirmed", "dismissed".

investigation.revisionRequired
integer

Minimum: 0.

investigation.assigneeIdRequired
string or null

May be null.

investigation.assigneeId fields and rules

Allowed alternatives

  • string
  • null

    May be null.

investigation.priorityRequired
string
investigation.dueAtRequired
string or null

May be null.

investigation.dueAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.escalatedAtRequired
string or null

May be null.

investigation.escalatedAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.requiresSecondReviewRequired
boolean
investigation.reviewStateRequired
string

Values: "open", "pending_approval", "approved", "superseded".

investigation.businessDispositionRequired
string

Values: "pending", "allow", "restrict", "escalate".

investigation.reviewStartedAtRequired
string

Format: date-time.

investigation.supersededByScreeningIdRequired
string or null

May be null.

investigation.supersededByScreeningId fields and rules

Allowed alternatives

  • string

    Format: uuid.

  • null

    May be null.

investigation.supersededByCaseIdRequired
string or null

May be null.

investigation.supersededByCaseId fields and rules

Allowed alternatives

  • string

    Format: uuid.

  • null

    May be null.

investigation.approvalRequiredByPolicyRequired
boolean
investigation.approvalRequiredForActionsRequired
string[]
investigation.approvalRequiredForActions item fields

Each array item: string.

investigation.approverRolesRequired
string[]
investigation.approverRoles item fields

Each array item: string.

investigation.reviewConcernRequired
string or null

May be null.

investigation.reviewConcern fields and rules

Allowed alternatives

  • string
  • null

    May be null.

investigation.policyContextRequired
object or null

May be null.

investigation.policyContext fields and rules

Allowed alternatives

  • Provide investigation.policyContext.id and investigation.policyContext.version and investigation.policyContext.name and investigation.policyContext.purpose and investigation.policyContext.exclusions.
    investigation.policyContext.idRequired
    string

    Format: uuid.

    investigation.policyContext.versionRequired
    integer

    Minimum: 0.

    investigation.policyContext.nameRequired
    string
    investigation.policyContext.purposeRequired
    string
    investigation.policyContext.exclusionsRequired
    string[]
    investigation.policyContext.exclusions item fields

    Each array item: string.

  • null

    May be null.

investigation.decisionHistoryRequired
object[]
investigation.decisionHistory item fields

Each array item: object.

investigation.decisionHistory[].idRequired
string

Format: uuid.

investigation.decisionHistory[].screeningIdRequired
string or null

May be null.

investigation.decisionHistory[].screeningId fields and rules

Allowed alternatives

  • string

    Format: uuid.

  • null

    May be null.

investigation.decisionHistory[].decisionRequired
string

Values: "open", "confirmed", "dismissed".

investigation.decisionHistory[].businessDispositionRequired
string or null

May be null.

investigation.decisionHistory[].businessDisposition fields and rules

Allowed alternatives

  • string

    Values: "pending", "allow", "restrict", "escalate".

  • null

    May be null.

investigation.decisionHistory[].rationaleRequired
string or null

May be null.

investigation.decisionHistory[].rationale fields and rules

Allowed alternatives

  • string
  • null

    May be null.

investigation.decisionHistory[].actorIdRequired
string
investigation.decisionHistory[].actorLabelRequired
string or null

May be null.

investigation.decisionHistory[].actorLabel fields and rules

Allowed alternatives

  • string
  • null

    May be null.

investigation.decisionHistory[].createdAtRequired
string

Format: date-time.

investigation.decisionHistory[].appliedControlsRequired
AppliedDecisionControls or null

May be null.

investigation.decisionHistory[].appliedControls fields and rules

Allowed alternatives

investigation.decisionHistoryTruncatedRequired
boolean
investigation.checksRequired
object[]
investigation.checks item fields

Each array item: object.

investigation.checks[].labelRequired
string
investigation.checks[].instructionsOptional
string
investigation.checks[].evidenceExampleOptional
string
investigation.checks[].reviewConcernOptional
string
investigation.checks[].statusRequired
string

Values: "outstanding", "completed_externally", "not_applicable".

investigation.checks[].evidenceReferenceRequired
string
investigation.checks[].rationaleRequired
string
investigation.checks[].actorIdRequired
string or null

May be null.

investigation.checks[].actorId fields and rules

Allowed alternatives

  • string
  • null

    May be null.

investigation.checks[].updatedAtRequired
string or null

May be null.

investigation.checks[].updatedAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.checkHistoryRequired
object[]
investigation.checkHistory item fields

Each array item: object.

investigation.checkHistory[].idRequired
string

Format: uuid.

investigation.checkHistory[].screeningIdRequired
string

Format: uuid.

investigation.checkHistory[].labelRequired
string
investigation.checkHistory[].statusRequired
string

Values: "outstanding", "completed_externally", "not_applicable".

investigation.checkHistory[].evidenceReferenceRequired
string
investigation.checkHistory[].rationaleRequired
string
investigation.checkHistory[].actorIdRequired
string
investigation.checkHistory[].updatedAtRequired
string

Format: date-time.

investigation.checkHistory[].expiresAtRequired
string or null

May be null.

investigation.checkHistory[].expiresAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.reuseChallengesRequired
object[]
investigation.reuseChallenges item fields

Each array item: object.

investigation.reuseChallenges[].ruleIdRequired
string
investigation.reuseChallenges[].originCaseIdRequired
string
investigation.reuseChallenges[].challengedByCaseIdRequired
string
investigation.reuseChallenges[].actorIdRequired
string
investigation.reuseChallenges[].revokedAtRequired
string

Format: date-time.

investigation.reuseChallenges[].affectedCaseIdsRequired
string[]
investigation.reuseChallenges[].affectedCaseIds item fields

Each array item: string.

investigation.submittedByRequired
string or null

May be null.

investigation.submittedBy fields and rules

Allowed alternatives

  • string
  • null

    May be null.

investigation.approvedByRequired
string or null

May be null.

investigation.approvedBy fields and rules

Allowed alternatives

  • string
  • null

    May be null.

investigation.matchesRequired
object[]
investigation.matches item fields

Each array item: object.

investigation.matches[].idRequired
string

Format: uuid.

investigation.matches[].screeningIdRequired
string

Format: uuid.

investigation.matches[].sourceIdRequired
string
investigation.matches[].recordIdRequired
string
investigation.matches[].identityDecisionRequired
string
investigation.matches[].businessDecisionRequired
string
investigation.matches[].rationaleRequired
string
investigation.matches[].reusableUntilRequired
string or null

May be null.

investigation.matches[].reusableUntil fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.matches[].reusedRuleIdRequired
string or null

May be null.

investigation.matches[].reusedRuleId fields and rules

Allowed alternatives

  • string

    Format: uuid.

  • null

    May be null.

investigation.matches[].actorIdRequired
string
investigation.matches[].updatedAtRequired
string

Format: date-time.

investigation.subjectRequired
Subject or null

May be null.

investigation.subject fields and rules

Allowed alternatives

  • Subject

    See all Subject fields for the complete structure, required properties and constraints.

  • null

    May be null.

investigation.originCorrectionRequired
object or null

May be null.

investigation.originCorrection fields and rules

Allowed alternatives

  • Provide investigation.originCorrection.caseId and investigation.originCorrection.screeningId.
    investigation.originCorrection.caseIdRequired
    string

    Format: uuid.

    investigation.originCorrection.screeningIdRequired
    string

    Format: uuid.

  • null

    May be null.

investigation.evidenceRequired
object[]
investigation.evidence item fields

Each array item: object.

investigation.evidence[].idRequired
string

Format: uuid.

investigation.evidence[].screeningIdRequired
string

Format: uuid.

investigation.evidence[].sourceIdRequired
string
investigation.evidence[].recordIdRequired
string
investigation.evidence[].fieldRequired
string
investigation.evidence[].valueRequired
string
investigation.evidence[].sourceReferenceRequired
string
investigation.evidence[].verificationRequired
string

Values: "unverified", "verified".

investigation.evidence[].comparisonRequired
string

Values: "agrees", "conflicts", "unknown".

investigation.evidence[].notesRequired
string
investigation.evidence[].contentRequired
string
investigation.evidence[].actorIdRequired
string
investigation.evidence[].createdAtRequired
string

Format: date-time.

investigation.evidence[].expiresAtRequired
string or null

May be null.

investigation.evidence[].expiresAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.correctionsRequired
object[]
investigation.corrections item fields

Each array item: object.

investigation.corrections[].idRequired
string

Format: uuid.

investigation.corrections[].screeningIdRequired
string

Format: uuid.

investigation.corrections[].resultScreeningIdRequired
string

Format: uuid.

investigation.corrections[].resultCaseIdRequired
string or null

May be null.

investigation.corrections[].resultCaseId fields and rules

Allowed alternatives

  • string

    Format: uuid.

  • null

    May be null.

investigation.corrections[].beforeRequired
objectView Subject schema
investigation.corrections[].before fields and rules

See all Subject fields for the complete structure, required properties and constraints.

investigation.corrections[].afterRequired
objectView Subject schema
investigation.corrections[].after fields and rules

See all Subject fields for the complete structure, required properties and constraints.

investigation.corrections[].reasonRequired
string
investigation.corrections[].actorIdRequired
string
investigation.corrections[].createdAtRequired
string

Format: date-time.

investigation.corrections[].expiresAtRequired
string or null

May be null.

investigation.corrections[].expiresAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.reviewHistoryRequired
object[]
investigation.reviewHistory item fields

Each array item: object.

investigation.reviewHistory[].idRequired
string

Format: uuid.

investigation.reviewHistory[].screeningIdRequired
string

Format: uuid.

investigation.reviewHistory[].sourceIdRequired
string
investigation.reviewHistory[].recordIdRequired
string
investigation.reviewHistory[].reviewRequired
object
investigation.reviewHistory[].review fields and rules
investigation.reviewHistory[].review.idRequired
string

Format: uuid.

investigation.reviewHistory[].review.screeningIdRequired
string

Format: uuid.

investigation.reviewHistory[].review.sourceIdRequired
string
investigation.reviewHistory[].review.recordIdRequired
string
investigation.reviewHistory[].review.identityDecisionRequired
string
investigation.reviewHistory[].review.businessDecisionRequired
string
investigation.reviewHistory[].review.rationaleRequired
string
investigation.reviewHistory[].review.reusableUntilRequired
string or null

May be null.

investigation.reviewHistory[].review.reusableUntil fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.reviewHistory[].review.reusedRuleIdRequired
string or null

May be null.

investigation.reviewHistory[].review.reusedRuleId fields and rules

Allowed alternatives

  • string

    Format: uuid.

  • null

    May be null.

investigation.reviewHistory[].review.actorIdRequired
string
investigation.reviewHistory[].review.updatedAtRequired
string

Format: date-time.

investigation.reviewHistory[].replacedByRequired
string
investigation.reviewHistory[].reasonRequired
string

Values: "decision_updated", "evidence_added", "subject_corrected", "rule_challenged".

investigation.reviewHistory[].createdAtRequired
string

Format: date-time.

investigation.reviewHistory[].expiresAtRequired
string or null

May be null.

investigation.reviewHistory[].expiresAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

investigation.commentsRequired
object[]
investigation.comments item fields

Each array item: object.

investigation.comments[].idRequired
string

Format: uuid.

investigation.comments[].bodyRequired
string
investigation.comments[].actorIdRequired
string
investigation.comments[].createdAtRequired
string

Format: date-time.

investigation.attachmentsRequired
object[]
investigation.attachments item fields

Each array item: object.

investigation.attachments[].idRequired
string

Format: uuid.

investigation.attachments[].titleRequired
string
investigation.attachments[].sha256Required
string
investigation.attachments[].sizeRequired
integer

Minimum: 0.

investigation.attachments[].actorIdRequired
string
investigation.attachments[].createdAtRequired
string

Format: date-time.

investigation.attachments[].expiresAtRequired
string or null

May be null.

investigation.attachments[].expiresAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

evidenceRequired
object[]
evidence item fields

Each array item: object.

evidence[].idRequired
string

Format: uuid.

evidence[].createdAtRequired
string

Format: date-time.

evidence[].expiresAtRequired
string or null

May be null.

evidence[].expiresAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

evidence[].expiredRequired
boolean
evidence[].subjectRequired
Subject or null

May be null.

evidence[].subject fields and rules

Allowed alternatives

  • Subject

    See all Subject fields for the complete structure, required properties and constraints.

  • null

    May be null.

evidence[].resultRequired
ScreeningResult or null

May be null.

evidence[].result fields and rules

Allowed alternatives

decisionsRequired
object[]
decisions item fields

Each array item: object.

decisions[].idRequired
string

Format: uuid.

decisions[].actorIdRequired
string
decisions[].decisionRequired
string
decisions[].businessDispositionRequired
string

Values: "pending", "allow", "restrict", "escalate".

decisions[].appliedControlsRequired
AppliedDecisionControls or null

May be null.

decisions[].appliedControls fields and rules

Allowed alternatives

decisions[].notesRequired
string or null

May be null.

decisions[].notes fields and rules

Allowed alternatives

  • string
  • null

    May be null.

decisions[].createdAtRequired
string

Format: date-time.

decisions[].screeningIdRequired
string or null

May be null.

decisions[].screeningId fields and rules

Allowed alternatives

  • string

    Format: uuid.

  • null

    May be null.

decisions[].evidenceExpiredRequired
boolean
attachmentsRequired
object[]
attachments item fields

Each array item: object.

attachments[].idRequired
string

Format: uuid.

attachments[].titleRequired
string
attachments[].sha256Required
string
attachments[].contentRequired
string
attachments[].createdAtRequired
string

Format: date-time.

documentsRequired
object[]
documents item fields

Each array item: object.

documents[].idRequired
string

Format: uuid.

documents[].titleRequired
string
documents[].urlRequired
string
documents[].repositoryRequired
string
documents[].documentVersionRequired
string
documents[].sha256Required
string or null

May be null.

documents[].sha256 fields and rules

Allowed alternatives

  • string
  • null

    May be null.

documents[].provenanceRequired
string
documents[].verificationRequired
string

Values: "unverified", "reviewer_verified".

documents[].verifiedAtRequired
string or null

May be null.

documents[].verifiedAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

documents[].actorIdRequired
string
documents[].createdAtRequired
string

Format: date-time.

holdsRequired
object[]
holds item fields

Each array item: object.

holds[].idRequired
string

Format: uuid.

holds[].reasonRequired
string
holds[].untilRequired
string or null

May be null.

holds[].until fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

holds[].releasedAtRequired
string or null

May be null.

holds[].releasedAt fields and rules

Allowed alternatives

  • string

    Format: date-time.

  • null

    May be null.

holds[].releasedByOptional
string or null

May be null.

holds[].releasedBy fields and rules

Allowed alternatives

  • string
  • null

    May be null.

holds[].releaseReasonOptional
string or null

May be null.

holds[].releaseReason fields and rules

Allowed alternatives

  • string
  • null

    May be null.

limitationsRequired
string[]
limitations item fields

Each array item: string.

Example response

Recorded from the real application handler against an isolated synthetic database. IDs, times and nonfunctional temporary secrets are normalized. No customer data or live provider request.

{
  "documents": [
    {
      "id": "00000000-0000-4000-8000-000000000001",
      "title": "Synthetic ownership evidence",
      "url": "https://repository.example.test/records/DOCS-001",
      "repository": "Synthetic approved repository",
      "documentVersion": "1",
      "sha256": null,
      "provenance": "Obtained by the synthetic reviewer from the authorized repository.",
      "verification": "unverified",
      "verifiedAt": null,
      "actorId": "docs-synthetic-reviewer",
      "createdAt": "2026-09-17T12:00:00.000Z"
    }
  ],
  "format": "sanctionskit-case-audit@1",
  "generatedAt": "2026-09-17T12:00:00.000Z",
  "environment": "sandbox",
  "investigation": {
    "id": "00000000-0000-4000-8000-000000000002",
    "screeningId": "00000000-0000-4000-8000-000000000003",
    "counterpartyId": "00000000-0000-4000-8000-000000000004",
    "decision": "dismissed",
    "revision": 10,
    "assigneeId": null,
    "priority": "high",
    "dueAt": null,
    "escalatedAt": null,
    "requiresSecondReview": false,
    "reviewState": "approved",
    "businessDisposition": "allow",
    "reviewStartedAt": "2026-09-17T12:00:00.000Z",
    "supersededByScreeningId": null,
    "supersededByCaseId": null,
    "approvalRequiredByPolicy": false,
    "approvalRequiredForActions": [],
    "approverRoles": [
      "owner",
      "admin",
      "analyst"
    ],
    "reviewConcern": null,
    "policyContext": {
      "id": "00000000-0000-4000-8000-000000000005",
      "version": 1,
      "name": "Synthetic onboarding policy",
      "purpose": "Document vendor onboarding checks",
      "exclusions": []
    },
    "decisionHistory": [
      {
        "id": "00000000-0000-4000-8000-000000000006",
        "decision": "dismissed",
        "businessDisposition": "allow",
        "rationale": "Synthetic documentation review completed.",
        "actorId": "docs-synthetic-reviewer",
        "actorLabel": "reviewer@example.test",
        "createdAt": "2026-09-17T12:00:00.000Z",
        "appliedControls": {
          "restrictedRoles": {
            "approval": [],
            "production": []
          },
          "screeningPolicy": {
            "id": "00000000-0000-4000-8000-000000000005",
            "review": {
              "approverRoles": [
                "owner",
                "admin",
                "analyst"
              ],
              "secondReviewFor": [],
              "requireSecondReview": false
            },
            "version": 1
          },
          "governanceRevision": 2,
          "organizationApproval": {
            "approverRoles": [
              "owner",
              "admin",
              "analyst"
            ],
            "secondReviewFor": [],
            "requireSecondReview": false
          }
        },
        "screeningId": "00000000-0000-4000-8000-000000000003"
      },
      {
        "id": "00000000-0000-4000-8000-000000000007",
        "decision": "open",
        "businessDisposition": "pending",
        "rationale": "Potential matches require analyst review.",
        "actorId": "system:screening",
        "actorLabel": null,
        "createdAt": "2026-09-17T12:00:00.000Z",
        "appliedControls": {
          "restrictedRoles": {
            "approval": [],
            "production": []
          },
          "screeningPolicy": {
            "id": "00000000-0000-4000-8000-000000000005",
            "review": {
              "approverRoles": [
                "owner",
                "admin",
                "analyst"
              ],
              "secondReviewFor": [],
              "requireSecondReview": false
            },
            "version": 1
          },
          "governanceRevision": 1,
          "organizationApproval": {
            "approverRoles": [
              "owner",
              "admin",
              "analyst"
            ],
            "secondReviewFor": [],
            "requireSecondReview": false
          }
        },
        "screeningId": "00000000-0000-4000-8000-000000000003"
      }
    ],
    "decisionHistoryTruncated": false,
    "checks": [
      {
        "label": "Ownership review",
        "status": "completed_externally",
        "evidenceReference": "Synthetic repository record DOCS-001",
        "rationale": "Synthetic example of an independently completed ownership review.",
        "actorId": "docs-synthetic-reviewer",
        "updatedAt": "2026-09-17T12:00:00.000Z"
      }
    ],
    "checkHistory": [
      {
        "id": "00000000-0000-4000-8000-000000000008",
        "screeningId": "00000000-0000-4000-8000-000000000003",
        "label": "Ownership review",
        "status": "completed_externally",
        "evidenceReference": "Synthetic repository record DOCS-001",
        "rationale": "Synthetic example of an independently completed ownership review.",
        "actorId": "docs-synthetic-reviewer",
        "updatedAt": "2026-09-17T12:00:00.000Z",
        "expiresAt": "2026-09-17T12:00:00.000Z"
      }
    ],
    "reuseChallenges": [],
    "submittedBy": "docs-synthetic-reviewer",
    "approvedBy": "docs-synthetic-reviewer",
    "matches": [
      {
        "id": "00000000-0000-4000-8000-000000000009",
        "screeningId": "00000000-0000-4000-8000-000000000003",
        "sourceId": "sandbox-synthetic",
        "recordId": "sandbox:person-001",
        "identityDecision": "different",
        "businessDecision": "allow",
        "rationale": "Synthetic example: retained identifying evidence belongs to a different individual.",
        "reusableUntil": null,
        "reusedRuleId": null,
        "actorId": "docs-synthetic-reviewer",
        "updatedAt": "2026-09-17T12:00:00.000Z"
      }
    ],
    "subject": {
      "name": "Alex Morgan",
      "entityType": "person",
      "identifiers": []
    },
    "evidence": [],
    "corrections": [],
    "originCorrection": null,
    "reviewHistory": [],
    "comments": [
      {
        "id": "00000000-0000-4000-8000-000000000010",
        "body": "Synthetic example: identifiers require reviewer comparison.",
        "actorId": "docs-synthetic-reviewer",
        "createdAt": "2026-09-17T12:00:00.000Z"
      }
    ],
    "attachments": []
  },
  "evidence": [
    {
      "id": "00000000-0000-4000-8000-000000000003",
      "createdAt": "2026-09-17T12:00:00.000Z",
      "expiresAt": "2026-09-17T12:00:00.000Z",
      "expired": false,
      "subject": {
        "name": "Alex Morgan",
        "entityType": "person",
        "identifiers": []
      },
      "result": {
        "id": "00000000-0000-4000-8000-000000000003",
        "status": "potential_match",
        "matches": [
          {
            "score": 96,
            "record": {
              "id": "sandbox:person-001",
              "list": "Synthetic demonstration records",
              "names": [
                {
                  "kind": "primary",
                  "value": "Alex Morgan"
                },
                {
                  "kind": "alias",
                  "value": "Алекс Морган"
                }
              ],
              "sourceId": "sandbox-synthetic",
              "addresses": [],
              "authority": "SanctionsKit synthetic examples",
              "sourceUrl": "https://sanctionskit.com/demo",
              "birthDates": [
                {
                  "value": "1984",
                  "original": "1984",
                  "precision": "year"
                }
              ],
              "entityType": "person",
              "extensions": {
                "synthetic": true
              },
              "identifiers": [
                {
                  "type": "passport",
                  "value": "DEMO-001",
                  "issuer": "Fictional authority"
                }
              ],
              "designations": [
                {
                  "wording": "Invented example, not a government designation.",
                  "category": "other",
                  "programs": [
                    "Synthetic demonstration only"
                  ],
                  "legalReferences": []
                }
              ],
              "nationalities": []
            },
            "evidence": [
              {
                "field": "name",
                "method": "normalized_name_exact",
                "queryValue": "Alex Morgan",
                "explanation": "Name similarity is a review signal, not a probability or finding of wrongdoing.",
                "sourceValue": "Alex Morgan",
                "contribution": 96
              }
            ],
            "conflicts": []
          }
        ],
        "coverage": [
          {
            "fresh": true,
            "version": "1",
            "sourceId": "sandbox-synthetic",
            "retrievedAt": "2026-09-17T12:00:00.000Z"
          }
        ],
        "versions": {
          "policy": "review-1.1.0",
          "dataset": "sandbox-synthetic-v1",
          "package": "sandbox@1",
          "matchingEngine": "deterministic-1.1.1"
        },
        "createdAt": "2026-09-17T12:00:00.000Z",
        "disclaimer": "Potential matches support analyst review. No match means no match in the selected sources and dataset, not legal clearance. Scores are similarity measures, not probabilities of wrongdoing.",
        "environment": "sandbox",
        "policySnapshot": {
          "id": "00000000-0000-4000-8000-000000000005",
          "name": "Synthetic onboarding policy",
          "review": {
            "approverRoles": [
              "owner",
              "admin",
              "analyst"
            ],
            "secondReviewFor": [],
            "requireSecondReview": false
          },
          "purpose": "Document vendor onboarding checks",
          "version": 1,
          "createdAt": "2026-09-17T12:00:00.000Z",
          "exclusions": [],
          "environment": "sandbox",
          "jurisdictions": [
            "Example jurisdiction"
          ],
          "externalChecks": [
            "Ownership review"
          ],
          "optionalSources": {},
          "requiredSources": {},
          "retentionTrigger": "business_event",
          "monitoringIntervalHours": 24
        }
      }
    }
  ],
  "decisions": [
    {
      "id": "00000000-0000-4000-8000-000000000007",
      "actorId": "system:screening",
      "decision": "open",
      "businessDisposition": "pending",
      "appliedControls": {
        "restrictedRoles": {
          "approval": [],
          "production": []
        },
        "screeningPolicy": {
          "id": "00000000-0000-4000-8000-000000000005",
          "review": {
            "approverRoles": [
              "owner",
              "admin",
              "analyst"
            ],
            "secondReviewFor": [],
            "requireSecondReview": false
          },
          "version": 1
        },
        "governanceRevision": 1,
        "organizationApproval": {
          "approverRoles": [
            "owner",
            "admin",
            "analyst"
          ],
          "secondReviewFor": [],
          "requireSecondReview": false
        }
      },
      "notes": "Potential matches require analyst review.",
      "createdAt": "2026-09-17T12:00:00.000Z",
      "screeningId": "00000000-0000-4000-8000-000000000003",
      "evidenceExpired": false
    },
    {
      "id": "00000000-0000-4000-8000-000000000006",
      "actorId": "docs-synthetic-reviewer",
      "decision": "dismissed",
      "businessDisposition": "allow",
      "appliedControls": {
        "restrictedRoles": {
          "approval": [],
          "production": []
        },
        "screeningPolicy": {
          "id": "00000000-0000-4000-8000-000000000005",
          "review": {
            "approverRoles": [
              "owner",
              "admin",
              "analyst"
            ],
            "secondReviewFor": [],
            "requireSecondReview": false
          },
          "version": 1
        },
        "governanceRevision": 2,
        "organizationApproval": {
          "approverRoles": [
            "owner",
            "admin",
            "analyst"
          ],
          "secondReviewFor": [],
          "requireSecondReview": false
        }
      },
      "notes": "Synthetic documentation review completed.",
      "createdAt": "2026-09-17T12:00:00.000Z",
      "screeningId": "00000000-0000-4000-8000-000000000003",
      "evidenceExpired": false
    }
  ],
  "attachments": [],
  "holds": [
    {
      "id": "00000000-0000-4000-8000-000000000011",
      "reason": "Synthetic documented preservation need.",
      "until": null,
      "releasedBy": "docs-synthetic-reviewer",
      "releaseReason": "Synthetic preservation need concluded.",
      "releasedAt": "2026-09-17T12:00:00.000Z"
    }
  ],
  "limitations": [
    "This package records retained screening evidence and review decisions; it is not a legal clearance or a certification of compliance.",
    "Expired or deliberately unretained inputs are omitted and cannot be reconstructed. Source and policy scope are limited to each included result.",
    "Attachment hashes help compare files; this export is not an independently signed or tamper-proof attestation."
  ]
}
application/pdf

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Format: binary.

Example response

Synthetic contract example, validated against the response schema. Invented data; no live customer, provider request, payment, message or source activation.

%PDF-1.7
[Binary PDF audit package; choose application/json to inspect the example evidence.]
400invalid_request — Correct the request fields, resource identifiers, JSON body or query parameters before retrying.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. Correct the request fields, resource identifiers, JSON body or query parameters before retrying.

{
  "error": {
    "code": "invalid_request",
    "message": "The request is invalid.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
401authentication_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.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

WWW-Authenticate
string

Bearer authentication challenge.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. Send Authorization: Bearer with a valid API key. An omitted header can produce authentication_required; invalid supplied credentials produce invalid_api_key.

{
  "error": {
    "code": "authentication_required",
    "message": "Sign in to continue.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
invalid api key

Synthetic error example. Use an active key for the intended environment.

{
  "error": {
    "code": "invalid_api_key",
    "message": "The API key is invalid, expired, or revoked.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
403permission_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.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. Ask an organization owner to grant the required role or API-key scope.

{
  "error": {
    "code": "permission_denied",
    "message": "Your role does not allow this action.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
insufficient scope

Synthetic error example. Use a key with the scope stated in this operation.

{
  "error": {
    "code": "insufficient_scope",
    "message": "The API key does not grant this action.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
404not_found — Check the identifier and selected environment. The resource must belong to your organization and remain available.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. Check the identifier and selected environment. The resource must belong to your organization and remain available.

{
  "error": {
    "code": "not_found",
    "message": "Case not found.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
405method_not_allowed — Use a method in the Allow response header. OPTIONS lists supported methods; HEAD follows GET authorization and returns no body.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

Allow
string

Comma-separated supported HTTP methods.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. Use a method in the Allow response header. OPTIONS lists supported methods; HEAD follows GET authorization and returns no body.

{
  "error": {
    "code": "method_not_allowed",
    "message": "This method is not supported for this endpoint.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
413response_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.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. Reduce the requested page size or use the documented segmented case archive. No evidence is silently truncated.

{
  "error": {
    "code": "response_too_large",
    "message": "This response exceeds the size limit. Request a smaller page or a segmented export.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
export too large

Synthetic error example. Narrow the screening date range. For a large case, retrieve every segment from the case archive endpoint.

{
  "error": {
    "code": "export_too_large",
    "message": "This export exceeds the bounded report size. Choose a shorter date range.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
429rate_limited — Wait for the request window to reset and retry with backoff.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

Retry-After
string

When present, a delay in seconds or an HTTP-date before which the client should not retry. Service-unavailable responses default to a one-second delay unless another safe value is supplied. A usage allowance error may require quota recovery instead of retrying.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. Wait for the request window to reset and retry with backoff.

{
  "error": {
    "code": "rate_limited",
    "message": "The per-minute request limit has been reached.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
500internal_error — Retry with backoff. For writes reuse the same idempotency key and identical input; include requestId when contacting support.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. Retry with backoff. For writes reuse the same idempotency key and identical input; include requestId when contacting support.

{
  "error": {
    "code": "internal_error",
    "message": "The request could not be completed.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}
503temporarily_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.

Response headers

X-Request-Id
string

Server-generated correlation identifier, also returned in error.requestId.

Format: uuid.

Retry-After
string

When present, a delay in seconds or an HTTP-date before which the client should not retry. Service-unavailable responses default to a one-second delay unless another safe value is supplied. A usage allowance error may require quota recovery instead of retrying.

application/jsonView Error schema

Response fields

Required means present in the containing object. Optional fields may be omitted; null is allowed only where stated. Array item fields apply to every item.

Failure envelope for every documented non-2xx API response. No data property is returned. Switch on error.code; messages may change.

errorRequired
object
error fields and rules
error.codeRequired
string

Machine-readable failure code. See this operation’s status-specific examples for codes and recovery.

error.messageRequired
string

Human-readable explanation. Do not parse this text to control application behavior.

error.requestIdRequired
string

Server correlation ID, also returned in X-Request-Id. Include this ID in support requests.

Format: uuid.

error.detailsOptional
object[] or object or string or number or boolean or null

Optional JSON details for client and validation failures. Validation failures return an array of { path, message } issues; other 4xx codes may return a code-specific object. Server failures omit details. Never assume this key is present.

error.details fields and rules

Allowed alternatives

  • object[]

    Maximum items: 50.

    Each array item: object.

    error.details[].pathRequired
    string

    Dot-separated invalid field path, including array indexes.

    Maximum length: 160.

    error.details[].messageRequired
    string

    Validation problem for this field.

    Maximum length: 300.

  • object

    Additional keys are allowed; their values are not a fixed contract.

  • string or number or boolean or null

    May be null.

error.detailsTruncatedOptional
boolean

True when only the first 50 validation issues are returned. Validation paths and messages are bounded.

Example response

Synthetic error example. 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.

{
  "error": {
    "code": "temporarily_unavailable",
    "message": "The service is temporarily unavailable. Retry shortly.",
    "requestId": "01234567-89ab-4cde-8f01-23456789abcd"
  }
}

Back to request parameters