Bulk sanctions and portfolio screening

Batch sanctions screening. Every row accounted for.

Screen a customer or supplier list in one job. See which rows finished, which found possible matches, and which need a fix. Each subject keeps its own result and review history.

Paid plans start at $59/month for 5,000 checks each month. API and review dashboard included. See pricing.

250 free live screenings. One lifetime allowance. No credit card required.
SanctionsKitIllustrative workflow

A file. Individual outcomes.

SubjectNext step
PersonReview match
OrganizationView result
Incomplete rowCorrect input
Failed rows stay visible.

Correct an exception without resubmitting the whole file.

Every row keeps its own outcome

What this helps your team do

Turn a list of subjects into work your team can review.

Submit the work once

Submit up to 100 subjects as JSON, or upload a private JSONL file with up to 10,000 rows and 25 MiB. Each row names its own sources.

Keep exceptions visible

Follow progress after the file is accepted. You can close the browser while the job runs. A failed row stays separate from a completed no-match.

Follow the individual result

Open saved results and send possible matches to review. Fix failed rows and submit those again, without repeating the checks that already finished.

A practical use case

An existing supplier portfolio needs a sanctions check.

A fictional supplier file has four rows. Three finish, and one fails. Your team can review the three results while it fixes the failed row. The batch record keeps track of all four.

  1. 01

    Prepare subjects and coverage

    Use each supplier’s known legal name and IDs. Add your own reference and choose the sources required by your policy.

  2. 02

    Track accepted work

    Check the job’s progress. Match each row number to your input file and save the IDs of completed results.

  3. 03

    Resolve the remaining exceptions

    Find the cause of each failed row. Submit corrected rows as a new job and keep a link to the first run in your records.

Prepare each row as a complete screening request

Start with the people or companies you need to check. Give every row a stable customer or supplier reference. Include the known name, subject type, and useful IDs. Leave missing facts out. Each row needs its own source IDs or package version, so you can tell what was checked for that subject.

If your list starts in Excel or CSV, map its columns to the supported JSON format first. Native .xlsx and CSV batch uploads are not supported. For larger files, use UTF-8 JSONL: one request per line, with no header or outer array. Batches use standard retention; minimal-retention rows are rejected.

Scroll horizontally to compare every column.

Supported batch screening input formats
Input methodLimitPrepare the input
Inline JSONUp to 100 screening requestsA named batch with a subjects array; each row has a subject and exactly one coverage selector.
Private JSONL uploadUp to 10,000 rows and 25 MiBUTF-8 .jsonl, one complete request per line; use the authorized private upload flow.
Excel or CSV source fileConvert before submissionMap names, entity types, references, and optional identity fields into JSON or JSONL.

Try a small file before a full portfolio

The two subjects below are invented and use the synthetic sandbox package. Put one JSON object on each line for upload. For an inline batch, put the same objects in the subjects array. The reference field links a row to your records; it does not remove duplicate subjects for you.

Uploading a file does not start a screening job by itself. Save the upload ID, wait until the upload is validated and ready, then create the batch. Save the batch ID too. The job can keep running after you disconnect. The batch API guide explains each step and how to read every page of rows.

JSONL · two fictional evaluation subjects
{"subject":{"name":"Juniper Example Cooperative","entityType":"organization"},"reference":"evaluation-supplier-001","package":"sandbox@1","retention":"standard"}
{"subject":{"name":"Alex Morgan","entityType":"person","birthDate":"1982"},"reference":"evaluation-supplier-002","package":"sandbox@1","retention":"standard"}

Check every row, including failures

Consider four fictional suppliers. Two rows return no_match. One returns potential_match and needs review. The fourth fails because a required source is unavailable. That gives you three completed screenings and one failed check. It does not mean that all four suppliers have been approved.

A completed batch can still have failed rows. Read the row pages until nextOffset is null. Match each row back to the input and retrieve saved results by screening_id. Never turn a failed, pending, or cancelled row into a no-match in your own system.

Scroll horizontally to compare every column.

Illustrative four-row supplier batch, not a live screening
Input referenceRow stateScreening outcomeFollow-up
supplier-001completedno_matchContinue the remaining supplier checks under policy.
supplier-002completedpotential_matchAssign the retained candidate evidence for review.
supplier-003failedNo completed screening resultResolve unavailable coverage, then resubmit this subject.
supplier-004completedno_matchPreserve the result reference and its selected scope.

Review matches and retry only the rows that need it

Possible matches enter the same review queue as individual checks. Assign the case, compare each source record, and explain whether it is the same identity. Record the business decision separately and get a second review if required. A batch can finish while those cases remain open.

Correct unsuccessful subjects and submit them as a new job. Keep the first batch so your team can explain what happened to each row. If you cancel, pending work stops between chunks. Completed checks still count, and unused reservations are released. Repeating the whole file would create new checks for rows that already succeeded.

Choose the right export

The batch row ledger helps you account for the input file. Use each completed screening ID to open its saved result or export its evidence. The screening register provides a CSV for a date range. It is not a dedicated batch-only download; use your saved row IDs to tie it back to a particular file.

A case packet gives you available facts and review history as PDF or JSON. Upload original PDFs, images, and passport scans directly to your organization’s document service, then link them to a case. SanctionsKit does not store those original files. Export while the case evidence still exists. See evidence exports and reports.

Count completed subjects when you estimate cost

A file with 2,000 completed checks uses 2,000 screening units. If 200 failed rows are fixed and later finish, those checks add 200 units. Opening the earlier results or adding review decisions uses no extra units. A new check of the same subject does.

Add planned monitoring rescreens to the same monthly workload. Bulk files and uploads in progress also need enough file storage. Compare plans and example workloads before a large upload. A small synthetic sandbox file can help you test column mapping and error handling first.

Reconcile the uploaded rows with completed work

Try a small file with made-up names. Include a row with a known error. Compare the number of names you sent with the results you got back. A batch can finish while some rows still need work. Keep those failed rows in view. Use the batch API reference to add bulk sanctions screening to your app.

TRY IT WITH YOUR TEAM

See if SanctionsKit fits your team.

Check your sources, try a free live check and estimate your monthly cost.

Stacks of freight containers beside port cranes
Editorial photograph · Eilis Garvey / Unsplash

Evaluate the details

Batch screening: practical questions.

Can I upload Excel or CSV files for bulk sanctions screening?

Not directly. Convert the rows to JSON for an inline batch, or JSONL for a private file upload. An inline batch supports 100 subjects. A private upload supports 10,000 rows and 25 MiB. Test a small file before converting a full customer list.

What details does each batch row need?

Each row is a complete screening request. It needs the subject’s type and name, plus chosen sources or a package version. Add known IDs and your own reference when available. Use standard retention and leave unknown facts out.

Does a completed batch mean every customer passed?

No. The job may include failed rows, and completed checks may contain possible matches. Review each row’s status and each saved result. Your team must still finish any open reviews and other checks required by its policy.

How do I download batch check results?

Read the batch row ledger and use each screening ID to retrieve its saved result or evidence. For reporting, use the date-range CSV register. For one case, export a PDF or JSON case packet. Keep the batch row IDs so you can connect each export to the original file.

Can I cancel a batch after it starts?

Yes. Cancellation stops pending work between processing chunks. Checks that already finished stay in the record and count toward usage. Allowance held for cancelled rows is released.

What uses the file-storage allowance?

Private bulk files, supporting text attachments, and uploads in progress share your plan’s file storage. Database facts behind the check and links to external documents do not use that file allowance.

See SanctionsKit in action

Start checking your customer or supplier list for free.

Start with 250 free live checks. Use the API or dashboard to review matches and save decisions. Choose a paid plan when you need more checks.

250 free live screenings. One lifetime allowance. No credit card required.