Developer documentation
Orevox aggregates sanctions lists, travel advisories, political stability, corruption, and conflict data from eleven sources into a single JSON response per country.
Quick start
Send your first request in under a minute. Your API key is in your portal.
curl https://api.orevox.eu/api/v1/risk/IR \ -H "X-Api-Key: or_live_your-api-key"
Response:
{
"isoCode": "IR",
"countryName": "Iran",
"aggregatedRisk": 8.4,
"travelAdvisoryScore": 9,
"sanctionedEu": true,
"sanctionedOfac": true,
"stabilityScore": -1.80,
"sources": {
"buza": "2026-03-18T06:00:00Z",
"euSanctions": "2026-03-18T02:00:00Z",
"ofac": "2026-03-18T02:30:00Z",
"worldBank": "2026-03-01T03:00:00Z"
}
}Authentication
All API requests require authentication via the X-Api-Key header. Your API key can be found in your portal.
curl https://api.orevox.eu/api/v1/risk/NL \ -H "X-Api-Key: or_live_your-api-key"
Key format
Keys always start with or_live_ followed by a unique hash. Keys are only visible once when created. Lost keys can be reset via the portal.
Tiers & limits
Calls are counted per calendar month. When you reach your limit, the API returns a 429 .
| Tier | Price | Calls/month | Batch | History | Sanctions & CSDDD | PEP search | Webhooks | Export |
|---|---|---|---|---|---|---|---|---|
| Free | €0/mo | 100 | ||||||
| Starter | €99/mo | 500 | ||||||
| Growth | €299/mo | 5,000 | ||||||
| Enterprise | €799/mo | Unlimited |
Custom weights
On risk endpoints you can override the weights of the four main components via query parameters. Weights do not need to sum to 100% — they are automatically normalized.
| Parameter | Default | Description |
|---|---|---|
| wTravel | 0.40 | Weight for travel advisory (0.0–1.0) |
| wSanctions | 0.35 | Weight for sanctions (0.0–1.0) |
| wStability | 0.25 | Weight for political stability (0.0–1.0) |
| wMedia | 0.05 | Weight for media signal (0.0–1.0, optional) |
Example: heavy sanctions weight for financial due diligence:
curl "https://api.orevox.eu/api/v1/risk/RU?wTravel=0.10&wSanctions=0.70&wStability=0.20" \ -H "X-Api-Key: or_live_your-api-key"
Custom weights are supported on: GET /risk, GET /risk/{iso}, POST /risk/batch and GET /risk/{iso}/score.
Endpoints
/api/v1/riskReturns risk profiles for all countries, sorted by risk (high to low). Supports optional filter query parameters.
Optional parameters: minScore, maxScore, sanctionedEu, sanctionedOfac, sanctionedUn, sanctionedUk, sanctionedCa, sanctionedAu, sort (risk_desc|risk_asc), sector
curl https://api.orevox.eu/api/v1/risk \ -H "X-Api-Key: or_live_your-api-key"
/api/v1/risk/{isoCode}Full risk profile for one country. Accepts ISO 3166-1 alpha-2 or alpha-3 codes. Optionally apply a sector preset or custom weights.
curl https://api.orevox.eu/api/v1/risk/RU \ -H "X-Api-Key: or_live_your-api-key"
/api/v1/risk/{isoCode}/scoreOnly the aggregated score. Cheap endpoint for polling or monitoring.
curl https://api.orevox.eu/api/v1/risk/SY/score \
-H "X-Api-Key: or_live_your-api-key"
# Response:
# { "isoCode": "SY", "score": 9.5 }/api/v1/risk/{isoCode}/breakdownDetailed breakdown of the score per component — travel advisory, sanctions, stability, media, corruption, conflict — including the weights applied. Requires Starter tier or higher.
curl https://api.orevox.eu/api/v1/risk/RU/breakdown \ -H "X-Api-Key: or_live_your-api-key"
Response:
{
"isoCode": "RU",
"aggregatedRisk": 9.1,
"weightsUsed": { "travel": 0.40, "sanctions": 0.35, "stability": 0.25 },
"components": {
"travel": { "raw": 9, "contribution": 3.60 },
"sanctions": { "base": 7.0, "contribution": 2.45 },
"stability": { "raw": -1.2, "normalized": 7.42, "contribution": 3.08 }
}
}/api/v1/risk/{isoCode}/trendGrowth+7-day trend analysis: direction (up/stable/down), delta and historical context. Requires Growth tier or higher.
curl https://api.orevox.eu/api/v1/risk/UA/trend \
-H "X-Api-Key: or_live_your-api-key"
# Response:
# {
# "isoCode": "UA",
# "direction": "up",
# "delta7d": 0.4,
# "previous7d": 7.8,
# "current": 8.2
# }/api/v1/risk/{isoCode}/historyGrowth+Risk scores for the past 90 days. Requires Growth tier or higher.
curl https://api.orevox.eu/api/v1/risk/UA/history \ -H "X-Api-Key: or_live_your-api-key"
/api/v1/risk/{isoCode}/csdddGrowth+CSDDD compliance report per EU Directive 2024/1760 (Corporate Sustainability Due Diligence). Includes 6 indicators: human rights, labor, sanctions exposure, travel advisory, corruption, and conflict risk. Requires Growth tier.
curl https://api.orevox.eu/api/v1/risk/CN/csddd \ -H "X-Api-Key: or_live_your-api-key"
Response:
{
"isoCode": "CN",
"countryName": "China",
"standard": "EU CSDDD 2024/1760",
"reportDate": "2026-03-25",
"overallRisk": "HIGH",
"indicators": {
"humanRightsRisk": { "value": "HIGH", "rationale": "EU + OFAC sanctions active" },
"laborRisk": { "value": "MEDIUM", "rationale": "PV.EST: -0.44" },
"sanctionsExposure": { "value": "FULL", "rationale": "6/6 lists active" },
"travelAdvisoryLevel":{ "value": "HIGH", "rationale": "Level 3 advisory" },
"corruptionRisk": { "value": "HIGH", "rationale": "CC.EST: -0.28" },
"conflictRisk": { "value": "LOW", "rationale": "Signal: 0.3/10" }
}
}/api/v1/risk/batchGrowth+Fetch up to 50 countries at once. Requires Growth tier or higher.
curl -X POST https://api.orevox.eu/api/v1/risk/batch \ -H "X-Api-Key: or_live_your-api-key" \ -H "Content-Type: application/json" \ -d '["IR", "RU", "SY", "KP", "UA"]'
/api/v1/risk/portfolioGrowth+Calculate a weighted risk score for a portfolio of countries. Weights are optional and automatically normalized. Requires Growth tier.
curl -X POST https://api.orevox.eu/api/v1/risk/portfolio \
-H "X-Api-Key: or_live_your-api-key" \
-H "Content-Type: application/json" \
-d '{"countries":[{"isoCode":"DE"},{"isoCode":"RU","weight":0.6},{"isoCode":"CN","weight":0.3}]}'Response:
{
"portfolioScore": 7.4,
"countryCount": 3,
"riskLevel": "HIGH",
"countries": [
{ "isoCode": "DE", "countryName": "Germany", "score": 2.1, "weight": 0.10 },
{ "isoCode": "RU", "countryName": "Russia", "score": 9.1, "weight": 0.60 },
{ "isoCode": "CN", "countryName": "China", "score": 7.3, "weight": 0.30 }
]
}/api/v1/risk/sectorsReturns the available sector presets with their weight configurations. Use the sector name as a ?sector= parameter on risk endpoints.
curl https://api.orevox.eu/api/v1/risk/sectors \ -H "X-Api-Key: or_live_your-api-key" # Apply a sector: # GET /api/v1/risk/RU?sector=Finance
Response:
[
{ "sector": "Finance", "wTravel": 0.20, "wSanctions": 0.55, "wStability": 0.25 },
{ "sector": "Mining", "wTravel": 0.30, "wSanctions": 0.35, "wStability": 0.35 },
{ "sector": "Technology", "wTravel": 0.15, "wSanctions": 0.50, "wStability": 0.35 },
...
]/api/v1/risk/{isoCode}/sanctionsGrowth+Returns a list of all sanctioned individuals, companies and vessels for a single country, sourced from EU FSF and/or OFAC SDN. Requires Growth tier or higher.
curl https://api.orevox.eu/api/v1/risk/RU/sanctions \ -H "X-Api-Key: or_live_your-api-key"
Response:
{
"isoCode": "RU",
"total": 4658,
"entities": [
{ "source": "OFAC", "name": "ALFA-BANK", "type": "entity", "programme": "RUSSIA-EO14024" },
{ "source": "EU", "name": "Aleksandr Sergeevich KUZNETSOV", "type": "individual", "programme": "RUS" },
...
]
}/api/v1/pep/searchGrowth+Search Politically Exposed Persons (PEP). Minimum 2 characters required. Optionally filter by ISO country code. Requires Growth tier.
curl "https://api.orevox.eu/api/v1/pep/search?q=Putin&country=RU" \ -H "X-Api-Key: or_live_your-api-key"
Response:
{
"query": "Putin",
"country": "RU",
"totalMatches": 3,
"results": [
{
"id": 1,
"name": "Vladimir Putin",
"role": "President of Russia",
"country": "RU",
"countryName": "Russia",
"source": "OpenSanctions"
}
]
}/api/v1/sanctions/searchGrowth+Search the sanctioned entities database (EU + OFAC). Minimum 2 characters. Optionally filter by sanctions list. Requires Growth tier.
curl "https://api.orevox.eu/api/v1/sanctions/search?q=Gazprom&source=OFAC" \ -H "X-Api-Key: or_live_your-api-key"
Response:
{
"query": "Gazprom",
"source": "OFAC",
"totalMatches": 2,
"results": [
{
"name": "GAZPROMBANK",
"type": "entity",
"source": "OFAC",
"isoCode": "RU",
"countryName": "Russia",
"programme": "RUSSIA-EO14024"
}
]
}/api/v1/portal/meAccount info: tier, calls this month, quota and reset date.
curl https://api.orevox.eu/api/v1/portal/me \
-H "X-Api-Key: or_live_your-api-key"
# Response:
# {
# "tier": "GROWTH",
# "callsThisMonth": 1234,
# "monthlyQuota": 5000,
# "quotaResetAt": "2026-04-01T00:00:00Z"
# }/api/v1/portal/usageDetailed usage statistics: current month and daily usage for the past 30 days.
curl https://api.orevox.eu/api/v1/portal/usage \
-H "X-Api-Key: or_live_your-api-key"
# Response:
# {
# "currentMonth": { "calls": 1234, "quota": 5000, "remaining": 3766, "percentUsed": 25 },
# "last30Days": [
# { "date": "2026-03-24", "calls": 47 },
# { "date": "2026-03-25", "calls": 23 }
# ]
# }/api/v1/portal/watchlistGrowth+Manage a watchlist of countries. Receive email alerts when the risk score crosses a threshold. Requires Growth tier.
# List watchlist curl https://api.orevox.eu/api/v1/portal/watchlist \ -H "X-Api-Key: or_live_your-api-key"
Response:
[
{
"isoCode": "RU",
"countryName": "Russia",
"threshold": 7.5,
"emailAlert": true
}
]/api/v1/portal/webhookGrowth+Set up a webhook for risk score changes greater than 1.5 points. Requires Growth+.
curl -X PUT https://api.orevox.eu/api/v1/portal/webhook \
-H "X-Api-Key: or_live_your-api-key" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-app.com/riskpulse-webhook"}'Webhook payload
{
"event": "risk.score_changed",
"isoCode": "IR",
"countryName": "Iran",
"previousScore": 7.1,
"newScore": 9.0,
"delta": 1.9,
"timestamp": "2026-03-18T06:00:00Z"
}Response schema
All risk endpoints return a RiskProfile object.
| Field | Type | Description |
|---|---|---|
| isoCode | string | ISO 3166-1 alpha-2 country code (e.g. "IR") |
| countryName | string | Full English country name |
| aggregatedRisk | float | Weighted risk score 1.0–10.0 (1 decimal) |
| travelAdvisoryScore | integer | Blended travel advisory: 1=safe, 3=caution, 6=high risk, 9=do not travel |
| sanctionedEu | boolean | Country is on EU FSF sanctions list |
| sanctionedOfac | boolean | Country is on US OFAC SDN list |
| sanctionedUn | boolean | Country is on UN Consolidated Sanctions list |
| sanctionedUk | boolean | Country is on UK FCDO Sanctions list (UKSL) |
| sanctionedCa | boolean | Country is on Canada SEMA sanctions list |
| sanctionedAu | boolean | Country is on Australia DFAT consolidated sanctions list |
| stabilityScore | float | World Bank PV.EST index: -2.5 (unstable) to +2.5 (stable) |
| mediaSignal | float? | GDELT adverse-media signal 0–2.5 (nullable, enabled via feature flag) |
| corruptionScore | float? | World Bank CC.EST: -2.5 (corrupt) to +2.5 (clean) (nullable) |
| conflictSignal | float? | GDELT armed conflict signal 0–10 (nullable, requires API key) |
| sectorUsed | string? | Sector preset applied to this response (nullable) |
| regionalWarning | string? | Regional travel advisory color code (nullable) |
| regionalWarningArea | string? | Name of the region with elevated advisory (nullable) |
| sources | object | Timestamps of the last data refresh per source (buza, euSanctions, ofac, worldBank, stateDept, unSanctions, ukSanctions, caSanctions, auSanctions, fcdo, corruption, conflict) |
SanctionList schema
The /sanctions endpoint returns a SanctionList object containing a list of entities.
| Field | Type | Description |
|---|---|---|
| isoCode | string | ISO 3166-1 alpha-2 country code |
| total | integer | Total number of entities found |
| entities | array | List of sanctioned entities |
| entities[].source | string | "EU", "OFAC", "UN", "UK", "CA" or "AU" |
| entities[].name | string | Name of the person, company or vessel |
| entities[].type | string? | Entity type: individual, entity, vessel, aircraft, group (nullable) |
| entities[].programme | string | Sanction regime, e.g. "RUSSIA-EO14024" or "RUS" |
Score calculation
The aggregatedRisk is a weighted average of three data sources, rounded to one decimal and clamped between 1.0 and 10.0.
How each component works
Blended travel advisory from three government sources: BuZa (Dutch), US State Dept, and UK FCDO. When all three are available: BuZa 25% + US 50% + FCDO 25%. Adjusted ratios when fewer sources are available.
Safe → 1 · Caution → 3 · High risk → 6 · Do not travel → 9If a country appears on any of the six sanctions lists (EU FSF, OFAC SDN, UN, UK, Canada, Australia), the sanction base is set to 7.0. Non-sanctioned countries receive a base of 1.0.
Not sanctioned → base 1.0 · Sanctioned → base 7.0The World Bank PV.EST indicator measures political instability and violence. Orevox normalizes this to a 1–9 scale so that a higher value always means higher risk.
+2.5 (stable) → risk score 1 · −2.5 (unstable) → risk score 9Formula
| Risk level | Score | Color |
|---|---|---|
| Critical | ≥ 9.0 | ● Dark red |
| High | 7.0 – 8.9 | ● Red |
| Medium | 4.0 – 6.9 | ● Orange |
| Low | < 4.0 | ● Green |
Error codes
| Status | Meaning | Solution | |
|---|---|---|---|
| 401 | Unauthorized | Missing or invalid X-Api-Key header | Check your API key in the portal |
| 403 | Forbidden | Endpoint requires a higher tier | Upgrade to Growth or Enterprise |
| 404 | Not Found | Country code not found | Use a valid ISO 3166-1 code |
| 429 | Too Many Requests | Monthly quota reached | Wait for quota reset or upgrade |
| 502 | Bad Gateway | Upstream error fetching data | Try again, we're monitoring this |
Data sources
BuZa travel advisory
travelAdvisoryScoreDutch travel advisories from the Ministry of Foreign Affairs. Color codes: green (1), yellow (3), orange (6), red (9).
US State Dept travel advisory
travelAdvisoryScoreUS State Department advisory levels 1–4 (scores 2, 4, 7, 9). Combined with BuZa for the blended travel score.
UK FCDO travel advice
travelAdvisoryScoreUK FCDO travel advisories. Third travel source that refines the blended score.
EU FSF sanctions list
sanctionedEuEuropean Union Financial Sanctions Files. Countries subject to EU sanctions.
OFAC SDN list
sanctionedOfacUS Treasury OFAC Specially Designated Nationals list. Countries subject to American sanctions.
UN Consolidated Sanctions
sanctionedUnUN Security Council consolidated sanctions list in XML format.
UK Sanctions List (UKSL)
sanctionedUkUK FCDO sanctions list, independent from EU sanctions post-Brexit.
Canada SEMA
sanctionedCaCanada's Special Economic Measures Act sanctions list.
Australia DFAT
sanctionedAuAustralia's DFAT consolidated sanctions list (XLSX format).
World Bank PV.EST
stabilityScorePolitical Stability and Absence of Violence/Terrorism indicator. Range: -2.5 to +2.5.
World Bank CC.EST (corruption)
corruptionScoreControl of Corruption indicator. Range: -2.5 (high corruption) to +2.5 (low corruption). Optional scoring component.
GDELT v2 media
mediaSignalAdverse media signal based on 7-day tone chart from GDELT v2 DOC API. Range: 0–2.5.
GDELT conflict data
conflictSignalArmed conflict signal derived from the GDELT 2.0 bulk export (QuadClass 3 & 4 events). Exponential decay with a half-life of ~5.5 hours so spikes fade naturally within 24 hours. Range: 0–10.
Changelog
April 2026
- Risk profile endpoint for 195 countries
- Batch endpoint (Growth+)
- History endpoint with 90 days of data (Growth+)
- Webhook notifications for score changes (Growth+)
- 13 data sources: BuZa, US State Dept, UK FCDO, EU FSF, OFAC SDN, UN, UK, Canada, Australia, World Bank PV.EST & CC.EST, GDELT media & conflict
- PEP search via /pep/search API (OpenSanctions)
- Sanctions entity search via /sanctions/search API
- Watchlist with email alerts on threshold crossings
- /risk/{isoCode}/breakdown, /trend, /csddd and /score endpoints
- /risk/sectors for sector-specific scoring weight presets
- FREE tier — self-service signup (100 calls/month)
- Interactive world map with conflict markers and regional advisories
Questions or issues? Email support@orevox.eu