Skip to main content
Thirdwatchthirdwatch
More research

How to Scrape the UN Sanctions List

Export the official UN Security Council consolidated list into structured individual and entity records.

Editorial illustration for more research
Jul 21, 2026 · 3 min read · 698 words
View the Apify scraper →

Export the official UN Security Council consolidated list into structured individual and entity records. The UN Sanctions List Scraper turns each public UN consolidated-list record into a bounded Apify dataset row and preserves a direct source URL for verification.

Start with a reviewable sample

{"recordType":"Entity","queries":[],"regimes":[],"maxResults":500}

Begin with ten to one hundred records, not a full archive. Inspect identifier stability, date formats, nulls, arrays, free-text fields, and source links. Use permanent reference numbers as primary downstream keys and keep committee context attached. Once the sample matches the intended workflow, raise the result limit deliberately and save the input as a named Apify Task.

Design the dataset around source truth

Keep data ID, permanent reference number, record type, primary and original-script names, aliases, regime, listing date, update dates, nationalities, addresses, comments, and source URL together in the raw landing table. Do not replace missing values with zero, invent status labels, or silently collapse aliases. Use the publisher's stable identifier as the upsert key where one exists; otherwise combine the canonical source URL and observed identifier. Add a downstream collection timestamp so analysts can distinguish a revised record from a newly published record.

A useful pipeline has three layers. The raw layer stores the Actor output without lossy transformations. The review layer adds normalized dates, currencies, or matching candidates while preserving original fields. The application layer contains only decisions that have passed the organization's validation rules. This separation makes source changes auditable and prevents a convenient spreadsheet formula from becoming an undocumented business rule.

Schedule changes without creating alert noise

Run the Task on a cadence appropriate to how often United Nations Security Council changes. Compare stable keys and material fields rather than array order or page position. Send alerts only for additions, removals, deadline changes, status changes, or other changes relevant to the workflow. Store the previous snapshot in a table or object store and make the diff reproducible.

For operational use, log the Actor run ID, dataset ID, input, source URL, and collection time. Use retries for transient network failures, but fail visibly when the publisher returns no records for a query that normally has coverage. Silent empty datasets are more dangerous than explicit failures because they can look like a legitimate all-clear.

Validate before acting

The consolidated list spans distinct Security Council regimes with different measures and criteria. A name match is not identity resolution. Verify the permanent reference, identifiers, committee context, and current official record with human review. The Actor is a collection tool, not a substitute for due diligence, legal interpretation, financial analysis, or publisher methodology. Reviewers should open the source URL, confirm that the record is current, and document the evidence used for any material conclusion.

This workflow is designed for sanctions researchers, compliance teams, policy analysts, and auditors. It is an independent integration and is not affiliated with or endorsed by United Nations Security Council.

Parse the consolidated list by permanent reference

The official endpoint redirects to a time-limited first-party blob containing legacy-compatible XML. The Actor follows that redirect, streams the bytes, and emits INDIVIDUAL and ENTITY nodes. Permanent reference numbers such as CDi.001 encode the regime and record kind and are safer downstream keys than display names.

Individuals and entities use different nested tags for aliases, addresses, nationality, and birth data. The normalizer keeps shared fields consistent while preserving arrays. Passport and national-document numbers are deliberately excluded, reducing sensitive data without removing the identifiers most users need to navigate back to the official record.

The consolidated list does not mean every record has the same measures. Keep regime attached and open the responsible committee page when interpreting scope. The dataset is a structured index into official sanctions material, not a universal legal conclusion.

Why use an Apify Task

A Task makes the exact input repeatable across schedules, webhooks, the API, Make, Zapier, n8n, and MCP clients. Keep one Task per business question instead of one enormous catch-all export. Small Tasks are easier to test, cheaper to rerun, and clearer when a source field or filter changes. The Thirdwatch Actor on Apify provides JSON, CSV, Excel, RSS, and API access to the resulting dataset.

Frequently asked questions

Does this workflow require a private source API key?

No. It uses data the source publisher makes publicly available.

Can I schedule the export?

Yes. Save the validated input as an Apify Task and attach a schedule or webhook.

Related