Skip to content

By UEI

Vendor-risk screening lookup: pass a UEI SAM and find out whether that entity is on the current SAM exclusions list. This is a current-state list, not a history: it is refreshed as a full replace of what SAM publishes today, so an exclusion that has already been terminated is absent entirely rather than returned as expired. A 404 means "not on the list now", not "never excluded".

Response semantics

  • 200: entity is on the exclusions list. Body returns the most recent exclusion record under an exclusion key (dates, location, agency, exclusion type, classification, ~37 fields total), a top-level additional_exclusion_records count (further records keyed to the same UEI, e.g. a debarment by a second agency; 0 for most entities, fetch the full set via /exclusions/search?uei_sam=), a top-level _sources array and, on Pro keys, the two enrichment blocks documented below.
  • 404: the UEI has no UEI-keyed exclusion. This is the expected answer for the vast majority of legitimate vendors, but it is not a full "clean" verdict: most exclusions are individuals with no UEI, so a 404 does not rule out a name-based debarment. See the coverage caveat below and pair this with a name search before treating a vendor as clear.

Example

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://govconapi.com/api/v1/exclusions/N2EDPB1SMN55"

Coverage caveat. Roughly 73% of SAM exclusions are individuals or small entities without a UEI. A 404 from this endpoint means no UEI-keyed exclusion; it does not rule out a name-based debarment of a principal, officer, or related individual. For full vendor screening, pair this lookup with /api/v1/exclusions/search?entity_name=....

Compliance enrichment blocks (Pro)

When the caller has Pro and the lookup returns a 200, the response carries two top-level blocks summarizing federal money flow to this excluded UEI in the last 12 months. The compliance question goes from "are they debarred?" to "is anyone in the federal supply chain still paying them, directly or indirectly?" in a single call. Both blocks default to a 365-day lookback and always return the zero shape when there's no activity, so client code can read fields without per-call null checks.

recent_sub_payments block: FFATA subaward dollars received indirectly (clean primes paying the excluded entity as a sub):

  • lookback_days, total_received, subaward_count, distinct_primes.
  • most_recent_subaward_date, most_recent_subaward_amount, most_recent_paying_prime: {uei, name}: the smoking-gun row.
  • top_paying_primes: array of up to 5 {uei, name, total, subaward_count} objects.

recent_contract_actions block: FPDS prime contract obligations received directly (the excluded entity is still being awarded contracts by federal agencies):

  • lookback_days, total_obligated_recent, transaction_count, distinct_contracts, distinct_agencies.
  • most_recent_action_date, most_recent_action_amount, most_recent_awarding_agency, most_recent_piid: the smoking-gun row.
  • top_paying_agencies: array of up to 5 {name, value, transaction_count} objects.

Net obligation (total_obligated_recent) can be negative, agencies clawing back contract money from an excluded vendor reads as a "compliance is working" pattern; positive amounts on an active exclusion read as "compliance gap, escalate." Both block shapes are also documented under Pro enrichment fields (universal pattern) at the top of the Endpoints section.

Worked example (Pro response on an excluded UEI with the recency view)

UEI C1ZLDAS18FJ3 (ATI Government Solutions): on the exclusions list since 2025-10-21. In the last 365 days agencies issued 64 contract actions across 21 distinct contracts and 6 agencies, with a NET obligation of -$9.31M, meaning deobligations are exceeding new awards. That's the "compliance is working" pattern. recent_sub_payments is zero (no recent FFATA sub income to this UEI). For the broader 5-year activity view, see the parallel example on /vendor-risk/{uei}.

Response shape. The exclusion record is wrapped under an exclusion key; enrichment blocks are siblings at the top level, per the multi-block detail convention. Free / Developer responses omit the two enrichment blocks; Pro responses include them with the zero-shape when no activity matches.

{
  "exclusion": {
    "entity_name": "...",
    "...": "37 exclusion fields total (dates, address, agency, classification, etc.)"
  },
  "additional_exclusion_records": 0,
  "recent_sub_payments": {
    "lookback_days": 365,
    "total_received": 0.0,
    "subaward_count": 0,
    "distinct_primes": 0,
    "most_recent_subaward_date": null,
    "most_recent_subaward_amount": null,
    "most_recent_paying_prime": null,
    "top_paying_primes": []
  },
  "recent_contract_actions": {
    "lookback_days": 365,
    "total_obligated_recent": -9312076.02,
    "transaction_count": 64,
    "distinct_contracts": 21,
    "distinct_agencies": 6,
    "most_recent_action_date": "2026-06-09",
    "most_recent_action_amount": 85000.0,
    "most_recent_awarding_agency": "Department of Energy",
    "most_recent_piid": "89303023CMA000093",
    "top_paying_agencies": [
      {"name": "Office of the Assistant Secretary for Administration and Management",
       "value": 5872530.47, "transaction_count": 6},
      {"name": "Office of the Chief Financial Officer",
       "value": 2258980.85, "transaction_count": 8},
      "...up to 5 entries"
    ]
  },
  "_sources": ["sam_exclusions", "usaspending_fpds"]
}

If you only need the screening yes/no plus the recent-payment views, this endpoint is sufficient. If you also want address clusters, name variants, coordinated-wave membership, and the longer 5-year exposure picture, call /api/v1/vendor-risk/{uei} instead, that response includes the subaward_exposure + contract_exposure blocks (1825-day window) plus the seven risk signals. Live response verified 2026-06-01.

A REST API and MCP server for U.S. federal procurement data.

Get a free key, emailed instantly, or follow the quickstart.

Found something wrong, missing or confusing on this page?

Press Ctrl + Enter to send a note. Highlight text first and it travels with your note.