Decide who the match is, then what action to take
Review has two decisions. First, decide whether a candidate is the same person or company as your input. Then record the business action required by your policy. The API calls that action the business disposition. A same-identity finding does not require the same action under every source or jurisdiction.
An escalation means someone still needs to resolve the case. It stays open and needs an accountable reviewer. A no-match can also open a case automatically when your policy requires external checks, approval of the business action, or retention that starts at a business event. You can open an optional case for other no-match results.
Before submitting a case, complete its required external checks and choose the business disposition. The saved record keeps three things separate: the automated screening status, the reviewer's identity findings, and the business action.
Locate the case for a screening
Use a key with results:read. Set SCREENING_ID to the screening response's id, then request /cases?screeningId=ID&evidence=all. Read data.items and follow nextCursor if present. Each case has its own id and shows the screening status, review state, business disposition, and whether evidence is still available. A review decision does not change the original screening status.
GET /investigations/{caseId} returns the current investigation, including screening evidence, match reviews, findings, comments, checks, and history. GET /cases/{caseId} returns a smaller case record with decisions. Pass nextDecisionCursor as cursor to read more decisions. A change to the latest screening can require new review even if an older decision is still saved.
curl --fail-with-body "https://www.sanctionskit.com/api/v1/cases?screeningId=$SCREENING_ID&evidence=all&limit=100" \
-H "Authorization: Bearer $SANCTIONSKIT_API_KEY"Read attributed decision history
Call GET /audit with results:read to read retained human decision history. It returns a data page. Use limit and cursor for more entries, q to search, and review to filter decisions. Each entry belongs to its recorded screening. An old decision does not replace the case's current review state.
After retention expires, notes may be removed even if basic audit facts remain. This API covers decision history. The separate administration audit covers settings, keys, and membership and requires a human session. Read the current case and investigation to decide whether work is still open.
curl --fail-with-body "https://www.sanctionskit.com/api/v1/audit?limit=100" \
-H "Authorization: Bearer $SANCTIONSKIT_API_KEY"Let reviewers complete the human decisions
Your integration can read investigation state and send work to an authorized reviewer in the dashboard. Human sessions are required for match decisions, comments, external checks, identity corrections, submission, and approval. API keys cannot act as reviewers. Human changes use the current expectedRevision and screeningId, plus their own Idempotency-Key.
Review the screened identity and selected sources first. Compare the source evidence and decide which candidates are the same identity. Record required external checks and the business disposition, then submit the case for any required approval. A reviewer cannot approve their own submission when a different eligible approver is required. Escalated work stays open.
Standard-retention potential matches create cases. A policy-controlled no-match can also need review. To open an optional no-match case through the API, call POST /cases with screeningId, decision:open, and notes using cases:write. The API still cannot complete the human investigation.
POST /cases is not an idempotent create operation. If the response is lost, check GET /cases before trying to create it again. A 409 case_exists error supplies the existing case ID.
Before marking your business workflow complete, read the current review state and business disposition. Check whether the case was reopened or superseded. A notification acknowledgement, a submission awaiting approval, or an old dismissed candidate does not establish current approval. If the API returns 410, record the evidence gap and arrange a new screening when appropriate.
Assignments, priorities, and due dates help the team track open work. Reports include old open and reopened cases even when they were created before the chosen activity period. Acknowledging a monitoring notification does not close its investigation.
Apply approval and correction controls
Organization and policy rules determine when another eligible person must approve a decision. A reviewer cannot approve their own submission when independent approval is required. Decisions refer to a particular screening and case revision. New evidence or monitoring changes can require another review.
If the identity details are wrong, correct them and run a linked new screening. This creates a replacement case for the active work. The original case becomes superseded and keeps its decisions as history. A reusable different-identity decision remains tied to its original evidence; relevant changes can require the team to check it again.
Request and response reference
Base URL: https://www.sanctionskit.com/api/v1. Open an operation for its complete headers, body fields, response formats, examples and error codes.
- GET
/auditList retained human review decisions - GET
/casesList analyst review cases - POST
/casesOpen a review case for an existing retained screening - GET
/cases/{id}Read a case and append-only decisions - GET
/investigations/{id}Read match decisions, assignments, retained notes and attachment metadata - GET
/investigations/{id}/attachments/{attachmentId}Download a retained text attachmentSchemas:Error
Browse the complete API reference or download the OpenAPI contract.
Frequently asked questions
How do I find the review case for a screening ID?
Call GET /cases with screeningId and a key that has results:read. The response contains data.items and nextCursor. The case has its own ID. Use that ID with GET /investigations/{caseId} for the current investigation, or GET /cases/{caseId} for the smaller case record.
Can the review API approve a possible sanctions match?
An API key cannot make human match decisions or approve a case. It can read the current state and route work to a permitted reviewer. The reviewer completes the investigation in the dashboard, with another eligible approver when required by the policy.
Why can a no-match result still have an open case?
Your policy may require external checks, approval of the business action, or an event that starts retention. Those tasks can remain open even when screening finds no candidates. An optional due-diligence case can also be opened for a no-match. Read the current case state before advancing the workflow.
Does acknowledging a monitoring event finish the review?
No. It records that the notification was handled. The investigation can still need evidence, a decision, or approval. Check the case review state and business disposition, including whether the case was reopened or replaced, before marking the business task complete.
KEEP BUILDING