[S/1] is the open-data intelligence layer of Salient One, an independent advisory firm operating in conflict-affected, fragile, and high-risk jurisdictions.
This repository provides documentation, code examples, and a minimal Python client for the S/1 REST API, which offers programmatic access to:
- Sanctions screening — Multi-list entity matching against OFAC SDN, EU Consolidated, UK FCDO, and UN Security Council lists
- Country risk scorecards — 11-indicator composite profiles aggregating governance, corruption, conflict, forced labour, and sanctions data
- Political exposure data — Supplementary screening for politically exposed persons
- Web app: s1.salientone.eu
- API base URL:
https://s1.salientone.eu - Full API reference: s1.salientone.eu/api
S/1 aggregates indicators from official, publicly available datasets:
| Indicator | Source | Update cycle |
|---|---|---|
| Governance | World Bank WGI | Annual |
| Corruption | Transparency International CPI | Annual |
| INFORM Risk | EU JRC INFORM Index | Biannual |
| Forced Labour | US DOL TVPRA List of Goods | Biannual |
| Sanctions designations | OFAC, EU, UK, UN consolidated lists | Daily |
| Conflict events | GDELT v2 (CAMEO-coded) | Daily |
| FATF status | FATF Black & Grey Lists | Triannual |
| State fragility | Fund for Peace FSI | Annual |
| Press freedom | RSF World Press Freedom Index | Annual |
| Environmental performance | Yale & Columbia EPI | Biennial |
| Political exposure | Embedded leaders dataset | Quarterly |
All API endpoints require an API key. Create a free account at s1.salientone.eu/signup, then generate a key from your Account page.
Include the key in the x-api-key header:
curl -H "x-api-key: s1_live_YOUR_KEY" https://s1.salientone.eu/scorecard/api/country/ukr| Tier | Requests/min | Requests/day | API keys |
|---|---|---|---|
| Free | 10 | 100 | 1 |
| Pro | 60 | 1,000 | 5 |
| Enterprise | Custom | Custom | Unlimited |
# Clone the examples
git clone https://github.com/salientone-ops/s1-api.git
cd s1-api
# Install Python dependencies (optional — examples use only stdlib)
pip install requests # only needed for examples/requests_example.pyNo SDK installation required. The minimal client (s1.py) uses only Python standard library.
from s1 import S1Client
client = S1Client(api_key="s1_live_YOUR_KEY")
scorecard = client.get_scorecard("UKR")
print(f"Country: {scorecard['country']['name']}")
print(f"Composite risk: {scorecard['composite_risk_band']} ({scorecard['composite_score']}/100)")
print(f"Governance: {scorecard['scores']['governance']['value']}")
print(f"Corruption: {scorecard['scores']['corruption']['value']}")from s1 import S1Client
client = S1Client(api_key="s1_live_YOUR_KEY")
results = client.screen(name="Viktor Bout", mode="sanctions")
for match in results["matches"]:
print(f"{match['designated_name']} — {match['source']} — {match['score']:.0%}")from s1 import S1Client
client = S1Client(api_key="s1_live_YOUR_KEY")
countries = client.list_countries()
for c in countries:
print(f"{c['iso_a3']} {c['name']} ({c['region']})")Returns a full country risk scorecard.
Parameters:
iso(path) — ISO 3166-1 alpha-3 country code (e.g.,UKR,AFG,COL)
Response: ScorecardPayload — see types/scorecard.ts for full schema.
{
"country": { "iso_a3": "UKR", "name": "Ukraine", "region": "Europe", "population": 37000000 },
"composite_risk_band": "high",
"composite_score": 68,
"composite_rationale": "Multiple indicators at high/severe levels...",
"scores": {
"governance": { "value": 32.5, "source": "WB WGI", "latest_year": 2023 },
"corruption": { "value": 36, "source": "TI CPI", "latest_year": 2023 },
...
}
}Screens a name against sanctions registries and political exposure data.
Body:
{
"name": "Viktor Bout",
"mode": "all",
"type": "person",
"registry": "all",
"minScore": 0.35
}Parameters:
name(required) — Name to screen (min 2 characters)mode—"all","sanctions", or"pep"(default:"all")type—"person","entity", or"all"(default:"all")registry—"all","ofac","eu","uk","un"(default:"all")minScore— Confidence threshold 0.0–1.0 (default:0.35)country— ISO alpha-3 filter by nationality (optional)dob— Date of birth filter (optional)passport— Passport/ID number filter (optional)
Returns a list of all countries with available scorecards.
Response:
{
"countries": [
{ "iso_a3": "UKR", "name": "Ukraine", "region": "Europe", "computed_at": "2026-05-25T06:00:00Z" },
...
]
}The included s1.py is a minimal, dependency-free Python client covering all public endpoints:
class S1Client:
def __init__(self, api_key: str, base_url: str = "https://s1.salientone.eu")
def get_scorecard(self, iso: str) -> dict
def list_countries(self) -> list
def screen(self, name: str, mode: str = "all", type: str = "all",
registry: str = "all", min_score: float = 0.35,
country: str = None, dob: str = None, passport: str = None) -> dictSee s1.py for the full implementation (~60 lines, stdlib only).
- KYC / AML screening: Pre-screen counterparties against sanctions lists before deeper due diligence
- Country risk assessment: Generate first-pass risk profiles for procurement, investment, or ESG screening
- Supply chain due diligence: Check jurisdictions for forced labour indicators (US DOL TVPRA) and FATF status
- Research & OSINT: Aggregate open-data indicators for conflict analysis and geopolitical monitoring
- Automated monitoring: Poll API endpoints to track changes in sanctions designations and risk indicators
API documentation and code examples: MIT License.
The S/1 platform data is aggregated from public-domain and openly licensed sources. See Methodology for full attribution.
Salient One — independent advisory firm specialising in human rights and environmental due diligence in conflict-affected and high-risk jurisdictions. Ukraine-anchored. CSDDD-aligned. EBRD- and IFC-fluent.
- Position paper: Ukraine and the EU Regulatory Perimeter
- Contact: engage@salientone.eu
[S/1] is the open-data intelligence layer of Salient One. It is designed as a rapid triage tool — not a substitute for entity-level due diligence.