Sanctions data updated hourly

Best Practices

API Integration Guide: Adding OFAC Screening to Your Application

Why Use the API?

If you are building an application that needs to screen names against OFAC sanctions lists, our REST API lets you integrate screening directly into your workflow. Instead of switching to a separate tool, your application can check names automatically as part of your onboarding, transaction processing, or any other business process. The API returns results in milliseconds, so it works for real-time use cases.

Getting Started

To use the OFACScreen API, you need:

  1. An OFACScreen account with API access (available on Professional plans and above).
  2. Your API key, which you can find in your account settings at ofacscreen.com.

All API requests are made over HTTPS. We do not accept unencrypted HTTP requests. The base URL for the API is:

https://ofacscreen.com/api/v1/

Authentication

Authenticate your API requests by including your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Keep your API key secure. Do not embed it in client-side code or commit it to version control. Use environment variables or a secrets manager.

Screening a Name

To screen a single name, send a POST request to the search endpoint:

Endpoint: POST /api/v1/search/

Request body:

{
  "name": "John Smith",
  "type": "individual",
  "min_score": 85
}

The type field can be "individual" or "entity". The min_score field sets the minimum similarity score (0 to 100) for returned matches. Higher values mean stricter matching.

Example: Python

import requests

response = requests.post(
    "https://ofacscreen.com/api/v1/search/",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "name": "John Smith",
        "type": "individual",
        "min_score": 85
    }
)

results = response.json()
for match in results["matches"]:
    print(f"{match['name']} - Score: {match['score']}")

Example: JavaScript (Node.js)

const response = await fetch("https://ofacscreen.com/api/v1/search/", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    name: "John Smith",
    type: "individual",
    min_score: 85
  })
});

const results = await response.json();
results.matches.forEach(match => {
  console.log(`${match.name} - Score: ${match.score}`);
});

Example: cURL

curl -X POST https://ofacscreen.com/api/v1/search/   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{"name": "John Smith", "type": "individual", "min_score": 85}'

Response Format

The API returns a JSON response with the following structure:

{
  "query": "John Smith",
  "matches": [
    {
      "name": "John Michael SMITH",
      "score": 92,
      "source": "OFAC SDN",
      "type": "Individual",
      "programs": ["SDGT"],
      "remarks": "DOB 15 Mar 1970; POB London, UK"
    }
  ],
  "total_matches": 1,
  "screened_at": "2025-01-15T10:30:00Z"
}

If there are no matches, the matches array will be empty and total_matches will be 0. A clean result does not mean you should skip documentation. Log the result regardless.

Error Handling

The API uses standard HTTP status codes:

  • 200: Success. Results are in the response body.
  • 400: Bad request. Check your request body for missing or invalid fields.
  • 401: Unauthorized. Your API key is missing or invalid.
  • 429: Rate limit exceeded. Slow down your requests and try again.
  • 500: Server error. Contact support if this persists.

Always check the status code before processing the response. Implement retry logic with exponential backoff for 429 and 500 errors.

Rate Limits

API access is available on Business and Enterprise plans. Business plans include 10,000 searches per month. Enterprise plans include unlimited searches. If you need higher limits, contact us about Enterprise pricing.

Best Practices

  • Log every screening. Store the request, response, and timestamp for your compliance records.
  • Handle errors gracefully. If the API is unavailable, queue the screening for retry rather than skipping it.
  • Use appropriate thresholds. Start with a min_score of 85 and adjust based on your false positive tolerance.
  • Screen before, not after. Integrate screening before you process a transaction or onboard a customer, not as an afterthought.

Full API documentation is available at ofacscreen.com/docs. If you have questions about integration, contact our support team.

Start Screening Against OFAC Today

14-day free trial. No credit card required. Screen against OFAC SDN, Non-SDN, BIS, and more.

Start Free Trial