The Minerva API enables financial institutions and regulated entities to automate and streamline key parts of their anti-money laundering (AML) compliance workflows. It leverages advanced deep learning models to analyze and consolidate information from over 250,000 global sources, covering nearly 1 billion individuals and entities and over 4.5 billion data points. The API provides structured outputs to support screening, investigations, onboarding, and regulatory reporting.
⚠️ URL Migration Notice: Legacy *.minervaai.io URLs are deprecated. Use
the *.gominerva.com URLs shown throughout this API reference for all new
integrations.
Getting Access
Access to the Minerva API is managed through the Minerva dashboard:
- API keys are created and managed from Administration > Developers. This page requires the Developer role or above.
- Create separate live and dev applications so each integration has its own key lifecycle, usage history, and owner context.
- For additional access or integration requests, please contact support@gominerva.com.
- API keys are not currently scoped by per-key RBAC permissions.
API Overview
The Minerva API is organized around two key capabilities:
- Profile Management
- Real-Time Risk Assessment
This guide walks through the features and workflows of each.
1. Profile Management & Monitoring
- Integrate Minerva into onboarding workflows to screen and register customers in a single step.
- Keep customer profiles up to date and synchronize data across internal systems and Minerva.
- Enable ongoing monitoring for changes in risk status or new matches.
- Leverage APIs and webhooks to support investigation workflows, review queues, and keep internal systems in sync
2. Real-Time Risk Assessment
Minerva screens individuals and entities against global watchlists (e.g. sanctions, PEPs, criminal, terror lists) and adverse media mentions. Results are enriched with supporting evidence and confidence scoring.
- Real-Time Screening: Instantly screen a single profile synchronously for immediate results.
- Batch Screening: Submit large batches of profiles to be processed in parallel asynchronously, supporting high-volume operations.
- Generate reports: Automatically summarize search results and profile data for documentation, audits, or compliance filings.
Recommended Report Generation Flow
Use POST /v1/reports with a searchResultId from a previous search.
The abbreviated responses below only show the fields you need to carry from
one step to the next: jobid, searchId, searchResultId, index, and
reports.
Single Search Flow
Step 1: Run POST /v1/search-sync
Request:
curl -X POST https://api.gominerva.com/v1/search-sync \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "individual",
"name": "Jane Doe",
"feeds": ["Sanctions", "PEP", "News"]
}'
Response:
{
"status": 200,
"jobid": "<jobId>",
"searchId": "<searchId>",
"results": [
{
"name": {
"value": "Jane Doe",
"match_score": 1.0,
"criteria_match_level": "exact"
},
"score": 1.0
},
{
"name": {
"value": "Jane Doe",
"match_score": 1.0,
"criteria_match_level": "exact"
},
"score": 1.0
}
]
}
Save searchId. For search-sync, this value becomes searchResultId in the
report-generation request.
Step 2: Run POST /v1/reports with that searchId
Request:
curl -X POST https://api.gominerva.com/v1/reports \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"searchResultId": "<searchId>",
"index": 0
}'
Response:
{
"status": 200,
"response": "Reports generated",
"reports": ["https://storage.googleapis.com/.../Minerva-Report.pdf"]
}
index selects the ranked match from the prior search response: 0 for the
top match, 1 for the second match, and so on.
Batch Search Flow
Step 1: Run POST /v1/search
Request:
curl -X POST https://api.gominerva.com/v1/search \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"requests": [
{ "type": "individual", "name": "Jane Doe" },
{ "type": "organization", "name": "Acme Corp" }
],
"feeds": ["Sanctions", "PEP"]
}'
Response:
{
"status": 200,
"message": "Requests successfully submitted",
"id": "<jobId>"
}
Save id from this response. This is the batch jobid you use to read the
completed results.
Step 2: Read the completed batch results
You can use either POST /v1/searchStatus or GET /v1/search/{jobid}. The
examples below use POST /v1/searchStatus.
Request:
curl -X POST https://api.gominerva.com/v1/searchStatus \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "<jobId>"
}'
Response:
{
"status": 200,
"response": "complete",
"results": [
{
"request": { "name": "Jane Doe" },
"searchId": "<requestId>_0",
"results": [
{
"name": {
"value": "Jane Doe",
"match_score": 1.0,
"criteria_match_level": "exact"
},
"score": 1.0
}
]
},
{
"request": { "name": "Acme Corp" },
"searchId": "<requestId>_1",
"results": [
{
"name": {
"value": "Acme Corp"
},
"score": 1.0
}
]
}
]
}
Each results[n].searchId is entity-scoped. Pick the searchId for the
subject you want to report on, then pass that value as searchResultId.
Step 3: Run POST /v1/reports with the batch result searchId
Request:
curl -X POST https://api.gominerva.com/v1/reports \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"searchResultId": "<requestId>_0",
"index": 0
}'
Response:
{
"status": 200,
"response": "Reports generated",
"reports": ["https://storage.googleapis.com/.../Minerva-Report.pdf"]
}
Summary
With Minerva’s API’s you can:
- Screen individuals and entities in real time or as part of a batch
- Integrate screening and monitoring into onboarding and compliance workflows
- Monitor and manage customer profiles over time
- Generate audit-ready reports for documentation and regulatory filings
- Streamline and scale your AML compliance operations