Quick start
Sign in with a work Google account to get a key. Then:
curl -s https://media.unbackoffice.com/v1/adverse-media \
-H "X-API-Key: $MEDIA_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Jane Example", "kind": "person", "country": "GB", "context": "CEO, Example Trading Ltd"}'
Auth
Send your key in the X-API-Key header on every request. Keep it on your server. Never put it in a
browser or mobile app. Base URL: https://media.unbackoffice.com.
A key can call POST /v1/adverse-media. Nothing else.
Request · POST /v1/adverse-media
JSON body:
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | The person, company or vessel to search, as written. For a vessel, add "yacht" or "vessel". (min 2, max 200) |
country | string | no | Country name or ISO code. Helps tell namesakes apart. (max 56) |
dob | string | no | Date of birth, YYYY-MM-DD. Helps tell namesakes apart. (max 10) |
context | string | no | Anything that identifies the subject: role, employer, city. The best way to avoid namesakes. (max 500) |
kind | string | no | What the subject is: person, company, vessel or port. It sets how coverage is searched and matched. Leave it out and a name that mentions a yacht or ship is searched as a vessel, anything else as a person. |
Each search reads up to 30 recent news and web results about the name, checks which ones are about your subject and not a namesake, keeps the adverse ones, and maps each onto a FATF offence category. A search usually takes 10 to 25 seconds, most of it spent reading and classifying the coverage. Set your HTTP timeout to at least 60 seconds.
Response
{
"subject": {"name": "Jane Example", "country": "GB", "dob": null, "kind": "person"},
"articles_reviewed": 24,
"overall": {
"adverse_hit": true,
"risk": "high",
"typologies_hit": ["fraud"],
"typology_labels": ["Fraud"],
"rationale": "Two reports describe a fraud charge against the CEO of Example Trading Ltd …",
"disambiguation": "Matched on the employer and city; a namesake athlete was excluded.",
"coverage_note": ""
},
"hits": [
{
"headline": "Example Trading chief charged over investor fraud",
"source": "example-news.com",
"date": "2026-03-14",
"url": "https://example-news.com/…",
"summary": "Charged with fraud over a 2024 investment scheme.",
"typologies": ["fraud"],
"severity": 4,
"about_subject": "high"
}
],
"screened_at": "2026-10-12T09:30:00Z"
}
Risk bands
overall.risk comes from the most severe adverse article found about the subject:
severe: terrorism, proliferation, sanctions evasion, organised crime, drug, human or arms trafficking.high: money laundering, corruption and bribery, fraud, cybercrime, violent crime.medium: tax crime, insider trading or market abuse, environmental crime, smuggling.low: regulatory or enforcement action, counterfeiting, other criminal proceedings.none: no adverse coverage about the subject was found.
Key fields
hits[]: the adverse articles about the subject, most severe first: headline, source, date, link, a one-line summary, the typologies and their severity (1 to 5).about_subject: how sure the match to your subject is,highormedium. Articles that are not about the subject, or only possibly, are left out.overall.rationaleandoverall.disambiguation: why the result came out this way, and how namesakes were told apart.overall.coverage_note: set when the web search returned nothing and only the news archive was read. Search again later before you rely on anone.articles_reviewed: how many results were read.screened_at: when the search ran. The same search within 6 hours returns the same report.
subject.kind says what was searched: person, company, vessel or
port. A port result counts only financial crime at or through that port, or by its authority or
operator: crime at another port, accidents, military incidents and country-wide sanctions are left out. For a vessel ("kind": "vessel", or "yacht" in the name), overall also
names the owner the coverage gives, with owner_role, owner_confidence and the wording it
rests on (owner_basis).
A result supports a human decision. Read the articles before you act on a hit, and treat none as "nothing
found in this search", not as proof there is nothing.
Typologies
Every adverse article is mapped onto these ids (FATF designated categories of offences, plus sanctions, proliferation and regulatory action), with a severity from 1 to 5:
| id | Category | Severity |
|---|---|---|
terrorism_financing | Terrorism / terrorist financing | 5 |
proliferation_financing | Proliferation financing (WMD) | 5 |
sanctions_evasion | Sanctions evasion / breach | 5 |
organized_crime | Organized crime / racketeering | 5 |
drug_trafficking | Drug trafficking | 5 |
human_trafficking | Human trafficking / smuggling | 5 |
arms_trafficking | Arms trafficking | 5 |
money_laundering | Money laundering | 4 |
corruption_bribery | Corruption / bribery | 4 |
fraud | Fraud | 4 |
tax_crime | Tax crimes / evasion | 3 |
insider_market | Insider trading / market manipulation | 3 |
cyber_crime | Cybercrime | 4 |
environmental_crime | Environmental crime | 3 |
smuggling | Smuggling (customs/excise) | 3 |
counterfeiting | Counterfeiting / piracy | 2 |
violent_crime | Violent / serious crime | 4 |
regulatory_action | Regulatory / enforcement action | 2 |
general_criminal | Other criminal proceedings | 2 |
Errors
| Status | Meaning |
|---|---|
401 | Missing or invalid key, or the key was revoked. |
402 | No searches left on this key. The body says how to get more (below). |
403 | This key can't call that endpoint. |
422 | Invalid request, for example a one-letter name. |
429 | Too many requests per minute, for this key or from this IP. Wait and retry. |
502 / 503 | The search could not run. The search is given back (up to 3 times a day per key). Retry shortly. |
Errors come back as JSON with a detail field.
Quota
- Your first key has 10 free searches. They don't expire or reset.
- One search is one call to
/v1/adverse-media, however many articles it reads. A vessel or port search ("kind": "vessel"or"port", or a name read as a vessel, such as "yacht Amadea") counts as 2: it runs more queries and, for a port, a second check. - Invalid requests (
422) are not charged. A search that could not run is given back, up to 3 times a day per key. - Get 10 more searches on your key for each new colleague who signs up through your referral link (on your key page).
- For more, request a tier. We contact you and add the searches to your key.
When a key runs out, you get 402:
{
"detail": {
"error": "quota_exhausted",
"message": "This key has no searches left. Share your referral link: ...",
"searches_remaining": 0,
"searches_needed": 1,
"referral_url": "https://media.unbackoffice.com/?ref=yourcode",
"upgrade_url": "https://media.unbackoffice.com/tiers",
"tiers_url": "https://media.unbackoffice.com/tiers"
}
}
Your data
The name and details you search are sent to news and web search providers to find coverage, and to Anthropic to read it. We keep each report, under your account, for 12 months so you can reopen it. You need a lawful basis to search a person, such as customer due diligence. Adverse media is not a credit, employment or tenant check. See the terms and the privacy notice.
Machine-readable spec: /openapi.json