AML Screening API - Sanctions, PEP, Adverse Media, Vessels
Pricing
from $15.00 / 1,000 screening hit returneds
AML Screening API - Sanctions, PEP, Adverse Media, Vessels
AML watchlist screening with the Castellum.AI API: batch screen people, companies, vessels and aircraft against sanctions, PEP, law enforcement, export control and adverse media lists, run freeform screens, pull sanctioned bank ID and crypto wallet reports and list sources. Bring your own key.
Pricing
from $15.00 / 1,000 screening hit returneds
Rating
0.0
(0)
Developer
Nabeel Hassan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Batch screen people, companies, vessels and aircraft against sanctions, PEP, law enforcement, export control and adverse media lists through the Castellum.AI API with your own credentials, and get every hit as a clean dataset row.
Works with the Castellum.AI REST API (api.castellum.ai, documented in its public OpenAPI reference on SwaggerHub): POST /screen_entities to batch screen names, POST /screen_entity/freeform to screen an unstructured description, POST /reports for the sanctioned bank ID, enriched bank ID and crypto sanctions reports, and GET /list_sources for the list source catalogue. Each hit becomes one row with the screened name, match score, matched list entry, entity type, list source, category and lists, aliases, birth dates, citizenships, countries, addresses, ID numbers, relationships and, for adverse media, the article title, URL and date, plus the full Castellum.AI record. Download as JSON, CSV or Excel, schedule it, or feed it into a KYC, KYB, onboarding or payment screening workflow or an AI agent. Bring your own API key.
BYOK, not live-tested: every route, body field, filter and response field comes from Castellum.AI's published API reference and support centre, and every route was confirmed to exist on api.castellum.ai, but the actor has not been run against a live Castellum.AI account.
What it does
- Screen names: batch screening of up to 1,000 names a run, 50 to a request, against the categories you pick (Sanctions, PEPs, Law Enforcement, Export Control, Delisted, Contract Debarment, Elevated Risk, Regulatory Enforcement, High-Risk Ownership, Adverse Media) and any exact list sources such as US OFAC SDN. Filter by entity type and country, set the minimum match score, exclude weak aliases, cap hits per name, or run a delta screen of entries updated since a date. One row per hit.
- Freeform screening: send a description such as "John Smith born January 15 1980 living in New York" and Castellum.AI extracts the name and attributes before screening.
- Bank ID and crypto sanctions report: sanctioned bank identifiers, enriched bank IDs and sanctioned crypto wallet addresses, by list source and since a date.
- List sources: every list source your credentials can screen against, with category, lists, authority, issuing country and last update, so you can scope screens exactly.
- Read only: no monitor, notifier or custom list route is called; nothing in your Castellum.AI account changes.
- Pay only for results: a name with no hits, an empty report or a refused request gives one free row that says why.
Important: each name is a billable Castellum.AI query
Castellum.AI counts every name in a batch as one API call on your contract. The run sends only as many names as maxResults can still return, so no query is spent on rows that would be cut. Screening the same list twice runs twice the queries.
How to get credentials
Castellum.AI production API access is part of a Castellum.AI contract: the sales team issues a client id and client secret (a free Platform account lets you try the watchlist data in the web app first). Paste the client id into Client ID and the secret into Client secret, or set the DATA_API_CLIENT_ID and DATA_API_KEY secrets. The actor exchanges them at auth.castellum.ai for a 24 hour access token once per run and reuses it. You can also paste a ready access token into Client secret and leave Client ID empty. Secrets go only to Castellum.AI and are never logged. Missing or rejected credentials end the run cleanly with a status message.
Input
| Field | Modes | Description |
|---|---|---|
mode | all | screen, freeform, report or listSources |
names | screen | Names to screen, one per line (up to 1,000 a run) |
freeformTexts | freeform | Unstructured descriptions, one per line (up to 100 a run) |
categories | screen, freeform | Sanctions, PEPs, Law Enforcement, Export Control, Delisted, Contract Debarment, Elevated Risk, Regulatory Enforcement, High-Risk Ownership, Adverse Media |
listSourceNames | screen, freeform, report | Exact list source names, such as US OFAC SDN |
entityTypes | screen | Individual, Entity, Vessel, Aircraft, Location, Media, Security, Shipment |
countries | screen | ISO alpha-2 country codes |
minScore | screen, freeform | Minimum match score, 0 to 1 (default 0.85) |
excludeWeakAkas | screen | Leave out weak alias matches |
hitsPerName | screen | Hits per name, 1 to 200 (default 10) |
asOf | screen, report | Updated since date for a delta screen or report |
flattenCatchall | screen | Flat catch-all source data |
reportTypes | report | bank_ids, crypto_sanctions, enriched_bank_ids |
maxResults | all | Row ceiling for the run (default 100) |
requestsPerMinute | all | Pacing, default 60 |
clientId, apiKey | all | Your Castellum.AI client id and client secret (or an access token in apiKey) |
At least one category or list source is required to screen. An input set for a mode that does not take it is left off with a warning, never sent.
Example: screen two companies against sanctions and export control lists only.
{"mode": "screen","names": ["Gazprom", "Rosneft"],"categories": ["Sanctions", "Export Control"],"entityTypes": ["Entity"],"minScore": 0.85,"maxResults": 50}
Example output
An illustrative screening hit, shaped like the documented POST /screen_entities response (values are an example). The full hit is kept under record.
{"mode": "screen","modeLabel": "Screen names","recordType": "hit","input": "Peter Griffin","found": true,"queryName": "Peter Griffin","totalHits": 1,"score": 1,"entryName": "Peter Griffin","entityType": "Individual","listSource": "OFAC SDN","listSourceCategory": "Sanctions","lists": "NPWMD","aliases": null,"birthDates": "1935-09-09","citizenships": "GB","countries": "GB","placesOfBirth": "Oxford, United Kingdom","idNumbers": "Passport: B401584; Passport: B109455","providerId": "11360","lastUpdated": null,"articleTitle": null,"articleUrl": null,"matchedName": null,"note": null,"record": { "score": 1, "list_entry": { "provider_id": "11360", "type": { "id": 1, "name": "Individual" } } }}
FAQ
What is the Castellum.AI API?
Castellum.AI is a financial crime compliance company. Its REST API screens names against watchlist data it collects and maintains in house: global sanctions lists (OFAC, UK, EU, UN and more), PEPs, law enforcement, export control, contract debarment, delisted, elevated risk, regulatory enforcement, high-risk ownership and adverse media, covering individuals, entities, vessels, aircraft, locations and securities.
Do I need my own Castellum.AI credentials?
Yes. This is a bring-your-own-key actor: it calls Castellum.AI with your client id and secret, under your contract and its terms. Missing or rejected credentials end the run cleanly with a status message, and nothing is charged.
Does screening use up my Castellum.AI queries?
Yes. Castellum.AI bills each name query as one API call, even inside a batch. The list source catalogue and the reports are one request each.
How do I reduce false positives?
Raise the minimum match score, set the entity type, add country codes, exclude weak aliases, and scope the screen to the categories or list sources you need. Use the Updated since date to rescreen only against entries that changed.
Can I screen for adverse media only?
Yes. Pick only the Adverse Media category. If you also set entity types, include Media, because adverse media hits are articles with the entity type Media.
Can I screen crypto wallets or bank identifiers?
The Bank ID and crypto sanctions report mode returns the sanctioned bank IDs, enriched bank IDs and crypto wallet addresses Castellum.AI extracts from list sources, which you can match against your own records.
What do I pay?
Pay per result: 0.015 USD per screening hit, 0.01 USD per report list entry and 0.005 USD per list source. Names with no hits, empty reports and refused requests are never charged. Your Castellum.AI contract is billed separately by Castellum.AI.
Pricing
| Event | Price | Charged for |
|---|---|---|
screening-hit | 0.015 USD | Each sanctions, PEP, watchlist or adverse media hit from Screen names or Freeform screening |
watchlist-entry | 0.01 USD | Each list entry in a bank ID or crypto sanctions report |
list-source | 0.005 USD | Each list source in the catalogue |
Keyword map
AML screening API, sanctions screening API, PEP screening API, adverse media screening, watchlist screening, OFAC SDN screening, KYC screening, KYB screening, vessel sanctions screening, aircraft sanctions screening, export control screening, crypto wallet sanctions list, sanctioned bank BIC list, batch name screening, Castellum.AI API, financial crime compliance data for AI agents.
Terms and data use
Castellum.AI data is licensed under your agreement with Castellum.AI (the User Agreement, Version 1.3 of 1 March 2025, plus your API contract). The User Agreement licenses the Product, which includes its watchlist data, to you solely as an end-user and forbids reproducing, sublicensing, selling or transferring it to any third party without written agreement (s.4). It also forbids copying the Product without consent (s.7.2), running automated queries unless agreed in a separate agreement, which your API contract is (s.7.5), keeps Product details confidential (s.8), and forbids giving access to parties Castellum.AI has not authorised (s.15). The terms set no limit on how long you keep your screening results. Run this actor with your own credentials, screen your own customers and counterparties, keep the results for your own compliance records, and do not share or resell them. This actor is not affiliated with or endorsed by Castellum.AI.