curl --request GET \
--url https://api.gominerva.com/v1/search/{jobid} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.gominerva.com/v1/search/{jobid}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.gominerva.com/v1/search/{jobid}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gominerva.com/v1/search/{jobid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gominerva.com/v1/search/{jobid}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.gominerva.com/v1/search/{jobid}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gominerva.com/v1/search/{jobid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": 200,
"response": "complete",
"submitted": 2,
"completed": 2,
"results": [
{
"id": "1624676726659826",
"jobid": "25e15c07-1322-4364-a26e-2a6ef25c81d4",
"status": "complete",
"searchId": "<requestId>_0",
"request": {
"name": "John Example",
"type": "individual",
"feeds": [
"Sanctions",
"PEP",
"News"
]
},
"results": [
{
"type": 0,
"name": {
"value": "John Example",
"match_score": 0.97,
"criteria_match_level": "close"
},
"score": 0.97,
"checklist": {
"screen": {
"Sanctions": true,
"PEP": false,
"News": false
}
},
"review_status": "unresolved",
"disposition_hint": {
"prediction": "true_positive",
"confidence": 0.99,
"analysis_status": "completed",
"source": "direct_api",
"rationale": "The searched subject matches the potential match on name and country context, and no discovered identity attribute contradicts the match."
},
"sources": [
"Example Sanctions List"
]
},
{
"type": 0,
"name": {
"value": "John Example",
"match_score": 0.92,
"criteria_match_level": "close"
},
"score": 0.88,
"checklist": {
"screen": {
"Sanctions": false,
"PEP": true,
"News": false
}
},
"review_status": "false_positive",
"automatic_disposition": {
"prediction": "false_positive",
"confidence": 0.95,
"analysis_status": "completed",
"source": "direct_api",
"rationale": "The searched subject's occupation and country conflict with the listed person, and the date of birth reported by the triggering source does not align with the submitted subject."
},
"sources": [
"Example Government Biography"
]
},
{
"type": 0,
"name": {
"value": "John Example",
"match_score": 0.9,
"criteria_match_level": "close"
},
"score": 0.82,
"checklist": {
"screen": {
"Sanctions": false,
"PEP": false,
"News": false
}
},
"review_status": "unresolved",
"sources": [
"Example Corporate Registry"
]
}
]
}
]
}Get batch search results
Check the status of an asynchronous search job, and retrieve its results once the screening completes. A successful submission to POST /v1/search returns a job ID; use that job ID here to query the search. While the search is in progress, this endpoint returns progress data showing how far along the job is. When the search is complete, it returns the full response object. For every object in the requests body you submitted to /v1/search, the response returns one profile object. See the Profile Data Schema for a detailed view of the profile object.
New: matches in completed rows can include Automatic Disposition annotations. See the review_status, automatic_disposition, and disposition_hint response fields below and the Automatic Disposition Guide.
curl --request GET \
--url https://api.gominerva.com/v1/search/{jobid} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.gominerva.com/v1/search/{jobid}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.gominerva.com/v1/search/{jobid}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gominerva.com/v1/search/{jobid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.gominerva.com/v1/search/{jobid}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.gominerva.com/v1/search/{jobid}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gominerva.com/v1/search/{jobid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": 200,
"response": "complete",
"submitted": 2,
"completed": 2,
"results": [
{
"id": "1624676726659826",
"jobid": "25e15c07-1322-4364-a26e-2a6ef25c81d4",
"status": "complete",
"searchId": "<requestId>_0",
"request": {
"name": "John Example",
"type": "individual",
"feeds": [
"Sanctions",
"PEP",
"News"
]
},
"results": [
{
"type": 0,
"name": {
"value": "John Example",
"match_score": 0.97,
"criteria_match_level": "close"
},
"score": 0.97,
"checklist": {
"screen": {
"Sanctions": true,
"PEP": false,
"News": false
}
},
"review_status": "unresolved",
"disposition_hint": {
"prediction": "true_positive",
"confidence": 0.99,
"analysis_status": "completed",
"source": "direct_api",
"rationale": "The searched subject matches the potential match on name and country context, and no discovered identity attribute contradicts the match."
},
"sources": [
"Example Sanctions List"
]
},
{
"type": 0,
"name": {
"value": "John Example",
"match_score": 0.92,
"criteria_match_level": "close"
},
"score": 0.88,
"checklist": {
"screen": {
"Sanctions": false,
"PEP": true,
"News": false
}
},
"review_status": "false_positive",
"automatic_disposition": {
"prediction": "false_positive",
"confidence": 0.95,
"analysis_status": "completed",
"source": "direct_api",
"rationale": "The searched subject's occupation and country conflict with the listed person, and the date of birth reported by the triggering source does not align with the submitted subject."
},
"sources": [
"Example Government Biography"
]
},
{
"type": 0,
"name": {
"value": "John Example",
"match_score": 0.9,
"criteria_match_level": "close"
},
"score": 0.82,
"checklist": {
"screen": {
"Sanctions": false,
"PEP": false,
"News": false
}
},
"review_status": "unresolved",
"sources": [
"Example Corporate Registry"
]
}
]
}
]
}Authorizations
The Minerva API key used for this integration. Manage API keys in the Minerva dashboard under Administration > Developers.
Path Parameters
The job ID from a previous search submission to the POST search endpoint.
Response
The job ID was valid. Either the job status or the full search results are returned.
Automatic Disposition (New): when the workspace that submitted the batch has Automatic Disposition enabled with the Direct API channel turned on, Minerva analyzes every screened potential match in a row's results[], meaning one carrying at least one risk flag (Sanctions, PEP, News, Criminal, Legal, and so on) in checklist.screen, before that row completes. This can add a few seconds per screened entity to row completion. The same rows are returned by POST /v1/searchStatus.
review_statuschanges only in Full Auto Mode: a prediction that meets the configured confidence threshold setstrue_positiveorfalse_positive, and the applied prediction is returned inautomatic_disposition.- In Hint Mode the prediction is returned in
disposition_hintandreview_statusstaysunresolved; the annotation is advisory, for your integration to interpret in real time. - An analysis that completes without meeting a threshold returns
disposition_hintwithprediction: "undetermined"and the match staysunresolved.
Clean matches and workspaces without the feature enabled never carry these fields. The default response example shows annotated matches. Opt the whole job out at submission by sending the X-Minerva-Automatic-Disposition: skip header on POST /v1/search (inert unless the feature is enabled for the workspace), and see the Automatic Disposition Guide for consuming these fields in an integration.
200
The current status of the batch search job
complete, pending, error "complete"
Total number of search requests submitted in the batch
42
Number of search requests completed so far
42
Array of search results. Present only when the response status is "complete".
Show child attributes
Show child attributes