World Bank Restricted Firms Screening API checks whether firms appear on the World Bank Group’s debarred or cross-debarred firms list. Send firm names for screening, and it returns whether a match was found along with the matched firm’s name, country, aliases, registration details, sanction status, sanction basis, and ineligibility dates. Use it for supplier screening, procurement workflows, partner due diligence, onboarding, and compliance checks.
The API supports batch screening, allowing multiple firm names to be checked in a single request. Its fuzzy matching handles common differences such as spelling variations, accents, punctuation, word order, legal-form suffixes, and alternative firm names, making it useful when submitted firm names do not exactly match the listed records.
You can also browse and filter debarred firms, retrieve detailed firm information and change history, access reference codes, and track firms that have been added, removed, or changed over time. This makes the API suitable for automated compliance workflows that need to screen firms and stay updated with changes to the World Bank debarment list
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
About this endpoint
What it does
Checks one firm name against the debarred and cross-debarred firms list. Matching handles accents, punctuation, word order, legal-form suffixes, and small spelling differences. You can narrow candidates by country and control the minimum match score and number of returned matches.
Query Parameter(s)
Parameter
Type
Mandatory
Description
name
String
Yes
Company name in Latin letters; 2–200 characters.
limit
Integer
No
Maximum matches to return. Range: 1–20. Default: 5.
country
String
No
ISO country code used to narrow candidate matches.
threshold
Number
No
Minimum match score from 0.5 to 1.0. Default: 0.8.
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
About this endpoint
What it does
Screens multiple firm names in one request. Submit 1–50 names and optionally apply one country filter and one match threshold to the whole batch. Results are returned in the same order as the submitted names.
Request Body
Parameter
Type
Mandatory
Description
names
String Array
Yes
Company names to screen. Minimum 1 and maximum 50.
country
String / null
No
ISO country code applied to every submitted name.
threshold
Number
No
Minimum match score from 0.5 to 1.0. Default: 0.8.
Response
Field
Type
Description
count
Integer
Number of names received.
screened
Integer
Number of names screened.
results
Array
One screening result for each submitted name.
results[].query
Object
Original query details and matching settings.
results[].matched
Boolean
Whether a matching firm was found.
results[].best_score
Number
Highest match score for the submitted name.
results[].matches
Array
Matching firm records using the same firm fields as /screen.
data_freshness
Object
Information about when the list was checked.
▣ ENDPOINT 03 / 06
GET
Firms on the list, filtered by country, basis or dates
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
About this endpoint
What it does
Returns incremental list changes from a specified date. Each event identifies when the change was recorded, whether the firm was added, removed, or changed, and the affected firm record.
Query Parameter(s)
Parameter
Type
Mandatory
Description
since
String
Yes
ISO date or UTC datetime from which to return changes.
page
Integer
No
Page number. Default: 1.
per_page
Integer
No
Results per page. Range: 1–200. Default: 100.
Response
Field
Type
Description
since
String
Date or datetime used for the change feed.
tracking_since
String
Timestamp from which the service began tracking changes.
note
String
Explains how the initial snapshot is represented in the change history.
results
Array
Change events.
results[].at
String
Timestamp of the change event.
results[].kind
String
Change type, such as added, removed, or changed.
results[].detail
String / null
Additional change details, when available.
results[].firm
Object
Firm affected by the change, using the firm record fields described above.
{
"status": {
"debarred": "debarred by the World Bank itself",
"cross_debarred": "debarred by another multilateral development bank and enforced by the World Bank under the 2010 Agreement for Mutual Enforcement of Debarment Decisions"
},
"match_score": "0–1. Accents, punctuation, word order and legal suffixes such as LTD, S.A. or GmbH are ignored. Each word is weighted by how rare it is on the list, so a shared common word such as CONSTRUCTION or CHINA counts little, and a match needs at least one rare word in common (small spelling differences allowed). Former names and trading names are checked too.",
"matched_on": {
"name": "the listed name",
"other_name": "a former, trading or 'also known as' name recorded in the list's notes"
},
"currently_ineligible": "on the current list and the ineligibility end date has not passed (or is permanent)",
"listed_since": "the date the World Bank added the entry to its list",
"sanction_scope_note": "limits written in the list, e.g. 'only for its business operations in the water sector'",
"data_freshness": {
"list_checked_at": "2026-09-25T10:33:14+00:00",
"list_changed_at": "2026-09-25T10:33:14+00:00",
"firms_on_list": 1249
}
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
About this endpoint
What it does
Returns reference definitions used by the other endpoints, including debarment statuses, match scoring, match source fields, current eligibility, listing dates, and sanction notes.
Response
Field
Type
Description
status
Object
Definitions for debarment status values.
status.debarred
String
Meaning of the debarred status.
status.cross_debarred
String
Meaning of the cross_debarred status.
match_score
String
How match scores are calculated and interpreted.
matched_on
Object
Fields that can produce a match.
matched_on.name
String
Meaning of a match against the listed name.
matched_on.other_name
String
Meaning of a match against a former, trading, or other recorded name.
currently_ineligible
String
Definition of current ineligibility.
listed_since
String
Definition of the listed_since field.
sanction_scope_note
String
Definition of the sanction_scope_note field.
data_freshness
Object
Current list freshness information.
▣ COMMON ERRORS
Errors any endpoint can return
400bad_request
Required parameter missing or malformed body.
401unauthorized
API key missing, revoked, or not authorized for this service.
429rate_limited
Your plan's per-second rate exceeded. Retry with exponential backoff.
503upstream_busy
Backend temporarily unavailable. Try again in a few seconds.
Similar APIs
Closest matches in the catalog based on this service.