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.
Bulk sanctions and portfolio screening
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.
A file. Individual outcomes.
Correct an exception without resubmitting the whole file.
What this helps your team do
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.
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.
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
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.
Use each supplier’s known legal name and IDs. Add your own reference and choose the sources required by your policy.
Check the job’s progress. Match each row number to your input file and save the IDs of completed results.
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.
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.
| Input method | Limit | Prepare the input |
|---|---|---|
| Inline JSON | Up to 100 screening requests | A named batch with a subjects array; each row has a subject and exactly one coverage selector. |
| Private JSONL upload | Up to 10,000 rows and 25 MiB | UTF-8 .jsonl, one complete request per line; use the authorized private upload flow. |
| Excel or CSV source file | Convert before submission | Map names, entity types, references, and optional identity fields into JSON or JSONL. |
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.
{"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"}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.
| Input reference | Row state | Screening outcome | Follow-up |
|---|---|---|---|
| supplier-001 | completed | no_match | Continue the remaining supplier checks under policy. |
| supplier-002 | completed | potential_match | Assign the retained candidate evidence for review. |
| supplier-003 | failed | No completed screening result | Resolve unavailable coverage, then resubmit this subject. |
| supplier-004 | completed | no_match | Preserve the result reference and its selected scope. |
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.
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.
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.
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
Check your sources, try a free live check and estimate your monthly cost.
Find your required sources, what they cover and when they were refreshed.
Explore coverageUse your free live checks to find possible matches. Compare the evidence and save a decision.
Start with 250 free checksCount new checks, rows in uploaded lists and repeat checks from monitoring.
See workload examples
Evaluate the details
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.
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.
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.
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.
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.
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 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.