The CAGE code lookup, in detail.

The five-character DLA identifier behind every federal vendor location. What it is, how it's structured, who issues it, the foreign NCAGE counterpart, and why one company can have many of them. Written for procurement officers verifying vendor identity and for sub-tier vendors trying to understand their own SAM record.
/ 01 · FOUNDATION

What a CAGE code is, and what it isn't.

A CAGE code is the five-character identifier the Defense Logistics Agency assigns to a specific physical location of a U.S. entity that does business with the federal government. The authoritative definition lives at FAR 52.204-16(a): an identifier "assigned to entities located in the United States or its outlying areas by the Defense Logistics Agency (DLA)."

The single most useful clarification this page can make is what a CAGE code is not:

Not the legal entity ID
The UEI is. A company with five offices has one UEI and up to five CAGE codes. See UEI vs CAGE explained for the broader identifier landscape.
Not a DUNS replacement
DUNS retired from the federal stack on April 4, 2022, replaced by the UEI. CAGE was never a DUNS replacement and predates UEI by decades.
Not just for primes
Subcontractors get CAGE codes too. Government buyers (federal agencies and military units) also receive CAGE codes, a CAGE record may identify a Government buyer rather than a vendor.
/ 02 · SPECIFICATION

The format, with regex.

The format is consistent across DLA documentation and reproduced in widely-used reference materials. Per DLA CAGE Program convention:

Length
5 characters total. No more, no less.
Position 1
Digit (0-9) for domestic CAGE.
Positions 2, 3, 4
Alphanumeric. Letters I and O are excluded.
Position 5
Digit (0-9) for domestic CAGE.
Excluded letters
I and O are excluded across all positions to avoid visual confusion with digits 1 and 0. All ten digits (0-9) are valid; some third-party explainers incorrectly state digit 0 is excluded, that is wrong.
NCAGE differences
NCAGE codes for foreign entities have an alphabetic character in the first and/or fifth position, distinguishing them from domestic CAGE structurally.
Regex for vendor-master validation

If you are writing a validator that should accept any of (CAGE, NCAGE) and reject malformed input:

Domestic CAGE:  ^[0-9][A-HJ-NP-Z0-9]{3}[0-9]$
NCAGE:          ^([A-HJ-NP-Z][A-HJ-NP-Z0-9]{3}[0-9]
                |[0-9][A-HJ-NP-Z0-9]{3}[A-HJ-NP-Z]
                |[A-HJ-NP-Z][A-HJ-NP-Z0-9]{3}[A-HJ-NP-Z])$

If your validator is ^[A-Z0-9]{5}$ you will accept invalid codes (like sequences containing I or O) and may reject NCAGEs you assumed were domestic.

/ 03 · ELIGIBILITY

Who needs a CAGE code.

  • Anyone receiving a federal prime award. Any dollar amount. Issued automatically as part of SAM.gov entity registration.
  • Subcontractors at any tier when FAR 52.204-2 applies. Per FAR 52.204-16(d), every subcontractor performance location requiring access to classified information under DD Form 254 must have a unique CAGE.
  • Foreign vendors. Need an NCAGE first, then SAM. The procedural ordering matters: NCAGE is a SAM precondition for non-U.S. and non-Canadian entities.
  • Government activities. Federal agencies and military units also receive CAGE codes. This is a real edge case, a CAGE may identify a Government buyer, not a vendor.
/ 04 · LIFECYCLE

Assignment, renewal, revocation.

Assignment
Through SAM.gov entity registration. DLA validation queue typically returns a CAGE in a few business days; longer turnarounds happen, escalate via the DLA CAGE Program contact channels if waiting beyond 10 business days.
Renewal cycle
CAGE codes assigned or updated after late August 2016 carry a 5-year expiration tied to date of last update. Each annual SAM renewal effectively resets the clock since the CAGE record is touched as part of the renewal.
Pre-2016 codes
Legacy non-expiring; deactivate only when SAM lapses or DLA revokes.
Revocation triggers
SAM registration lapse beyond grace period; DLA discovery of fraudulent registration; voluntary entity dissolution or name change without a CAGE merge request; failure to respond to DLA correspondence at the address of record.
Status semantics
Inactive vs Expired vs Cancelled, three distinct statuses that contracting officers see in SAM, with different remediation paths. A cancelled CAGE cannot be reused; an expired CAGE may be renewed if the entity acts within DLA's grace window.
Note on primary sources
DLA's CAGE Program publishes the authoritative format and lifecycle spec at cage.dla.mil and in the DLA CAGE Code Article. The FAR clauses 52.204-16, 52.204-17, and 4.1803 are the regulatory anchors. Verbatim format quotes should be confirmed against the DLA primary source before publication; DLA endpoints can be intermittently unavailable.
/ 05 · PRACTICE

How to look up a CAGE code.

FAR 4.1803 prescribes the verification methodology for contracting officers. Two authoritative paths:

Method A, SAM.gov entity search
The FAR 4.1803-preferred path for SAM-registered entities. Visit sam.gov/entity-information and search by UEI, CAGE, or legal name. Returns name, address, status, expiration, and SAM registration progress.
Method B, DLA CAGE search
The FAR 4.1803-prescribed path for non-SAM entities (Government buyers, foreign NCAGEs, historical records). Visit cage.dla.mil. Note: DLA endpoints can be intermittently unreachable; FAR 4.1803 explicitly authorizes the SAM fallback when DLA is not available for SAM-registered entities.
Method C, FPDS / USAspending lookup
Contract-history-driven, useful when verifying a CAGE that appeared on a historical award. See our USAspending recipient lookup guide.

Operational tip for procurement officers: always confirm the CAGE matches the offeror's legal name and location address on the offer. FAR 52.204-16(c) requires the offer to use the CAGE for that exact name-address pair.

/ 06 · MULTI-LOCATION

Why one company has multiple CAGE codes.

The single biggest source of vendor-master confusion. CAGE codes identify physical performance locations, not legal entities. The DD Form 254 rule at FAR 52.204-16(d) is explicit: every subcontractor performance location requiring classified access must have a unique CAGE.

Multi-state contractor
Multiple manufacturing plants → multiple CAGEs, one UEI.
Acquired entity
Retains its legacy CAGE post-merger until DLA processes a consolidation request. The acquirer's UEI may temporarily map to several CAGEs that historically belonged to different companies.
HQ vs warehouse
Headquarters and warehouse may have separate CAGEs for invoicing and shipping splits, even when both belong to the same UEI.

Why this matters for diligence: a CAGE-only match is a location match, never an entity match. Anchor diligence to UEI. The risk of conflating CAGE with entity is screening one of a contractor's ten facilities and concluding the entire company is clean.

/ 07 · PITFALLS

Common mistakes.

  • Treating a CAGE match as an entity match. CAGE = location. UEI = entity. Anchor on UEI.
  • Validators that accept I or O, or reject NCAGE. See the regex in section 2.
  • Assuming pre-2016 codes expire automatically. They don't. Pre-Aug 2016 codes are non-expiring unless DLA revokes or SAM lapses.
  • Skipping NCAGE-before-SAM ordering for foreign vendors. Foreign entities must obtain NCAGE first; SAM registration will fail without it.
  • Relying solely on cage.dla.mil when SAM is the FAR-preferred path. For SAM-registered offerors, FAR 4.1803 prescribes SAM as the verification source. The DLA endpoint is for non-SAM lookups.

Where DiligenceDesk fits: the orchestrator resolves any input (legal name, UEI, or CAGE) against the SAM API, then anchors every downstream lookup to the resolved UEI. A CAGE input never silently becomes a single-location audit. See the methodology page and Step 1 of the diligence checklist for the legal-entity-confirmation step.

Resolve any CAGE to its UEI and run a full audit.

Free. Identity resolution + SAM.gov + Section 889 hardware + ITA sanctions + DOL enforcement + four more federal sources, in seconds.