SanctionScopeProgramsCountriesPartiesAPI

API

The merged dataset behind the map: 39,585 parties from 6 authorities, geocoded, with cross-list relationships. Rebuilt nightly. Free, no key, CORS enabled. Base URL https://sanctionscope.com/api/v1/.

Static endpoints

PathWhat
meta.jsonBuild time, counts, per-authority status, program and country lists
parties.jsonManifest of parts (8,000 parties each) that together hold every merged party with addresses, aliases, programs, authorities, coordinates and links
index.jsonCompact index (id, name, aliases, type, country, authorities, programs) for client-side search
changes.jsonAdditions and removals by date since the site began tracking
feed.xmlThe same as RSS
programs.json, programs/<slug>.jsonPrograms with counts; parties in one program
countries.json, countries/<iso2>.jsonCountries with counts; parties located in one country
openapi.jsonMachine-readable description

Query endpoints

PathWhat
GET party/<id>One party. Ids look like ofa:12345, eu:EU-123, uk:UK-RUS0001.
GET search?q=<text>&limit=20Name and alias search across all lists, diacritic-insensitive.
POST screenBody {"names": ["..."], "threshold": 0.85}, up to 100 names per request. Returns scored matches per name. Names are processed in memory and not stored.

Examples

curl "https://sanctionscope.com/api/v1/search?q=sberbank"
curl "https://sanctionscope.com/api/v1/party/ofa:12345"
curl -X POST "https://sanctionscope.com/api/v1/screen" -H "content-type: application/json" -d '{"names":["Sberbank of Russia","John Smith"]}'
curl "https://sanctionscope.com/api/v1/countries/ru.json" | jq '.parties[] | select(.t=="Vessel") | .n'

Record shape

{
  "id": "ofa:31695", "n": "Central Bank of the Russian Federation", "t": "Entity",
  "au": ["US","EU","UK","AU","CA"],          authorities listing this party (merged by name)
  "p": ["RUSSIA-EO14024","EU:RUS", ...],     programs, non-US prefixed by authority
  "s": "OFAC other", "list": "Sectoral Sanctions Identifications List (SSI)...",
  "cc": "RU", "lat": 55.75, "lon": 37.61, "city": "Moscow",
  "inf": null,                                set when the location was inferred, not from an address
  "a": ["12 Neglinnaya St, Moscow, RU"], "alt": [...], "nat": [...], "dob": "", "ids": "...", "rem": "...",
  "ly": 2022,                                 earliest published listing year across records
  "recs": [{"au":"EU","url":"...","p":[...],"listed":"2022-02-25"}, ...],  one per authority when merged
  "links": ["ofa:16681", ...],                "Linked To" relationships
  "page": "...", "map": "...#p=ofa:31695"
}

Terms

Source data are official government publications. The merged form is released CC0. Cross-list matching is by name and approximate; inferred locations are marked. Always confirm against the official record before acting on a match. No uptime guarantee; please cache and be reasonable with request volume.