API
Free Tier Available
Logged-in users get a free API key instantly — 10 req/min, 100/day, 500/month. Create an account or sign in and head to your Account page to generate keys.
Need higher limits or dedicated support? [email protected]
Programmatic access to S/1 Scorecard country risk data. All endpoints require an API key and return JSON.
Authentication
Include your API key in the x-api-key header on every request.
curl -H "x-api-key: s1_live_xxxxxxxxxxxxx" \ https://s1-scorecard.pages.dev/scorecard/api/scorecards
Endpoints
/scorecard/api/scorecardsReturns full scorecard payloads for up to 50 ISO alpha-3 country codes in a single request.
Request Body
{
"isos": ["RUS", "AFG", "CHN", "BRA"]
}Response (200)
{
"results": [
{
"country": { "iso_a3": "RUS", "name": "Russia", "region": "Europe", "population": 144373535 },
"composite_risk_band": "high",
"composite_score": 66,
"composite_rationale": "High risk driven by...",
"scores": {
"governance": { "value": 30.8, "source": "WB WGI", "latest_year": 2026, ... },
"corruption": { "value": 22, "source": "TI CPI", "latest_year": 2024, ... },
...
}
}
],
"meta": { "requested": 4, "found": 4 }
}Rate Limits — Free Plan
| Limit | Per Key | Per Account |
|---|---|---|
| Monthly quota | 500 req | 5,000 req |
| Per minute | 10 req | — (per key) |
| Per day | 100 req | 1,000 req |
| Max keys | — | 10 |
Rate limit headers on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
/scorecard/api/countriesReturns a list of all available countries with ISO codes and regions.
{
"countries": [
{ "iso_a3": "AFG", "name": "Afghanistan", "region": "Asia" },
...
]
}/scorecard/api/country/:isoReturns a single scorecard for the given ISO alpha-3 code.
GET /scorecard/api/country/RUS
/api/screenSanctions screening against 33,000+ EU, OFAC, UK, and UN designations. Fuzzy matching with transliteration (Cyrillic, Arabic, Chinese) and multi-field scoring. Type-aware weights for Person vs Entity searches.
Request Body
{
"name": "putin", // required — full or partial name
"type": "person", // optional — "person" | "entity" | "all"
"country": "RUS", // optional — ISO alpha-3 nationality filter
"registry": "eu", // optional — "eu" | "ofac" | "uk" | "un" | "all"
"dob": "1952-10-07", // optional — date of birth
"passport": "A1234567", // optional — passport/ID number
"imo": "1234567", // optional — IMO ship number
"address": "Moscow", // optional — address search
"placeOfBirth": "Leningrad", // optional
"minScore": 0.5, // optional — minimum match score 0–1 (default 0.35)
"limit": 20 // optional — max results (default 50, max 100)
}Response (200)
{
"query": { "name": "putin", "type": "person", "country": "RUS", ... },
"matches": [
{
"designated_name": "Vladimir Vladimirovich Putin",
"designated_type": "person",
"nationality_iso_a3": "RUS",
"source": "uk",
"list_program": "Ukraine — Kremlin elites",
"designation_date": "2022-02-25",
"date_of_birth": "07/10/1952",
"aliases": ["Vladimir Putin", "Владимир Путин"],
"score": 0.92,
"matchDetails": {
"nameScore": 0.92, "aliasScore": 0.85,
"dobMatch": true, "idMatch": false, ...
}
}
],
"total": 3,
"meta": { "searchedRecords": 33617, "thresholdApplied": 0.5,
"sourcesQueried": ["eu","ofac","uk","un"], "executionMs": 145 }
}/api/map-data— publicLightweight endpoint returning all country scores with risk bands for choropleth map rendering. No authentication required. Cached 5 minutes.
{
"countries": [
{
"iso_a3": "AFG", "name": "Afghanistan", "region": "Asia",
"composite": { "band": "severe", "score": 100 },
"governance": { "value": 18.2, "band": "severe" },
"corruption": { "value": 16, "band": "high" },
"inform": { "value": 7.6, "band": "severe" },
"forced_labour": { "goods": 3, "band": "moderate" },
"sanctions": { "total": 1234, "band": "severe" },
"conflict": { "intensity": 76.4, "band": "severe" },
"fatf": { "status": "grey", "band": "high" },
"fsi": { "value": 106.6, "band": "severe" },
"rsf": { "value": 29.5, "band": "high" },
"epi": { "value": 35.2, "band": "high" }
}
]
}/api/country/:iso/pdf— publicPrint-optimized HTML scorecard. Opens browser print dialog for saving as A4 PDF. Includes all 11 indicators, composite band, and rationale.
GET /api/country/RUS/pdf
/api/trends/:iso— coming soonHistorical trend data for a country — band changes over time, score history, and trend direction. Currently collecting data; returns current snapshot with note about data availability.
GET /api/trends/UKR
/api/export/csvDownload all scorecard data as CSV. Session-authenticated — accessible from your Account page. Includes all 11 indicators for every country with a scorecard.
GET /api/export/csv → Content-Type: text/csv → Content-Disposition: attachment; filename="s1-scorecard-export-2026-05-24.csv"
Errors
| Status | Meaning |
|---|---|
| 401 | Missing or invalid API key |
| 429 | Rate limit exceeded — check Retry-After header |
| 400 | Invalid request body or too many ISOs |
| 503 | Database unavailable — retry later |
For pricing, higher rate limits, or dedicated support, contact [email protected].