Screen a vessel
curl --request GET \
--url https://api.compliapi.com/api/v1/screen/vessel/{identifier} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.compliapi.com/api/v1/screen/vessel/{identifier}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.compliapi.com/api/v1/screen/vessel/{identifier}', 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.compliapi.com/api/v1/screen/vessel/{identifier}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.compliapi.com/api/v1/screen/vessel/{identifier}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.compliapi.com/api/v1/screen/vessel/{identifier}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compliapi.com/api/v1/screen/vessel/{identifier}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyScreening
Screen a vessel
Screen a ship by IMO number or MMSI across the sanctions lists
GET
/
screen
/
vessel
/
{identifier}
Screen a vessel
curl --request GET \
--url https://api.compliapi.com/api/v1/screen/vessel/{identifier} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.compliapi.com/api/v1/screen/vessel/{identifier}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.compliapi.com/api/v1/screen/vessel/{identifier}', 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.compliapi.com/api/v1/screen/vessel/{identifier}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.compliapi.com/api/v1/screen/vessel/{identifier}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.compliapi.com/api/v1/screen/vessel/{identifier}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compliapi.com/api/v1/screen/vessel/{identifier}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyScreens a ship by its IMO number (7 digits) or MMSI (9 digits) across every enabled list that publishes ship identifiers — the US OFAC SDN list, the UK Sanctions List, the Swiss SECO list, Canada’s and Australia’s consolidated lists and the French Trésor register. Use it before chartering, insuring, financing or trading cargo with a vessel, alongside screening the vessel’s name with
Matching is exact on the number: each list’s own formatting is ignored, and every listed identifier is returned in one canonical form (
An IMO number identifies a hull for its whole life, while a ship’s name, flag and MMSI can change — screen the IMO number whenever you have it. Company IMO numbers (also 7 digits) are a different register and are not screened here.
/screen/name (type=vessel).
string
required
An IMO number, with or without the
IMO prefix (IMO 9116412, IMO9116412 and 9116412 are the same), or an MMSI. Anything else returns 400.string
Comma-separated list slugs to screen against (default: all enabled lists).
IMO 9116412, MMSI 422000000), so the same ship listed by several authorities — often under different spellings of its name — matches on every list that carries it. Each match’s metadata carries kind (imo or mmsi) and the listed vessel’s name; the response is the shared screening envelope.
Example response
{
"value": "IMO 9116412",
"flagged": true,
"sanctioned": true,
"lists_checked": ["ofac", "ofac_consolidated", "uk_fcdo_sanctions"],
"matches": [
{
"list": "ofac",
"list_name": "US OFAC SDN",
"list_type": "sanctions",
"match": "exact",
"value": "IMO 9116412",
"source_url": "https://sanctionssearch.ofac.treas.gov/Details.aspx?id=27304",
"metadata": { "sdn_name": "ADRIAN DARYA 1", "sdn_type": "Vessel", "kind": "imo" }
}
]
}