SanctionsSearch API Documentation

We provide REST APIs, so the process of checking for sanctioned individuals, organisations and vessels can be automated.

Authentication

POST /api/token/

Obtain access and refresh tokens.

Request Body
{
    "username": "your_email",
    "password": "your_password"
}
Response
{
    "access": "access_token",
    "refresh": "refresh_token"
}
Python Example
import requests

url = "https://www.sanctionssearch-web.com/api/token/"

payload = {
    "username": "your_email",
    "password": "your_password"
}

response = requests.post(url, json=payload)

print(response.status_code)
print(response.json())

POST /api/token/refresh/

Refresh access token.

Request Body
{
    "refresh": "your_refresh_token"
}
Python Example
import requests

url = "https://www.sanctionssearch-web.com/api/token/refresh/"

payload = {
    "refresh": "your_refresh_token"
}

response = requests.post(url, json=payload)

print(response.status_code)
print(response.json())

Sanctions lists and search

GET /api/sanctions_lists/

Returns currently available sanctions lists. No parameters and no authorization are required to call this endpoint.

Python Example
import requests

url = "https://www.sanctionssearch-web.com/api/sanctions_lists/"

response = requests.get(url)

print(response.status_code)
print(response.json())

POST /api/search/

Search across sanctions lists.

Request Body Parameters:
"algorithm" (string, optional) - Specifies the search algorithm to be used.
Accepted values:

  • "algorithm1" - Exact phrase match
    Returns results only when the full search phrase appears exactly (in the same order) within the entity name.
    Example:
    • Company name: "noble shipping company limited"
    • Search: "shipping company noble" - no match ❌ (words order not the same as in the company name)
    • Search: "noble shipping company" - match ✅ (this phrase in the company name)
    • Search: "noble" - match ✅ (this phrase in the company name)
  • "algorithm2" (default) - All-words match (order-independent)
    Returns results when all words in the search phrase are present in the entity name, regardless of order.
    Example:
    • Company name: "trust noble shipping company limited"
    • Search: "shipping company frog" - no match ❌ (not all words are in the company name)
    • Search: "shipping company noble" - match ✅ (all words are in the company name)
    • Search: "shipping trust" - match ✅ (all words are in the company name)

"list_id_commaseparated" (string, required) - Comma-separated list of sanctions list IDs to search within.
These IDs can be retrieved from the /api/sanctions_lists/ endpoint.

"search_str" (string, required) - The search phrase (case-insensitive).
Supported inputs include:
  • Entity or individual names (full or partial)
  • Identification numbers
  • Vessel IMO numbers
  • Vessel call signs
Examples:
  • "petrochemicals"
  • "proton petrochemicals shipping limited"
  • "proton"
  • "7406784"
  • "cl2059"


Headers
{
    "X-Authorization": "Bearer your_access_token"
}
Request Body
{
    "algorithm": "algorithm2",
    "list_id_commaseparated": "1,2,3,4",
    "search_str": "samma shipping"
}
Python Example
import requests

url = "https://www.sanctionssearch-web.com/api/search/"

headers = {
    "X-Authorization": "Bearer your_access_token"
}

payload = {
    "algorithm": "algorithm2",
    "list_id_commaseparated": "1,2,3,4",
    "search_str": "samma shipping"
}

response = requests.post(url, json=payload, headers=headers)

print(response.status_code)
print(response.json())

GET /api/entity/<entity_id>/

Retrieve detailed information about a specific entity.

Path Parameter: "entity_id" - can be obtained from /api/search/ endpoint.

Headers
{
    "X-Authorization": "Bearer your_access_token"
}
Path Parameter
entity_id: integer
Python Example
import requests

entity_id = 123
url = f"https://www.sanctionssearch-web.com/api/entity/{entity_id}/"

headers = {
    "X-Authorization": "Bearer your_access_token"
}

response = requests.get(url, headers=headers)

print(response.status_code)
print(response.json())

Notes:
  • All endpoints expect JSON.
  • Authentication is required for protected endpoints.
  • Use X-Authorization header for authenticated requests with Bearer before your token.