Skip to main content
Validate

The Sanctions Screening API tells you whether a name is on a US sanctions or export-control list

Send a person's, company's or vessel's name and get a verdict of clear, possible match or match from 12 US government lists, with the list, agency and programs of every match. 3 credits per completed screening.

3 credits per lookupSame credits as every other product
1Lookup Sanctions Screening API showing a fictional company, Sample Trading Company, screened against 12 US government lists and returned as a possible match on the Entity List with a recommended action to verify

3

Credits per screening

about $0.01 on Starter

12

US government lists in one call

Treasury, Commerce and State

Up to 10

Ranked matches per answer

strongest first, with aliases and addresses

0

Credits when the lists cannot be read

never answered as clear

Twelve US government lists are checked in every screening

The Treasury's sanctions lists, the Commerce Department's export-control lists and the State Department's lists are searched in one call, so a name does not have to be run through three agencies' tools.

The 12 US government lists every sanctions screening checks, grouped by publisher: six Treasury sanctions lists, four Commerce export-control lists and two State Department lists, with the note that the lists are US government lists only

A name comes back as a verdict with the list records behind it in one flat payload

One call checks a name against 12 US government lists

The Treasury's sanctions lists, the Commerce Department's export-control lists and the State Department's lists are searched together, from public government data that is republished every day and refreshed here every 6 hours.

  • Six Treasury sanctions lists, among them the SDN list
  • Four Commerce lists, among them the Entity List
  • Two State Department lists
  • The date of the last update on every answer

The answer is a verdict with a recommended action

A name comes back clear, as a possible match or as a match, with APPROVE, VERIFY or REVIEW as the recommended action. A strong match is never an approval, so a listed party does not pass as clear in an automated flow.

  • outcome: clear, possible_match or match
  • primary_action: APPROVE, VERIFY or REVIEW
  • Counts of strong and possible matches
  • The closest match, its list and its programs

Word order, legal forms and small misspellings do not hide a match

Smith, John is John Smith, Inc and LLC are set aside when other words remain, and a longer word still matches a spelling a letter or two off. A middle initial the list does not carry does not cost the match.

  • Case, accents and word order ignored
  • Legal forms such as Inc, LLC and GmbH set aside
  • Near spellings of longer words matched
  • Aliases searched as well as names

Every match carries what you need to confirm who it is

Up to ten matches come back strongest first, each with the matched name, the list and its agency, the programs, aliases, addresses, countries, any date and place of birth, and the date it was listed, so a reviewer can compare it with what the customer gave you.

  • Up to ten matches, strongest first
  • Up to eight aliases and the alias count
  • Addresses, countries and dates of birth
  • A link to the list and to the agency's page

A country ranks the matches and never hides one

Add a two-letter country and each match is marked country_match true or false, with matches from that country first. No match is ever removed because the country differs, so a listed party that gave you a different country still shows.

  • country_match on every match
  • Matches from your country first
  • Nothing removed by a mismatch
  • Optional, and left out when unknown

A screening that cannot run costs nothing and is never read as clear

Every completed screening bills 3 credits. A name that is refused, lists that cannot be read and a repeat by the same user within 24 hours cost 0, and a failed read is never reported as clear, in the API, the dashboard and bulk jobs.

  • Zero credits when refused or unreadable
  • Bulk CSV with a name column
  • The same credits as every other product
  • One API key for all of it

A name goes in and a verdict from 12 US lists comes out

01

Send a name

POST a person's, company's or vessel's name of 2 to 150 characters, with a two-letter country if you have one. A name that cannot be screened, such as an empty one or one with no Latin letters, is refused with a clear error and costs nothing.

request

$ POST /api/v1/sanctions-screening

"name": "Sample Trading Company"

"country": "XX"

02

We search the 12 lists

The name is reduced to its words, so word order, accents and legal forms do not matter, and a near spelling still matches. Every record on the Treasury, Commerce and State lists that shares a word is scored, and the best matches are ranked.

processing

Name reduced to its words

12 US government lists searched

Near spellings and aliases scored

Matches ranked, strongest first

03

Get the verdict, flat and structured

The outcome, the recommended action and the matches arrive in one JSON payload. Every completed screening bills 3 credits, a clear one included, and a name that cannot be screened bills nothing.

200 OK

outcomepossible_match

closestSAMPLE TRADING CO

listEntity List

VERIFY3 credits, 0 if it cannot run

One endpoint screens a name and works like every other 1Lookup call

Same authentication, same credit balance, and the same response envelope as every other 1Lookup product. If you have already integrated one endpoint, this one is a URL change.

POST /v1/sanctions-screening
curl -X POST https://app.1lookup.io/api/v1/sanctions-screening \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Sample Trading Company", "country": "XX" }'
200 OK
{
  "classification": {
    "screened": true,
    "outcome": "possible_match",
    "name_searched": "Sample Trading Company",
    "country_searched": "XX",
    "hit_count": 1,
    "strong_match_count": 0,
    "possible_match_count": 1,
    "lists_with_hits": ["EL"],
    "top_match_name": "SAMPLE TRADING CO",
    "top_match_list": "EL (Entity List)",
    "top_match_programs": [],
    "lists_checked": 12,
    "records_checked": 26173,
    "list_updated": "2026-10-25",
    "list_is_stale": false
  },
  "insights": {
    "sanctions_screening_result": {
      "outcome": "possible_match",
      "matches_shown": 1,
      "matches": [
        {
          "match_strength": "possible",
          "matched_name": "SAMPLE TRADING CO",
          "matched_on": "name",
          "score": 0.86,
          "country_match": true,
          "record_type": "entity",
          "list_code": "EL",
          "list_name": "Entity List",
          "agency": "Bureau of Industry and Security",
          "programs": [],
          "countries": ["XX"],
          "addresses": ["1 Example Road, Sampletown, XX"],
          "aliases": ["Sample Trade Limited"],
          "alias_count": 1,
          "listed_since": "2024-01-15"
        }
      ],
      "data_source": "us_consolidated_screening_list"
    }
  },
  "recommendations": {
    "primary_action": "VERIFY",
    "secondary_actions": ["compare_details_with_the_record"],
    "user_message": "Sample Trading Company has 1 possible match, closest SAMPLE TRADING CO on the Entity List (Bureau of Industry and Security). Compare the details before you act."
  },
  "metadata": { "credits_used": 3, "cache_hit": false }
}

A column of names goes in and one row per name comes out

Upload a CSV with a name column and download a result file with each name's outcome, match counts and closest match. The four names here are invented.

names.csvYou upload
  1. 1name
  2. 2sample hardware supply
  3. 3sample trading company
  4. 4example freight company
  5. 5---
sanctions-screening-results.csvYou download
nameOutcomeStrong MatchesPossible MatchesClosest MatchClosest Match ListCredits Used
sample hardware supplyclear003
sample trading companypossible_match01SAMPLE TRADING COEL (Entity List)3
example freight companymatch10EXAMPLE FREIGHT COMPANYDPL (Denied Persons List)3
---0

Six more columns in the file, among them Name Searched, Country Searched, Lists With Matches, Closest Match Programs, Records Checked and List Updated.

One row in, one row out

Every name becomes one row, so a list of 500 customers is a spreadsheet of 500 rows you can sort by outcome and filter to the ones to review.

A clear name is a billed row

A row that finishes clear is billed like any other, because the clear answer is what you asked for, and the file says how many records were checked.

A name that cannot be screened is a free row

A row with no Latin letters, or one that is empty or too long, comes back as a failed row and costs 0 credits, so cleaning a list never bills for the rows that cannot run.

One call returns a verdict and the closest records for a name

One call turns a name on an application, an invoice or a customer list into an answer from the US government's sanctions and export-control lists: whether anything matches, how strongly, which list and agency it sits on, and what the list records about it, with the raw JSON your code receives beside it.

app.1lookup.io/api/v1Possible match
  • Name screenedSample Trading Company
  • OutcomePossible match
  • Recommended actionVERIFY
  • Closest matchSAMPLE TRADING CO
  • Match score0.86
  • ListEntity List
  • AgencyBureau of Industry and Security
  • AliasSample Trade Limited
  • Address on the list1 Example Road, Sampletown, XX
  • Listed since2024-01-15
  • Lists checked12
  • List updated2026-10-25
200 OK, 3 credits
{
  "classification": {
    "screened": true,
    "outcome": "possible_match",
    "strong_match_count": 0,
    "possible_match_count": 1,
    "top_match_name": "SAMPLE TRADING CO",
    "top_match_list": "EL (Entity List)",
    "lists_checked": 12,
    "list_updated": "2026-10-25"
  },
  "insights": {
    "sanctions_screening_result": {
      "matches": [{ "match_strength": "possible", "score": 0.86, "list_code": "EL" }],
      "data_source": "us_consolidated_screening_list"
    }
  },
  "metadata": { "credits_used": 3 }
}

Every screening returns the same fields at one flat price

A field a list record does not hold comes back empty and never as a guess, and every completed screening costs the same 3 credits.

Verdict

  • screened
  • outcome
  • hit_count
  • strong_match_count
  • possible_match_count
  • lists_with_hits

Closest match

  • top_match_name
  • top_match_list
  • top_match_programs

Each match

  • matches[].match_strength
  • matches[].matched_name
  • matches[].matched_on
  • matches[].score
  • matches[].country_match
  • matches[].record_type

Listing details

  • list_code
  • list_name
  • agency
  • programs
  • title
  • countries
  • addresses
  • date_of_birth
  • place_of_birth
  • aliases
  • alias_count
  • remarks
  • listed_since
  • listing_ends
  • list_url
  • source_url

Coverage

  • lists_checked
  • records_checked
  • list_updated
  • list_is_stale
  • data_source

Fintech, export and compliance teams screen a name instead of searching three agencies' lists by hand

Fintech and payment teams screening new customers

Screen the name on each application at sign-up, approve a clear one automatically and send a possible match or a match to a reviewer with the list, programs and aliases already attached.

Exporters and freight forwarders checking buyers and consignees

Check the buyer, the consignee and the end user against the Commerce and State lists as well as the Treasury's before an order ships or a quote goes out.

Marketplaces and lenders checking a merchant or a borrower

Add a screening step to onboarding, so a merchant or a borrower whose name matches a listed party is held for review and the rest go through.

Compliance teams screening a customer or vendor list

Upload a CSV with a name column and sort the result by outcome, so a file of thousands of names becomes a short list of the ones to read.

Procurement and accounts payable teams checking a new vendor

Screen the vendor's legal name before the first payment is set up, and keep the answer with the list update date on the vendor record.

Sales and partnership teams checking a reseller or distributor

Run the prospective partner's name before a contract is signed, and take a possible match to compliance with the matched record beside it.

Every completed screening is billed and every screening that cannot run is free

A clear answer, a possible match and a match are each one billed screening. A name that is refused, lists that cannot be read and the same screening asked again by the same user within 24 hours are not charged.

Six results of a sanctions screening: a clear answer, a possible match and a match are each billed, while a name that is refused, lists that cannot be read and the same screening asked again within 24 hours by the same user are not charged

These are the questions people ask before they screen their first name

What does the Sanctions Screening API return?

Send a name, with a two-letter country if you like, and it returns a verdict: clear, possible match or match. With it come how many strong and possible matches there were, the lists they are on, the closest match and its list and programs, the recommended action (approve, verify or review), and up to ten matches ranked strongest first. Each match carries the matched name, the list and its agency, the programs, aliases, addresses, countries, any date of birth and the date it was listed.

Which lists does it check?

Twelve US government lists in one call: six from the Treasury Department (Specially Designated Nationals, Sectoral Sanctions, Chinese Military-Industrial Complex companies, the Palestinian Legislative Council list, menu-based sanctions and correspondent account sanctions), four from the Commerce Department (the Entity List, Denied Persons, the Unverified List and Military End User) and two from the State Department (ITAR debarred and nonproliferation sanctions). They are US government lists only: EU, UN, UK and other lists are not included.

How does it decide between clear, possible match and match?

A name is reduced to its words, so case, accents, word order and legal forms such as Inc or LLC do not matter, and a word of five or more letters also matches a near spelling. It is a match when the name is the same, scores 0.9 or higher, or every word you typed is on a record that has at most a couple more (a second given name, say). It is a possible match when the score is 0.7 or higher and at least three quarters of the words were found. Anything else is clear. A single word is only compared with one-word names, so a lone surname does not match thousands of people.

What does a clear result mean?

That no record on the 12 US government lists matches the name you sent. primary_action is APPROVE, and the answer says how many lists and records were checked and the date the lists were last updated. A possible match returns VERIFY and a match returns REVIEW, because a name alone is never proof of who someone is.

How much does a screening cost?

3 credits per completed screening, about $0.01 on the Starter plan. A screening is billed whatever the answer is, a clear one included, because the answer clear is what the credits buy. A name that is refused, a screening that cannot run because the lists could not be read, and a repeat of the same screening by the same user within 24 hours all cost 0 credits, in the API, the dashboard and bulk jobs.

Where does the list data come from?

From the US Consolidated Screening List, which the International Trade Administration publishes from the lists of the Treasury, Commerce and State departments and republishes every day. We refresh our copy every 6 hours, and every answer says how many records were checked and the date the lists were last updated.

How current is the answer, and can I ask again?

Lists are refreshed every 6 hours, so a new listing reaches a screening within a day. If the list cannot be refreshed, a copy up to 48 hours old is used and the answer says so in list_is_stale. A repeat of the same screening by the same user within 24 hours comes from the cache at no charge.

What happens when the lists cannot be read?

The API answers 503 with a Retry-After header, charges nothing and does not save the answer, so a retry is never a second charge. A failed read is never reported as clear, because an answer of nothing found has to mean the lists were searched.

What names can I send?

A name of 2 to 150 characters with at least one Latin letter or digit, for a person, a company or a vessel, plus an optional two-letter country. Names in other scripts, an empty name, a name that is too long and a country that is not two letters are refused with a clear error before anything is charged. The US lists spell every name, aliases included, in Latin letters.

What does the country do?

It ranks the matches and never removes one. Each match is marked country_match true or false, and a match from the country you typed comes first. Leave it out when you do not know it.

Can I confirm a match with a date of birth or an address?

Not as an input: you send a name and an optional country. Each match returns the dates of birth, places of birth, addresses and countries the list holds, so you can compare them with what your customer gave you and decide whether it is the same party.

Does it keep watching a name after the check?

No. Each screening is a check of the lists as they stand when you ask. Run the name again when you want a new answer; a repeat after 24 hours is billed like any other screening.

Can I screen a list of names at once?

Yes. Upload a CSV with a name column and you get a row per name with its outcome, the strong and possible match counts, the lists with matches and the closest match. Every completed row is billed at the same credits, a clear one included, and a row the parser refuses fails without a charge.

To check a single name before you write any code, run it through the free sanctions list search.

Screen a few names you work with and see what comes back

Start a free trial, and your credits work across every product in the catalog.