API documentation

Set a sanctions screening policy for your team

Choose required lists, review steps, and retention rules. Publish a policy version so each screening uses the controls your team approved.

Updated

250 free live screenings. One lifetime allowance. No credit card required.
Discover
GET /policies

Current approved versions; sources:read required.

Reference
ID + version

The result retains its policy snapshot.

Scope
Explicit checks

Required lists and checks your reviewers complete elsewhere.

Choose the checks your policy requires

A screening policy tells the team which sources to check and what to do with the result. Owners and administrators publish policy versions in the dashboard. A published version stays fixed, so an earlier result keeps the rules it used even after the policy changes.

Record why you screen and which jurisdictions apply. Choose required and optional sources for each subject type, and explain any exclusions. Add checks done elsewhere, review and approval steps, how often to recheck, and when retention starts. Choosing lists alone does not establish that the policy meets your obligations.

Read the policy before sending a screening

Call GET /policies with sources:read. The response contains data.items, nextCursor, and requirePolicy. The default page limit is 100; follow nextCursor for more results. GET /policies/{id} uses the same items envelope for the current published version, rather than returning a bare policy object.

Choose the policy approved for your business purpose and subject type. Read requiredSources, optionalSources, review, external checks, monitoring cadence, and retention rules. Send its exact id and version under policy, plus one coverage selector. The example UUID only shows the request shape. Replace it with an ID returned for your organization.

If requirePolicy is true, a production request without an approved policy fails. Retired or replaced versions cannot be used for new work. Fetch the current policy and review changed rules before choosing it. Earlier results keep their policySnapshot; later settings do not rewrite them.

Terminal · curl
curl --fail-with-body "https://www.sanctionskit.com/api/v1/policies?limit=100" \
  -H "Authorization: Bearer $SANCTIONSKIT_API_KEY"

Separate policy administration from machine submission

Owners and administrators publish and retire policies in the dashboard. An API key cannot approve a policy. Your backend reads published policies and sends their IDs and versions with screenings. If a policy is rejected, show the error so an administrator can resolve it.

Keep policySnapshot and versions.policy. The first records your organization's approved business controls. The second records the engine's matching rules. They explain different kinds of change and should not be compared as if they were the same version.

Read published policies and stop new use of old versions

GET /api/v1/policies requires sources:read and returns current policy versions plus requirePolicy. GET /api/v1/policies/{id} returns the current version inside the same items envelope. Publishing or retiring a policy requires an authorized human session. Retirement stops new use while preserving the policy snapshot on earlier results.

Use the exact version in your request

Send policy with its id and version, alongside subject and one coverage choice. The coverage must include the policy's required sources for that subject type. Other sources must be listed as optional. Missing sources, unsupported subject types, and retired or changed policy versions cause an error before screening.

The result saves the policy in policySnapshot. This is the organization's business policy. The separate versions.policy field identifies the matching rules used by the engine. Keep both fields when saving a result.

Your organization can require a published policy for each new production screening. You can still test with invented records in the sandbox. A monitor that uses a policy follows that policy's approved cadence.

JSON request
{
  "subject": {
    "name": "Alex Morgan",
    "entityType": "person",
    "birthDate": "1984"
  },
  "package": "sandbox@1",
  "policy": {
    "id": "00000000-0000-4000-8000-000000000001",
    "version": 1
  }
}

Record checks your team performs elsewhere

An external check is a task a reviewer completes outside SanctionsKit. Record whether it is outstanding, completed externally with an evidence reference, or not applicable with a reason. SanctionsKit does not research ownership or control, calculate aggregate ownership, decide jurisdiction, grant a licence, or authorize a transaction.

Choose review_completed, relationship_ended, or business_event to determine when retention starts. Your policy or organization settings can require a different eligible person to approve the case. Reviewers cannot remove those requirements from a case to bypass the policy.

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.

Browse the complete API reference or download the OpenAPI contract.

Frequently asked questions

What belongs in a sanctions screening policy?

Record why you screen, the relevant jurisdictions, required and optional sources for each subject type, exclusions, and any external checks. Also define review and approval steps, monitoring cadence, and when retention starts. Your organization must assess whether those choices meet its obligations.

Can an API key publish or change a screening policy?

No. An authorized owner or administrator publishes or retires policies in the dashboard. An API key with sources:read can discover published versions. Your integration sends the chosen policy ID and version with the screening request and handles a rejected policy as an error.

What happens if my request leaves out a required policy source?

The request fails before screening. Select all required sources for the subject type and only sources the policy lists as required or optional. Do not remove a required source to get a successful response. If the policy changed, fetch and review its current version.

Is policySnapshot the same as versions.policy?

No. policySnapshot saves the organization policy used for the screening, including its business controls. versions.policy identifies the engine rules used to assess matches. Keep both when saving or exporting a result so a later reviewer can tell which kind of rule changed.

KEEP BUILDING

Where to go next