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
- "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())
- All endpoints expect JSON.
- Authentication is required for protected endpoints.
- Use
X-Authorizationheader for authenticated requests with Bearer before your token.