CAGE Code Lookup: How to Find Any Company's CAGE Code Free
Lockheed Martin has one name and 31 CAGE codes. I counted them in September 2026's contract records.
That's why a CAGE code lookup trips people up. You can find any registered company's CAGE code for free in about a minute, using SAM.gov's entity search or the Defense Logistics Agency's CAGE search. The catch is that a CAGE code belongs to a location, not a company, so the right code depends on which site holds the contract.
Here's how to look one up, in bulk too, and what to do when nothing comes back.
How do you do a CAGE code lookup?
You do a CAGE code lookup in one of two free official tools. SAM.gov's entity search finds any registered entity by name, UEI or CAGE code and shows both IDs together. The Defense Logistics Agency's CAGE search at cage.dla.mil is the system of record for the code itself. Neither charges, and SAM.gov needs no account to search public records.
Any site that wants money for this is selling you free data. Skip it.
The four routes line up like this:
| Route | Best for | Cost | Account needed | Bulk? |
|---|---|---|---|---|
| SAM.gov entity search | Checking one company, seeing CAGE and UEI together | Free | No, for public records | No |
| DLA CAGE search (cage.dla.mil) | The official CAGE record and its status | Free | No | No |
| SAM.gov Entity Management API | Code lookups from your own software | Free key | Yes | Up to 100 codes per query, 10 records per page |
| USAspending award download | CAGE codes on past contract awards | Free | No | Yes, by recipient |
SAM.gov is my first stop, because it also answers the next question: is this company actually registered right now?
What is a CAGE code, and how is it different from a UEI?
A CAGE code is a five-character ID the Defense Logistics Agency assigns to identify an entity at one specific location. A UEI is a 12-character ID that SAM.gov assigns to the entity as a whole. The UEI replaced the DUNS number on April 4, 2022. A company usually has one UEI per registration, but it can hold many CAGE codes, one for each site.
The wording comes straight from the rules. FAR 52.204-16 defines a CAGE code as an identifier that marks "a commercial or government entity by unique location."
Most lookup mistakes come from that one word, location.
The UEI switch was GSA's doing. Its April 2022 announcement moved SAM.gov off DUNS, and GSA's fact sheet noted CAGE codes were not affected.
Side by side, the two IDs look like this:
| CAGE code | UEI | |
|---|---|---|
| Assigned by | Defense Logistics Agency (CAGE program) | SAM.gov (GSA) |
| Length | 5 characters | 12 characters |
| Identifies | One location of an entity | The entity |
| How you get it | Automatically, during SAM.gov registration | Automatically, at registration or "UEI only" request |
| Expires | 5 years after its last update | Doesn't expire, but the registration needs annual renewal |
| Cost | Free | Free |
U.S. CAGE codes start and end with a number, like 16331 or 622B7.
Codes for companies outside the U.S. are called NCAGE codes. They usually carry a letter at one end, and they come from the company's national codification bureau or NATO's support agency instead of the DLA.
Why does one company have dozens of CAGE codes?
One company can have dozens of CAGE codes because each code marks a physical location that does business with the government. Big contractors register each plant or division separately. In federal contract records modified in September 2026, I found 1,335 actions under "Lockheed Martin Corporation" spread across 31 CAGE codes and 31 UEIs. Ask for "Lockheed's CAGE code" and there is no single answer.
The busiest Lockheed sites in that sample:
| CAGE code | Location | Contract actions (Sept 2026) |
|---|---|---|
| 16331 | Orlando | 263 |
| 81755 | Fort Worth | 226 |
| 622B7 | Lexington | 144 |
| 64059 | Grand Prairie | 98 |
| 03538 | Liverpool | 78 |
| 03640 | Owego | 74 |
The same split shows up in USAspending. A recipient search for "lockheed martin" on October 19, 2026 returned 85 recipient records with 65 different UEIs.
Those counts came from FPDS-sourced contract data, the same records covered in where contract award data lives now.
When a prime asks for your CAGE code, give the one for the site doing the work. And when you vet a company, match its CAGE code to the address on the contract.
How do you do a CAGE code lookup on the DLA site?
Go to cage.dla.mil, open "CAGE Search & Inquiry," accept the government terms-of-use banner, and search by CAGE code, company name, or location. The record shows the code's status, the legal name, and the address the code covers. It's the official source, run by the Defense Logistics Agency's CAGE program, and it replaced the old BINCS search, which the DLA retired on February 25, 2016.
It's the place to check a code's status, which matters more than people think. An inactive or expired CAGE code on a teaming partner is a red flag.
A code search is exact. Name searches are looser, so add a city or state to cut the list down.
The DLA site also handles NCAGE records for foreign companies, so it's the better first stop when the company isn't American.
When I checked in October 2026, every page sat behind that terms banner, so expect a click before any search. It's mildly annoying the tenth time, but it's a government system, so that's the price.
The site also posts maintenance windows. One is set for Sunday, October 25, 2026, from 8:30 to 12:30 Eastern. If you're vetting a partner that weekend, use SAM.gov instead.
If a record looks wrong, the DLA Customer Interaction Center takes calls at 1-877-352-2255.
How do you find a CAGE code in SAM.gov?
To find a CAGE code in SAM.gov, open SAM.gov's search, choose "Entity Information," and type the company name, UEI, or CAGE code. Each result shows the legal name, UEI, CAGE code, physical address, and whether the registration is active. Public records need no login. It's the fastest single CAGE code lookup because it confirms the company is registered at the same time.
Check the registration status on every result. An expired SAM.gov registration can still show a CAGE code, but that company needs to renew before it can win a new award.
Search by UEI when you have it. Names collide constantly, and as the Lockheed numbers show, one name can hide dozens of entities.
The record also lists the entity's NAICS codes and business types. That's handy when a partner claims small-business status and you want to see what they actually registered as.
Looking up your own company? Sign in and open your entity registration. The CAGE code is on the record once the DLA has validated it.
Why can't you find a company's CAGE code?
If a CAGE code lookup returns nothing, the company has usually opted out of SAM.gov's public search, only requested a UEI without a full registration, or is located outside the U.S. and holds an NCAGE code instead. Opted-out records are still in SAM.gov. Federal users and people with a role for that entity can see them, and they appear in data extracts.
I check five causes, in this order:
1. A public display opt-out. Entities can hide their record from public search when they register, though SBA's HUBZone and 8(a) programs require public display. 2. A UEI with no registration. SAM.gov lets subawardees request just a UEI with a name and address, and some never finish the full registration that triggers a CAGE code. 3. A foreign company. Non-U.S. entities get an NCAGE code from their national codification bureau or NATO's support agency, and NATO policy makes that free too. 4. An expired code. Since August 2016, CAGE codes expire five years after their last update, and an annual SAM.gov renewal resets the clock. 5. A name mismatch. Search the legal name from the contract, not the brand. "Lockheed" and "Lockheed Martin Corporation" return different result sets.
If none of those fit, ask the company for its UEI and search that. It's faster than trying name variations.
How do you run a CAGE code lookup in bulk?
For a bulk CAGE code lookup, use SAM.gov's Entity Management API or a USAspending award download. The SAM.gov API accepts up to 100 CAGE codes in one query and returns each entity's UEI, name, and address, 10 records per page. The catch is the quota: 10 requests a day on a personal key without a SAM.gov role, or 1,000 with one. USAspending needs no key at all.
The limits are on GSA's Entity Management API page. The cageCode parameter takes one 5-character value or up to 100, joined with ~ inside square brackets.
GET https://api.sam.gov/entity-information/v3/entities?api_key=YOUR_KEY&cageCode=[16331~81755~622B7]
Read the paging rule before you plan around it. The API returns 10 records per page, so 10 requests a day gets you about 100 entities. A SAM.gov role lifts that to roughly 10,000 records a day.
Honestly, 10 a day is stingy. For a one-off vendor list, I'd skip the key entirely and pull a USAspending file.
The no-key route is USAspending. Its prime award download files include a cage_code column, which its data dictionary describes as "used as a key to SAM."
Filter the download by recipient UEI and the CAGE code comes along with every award row:
POST https://api.usaspending.gov/api/v2/download/awards/
{
"filters": {
"prime_award_types": ["A", "B", "C", "D"],
"date_type": "action_date",
"date_range": {"start_date": "2026-09-01", "end_date": "2026-09-30"},
"recipient_search_text": ["FYHNA5WC8XD7"]
},
"columns": ["award_id_piid", "recipient_name", "recipient_uei", "cage_code", "recipient_city_name"],
"file_format": "csv"
}
When I ran that on October 19, 2026, the file was ready in 19 seconds with 203 award rows. 118 of them carried CAGE code 04236 for Littleton. The other 85 had the field blank, so treat USAspending as a good source, not a complete one.
If you work with this data in code already, the USAspending side is what Edgrapi's /v1/awards endpoint wraps. The SAM.gov API key guide and the SAM.gov rate limits post cover getting past the 10-a-day limit.
What should a CAGE code lookup tell you before you team with a company?
A CAGE code lookup before teaming should confirm that the code is active, that its address matches the site doing the work, that it maps to the UEI the company gave you, and that the UEI has no active exclusion in SAM.gov. If another firm owns the company, also get the owner's CAGE code, since FAR 52.204-17 requires offerors to disclose it.
My two-minute checklist for a new partner:
- The code is active in the DLA CAGE search, and the SAM.gov registration is active too. - The CAGE address is the plant or office named in the proposal, not headquarters. - The CAGE code and the UEI point to the same entity record. - A search of SAM.gov's exclusions list for that UEI comes back clean. - If there's a parent company, you have its legal name and CAGE code.
If you only do one, do the exclusions check. It costs nothing, and a debarred partner can sink an award you'd otherwise win.
The ownership rule is in FAR 52.204-17, which separates the "immediate owner" from the "highest-level owner."
When do you need your own CAGE code?
You need a CAGE code before any federal contract award above the micro-purchase threshold, $15,000 since October 1, 2025, whenever the solicitation requires SAM.gov registration. FAR 4.1802 makes offerors give the contracting officer the CAGE code for their location, plus their owner's CAGE code if another company controls them. U.S. companies get one automatically and free during SAM.gov registration.
The rule is in FAR subpart 4.18. The $15,000 threshold change is documented in GSA's SmartPay bulletin.
Getting one is part of SAM.gov registration, not a separate application. The order goes like this:
1. Create a Login.gov account and sign in to SAM.gov. 2. Choose "Register Entity" and enter your legal name and physical address exactly as they appear on your IRS records. 3. Finish the registration. SAM.gov assigns your UEI along the way. 4. SAM.gov sends your record to the DLA, which validates your address and assigns a CAGE code, or updates the one you already have. 5. Check the record. Once the CAGE code appears, your registration can go active.
Address problems are the usual hold-up. If the DLA can't validate your physical address, it will contact you, and the registration waits until that's fixed.
Subcontractors get asked for one too. Primes commonly verify a sub's CAGE code during vetting, before any paperwork moves.
Keep the code alive by renewing SAM.gov every year. The registration lapses after 12 months, and the CAGE code expires five years after its last update.
Don't pay anyone to "get" you a CAGE code, either. The DLA and SAM.gov assign it at no cost.
Look up the location, not the company
A CAGE code lookup takes a minute in SAM.gov or cage.dla.mil, and it's free either way. The skill is asking for the right site. Search by UEI, match the CAGE code to the address on the contract, and use the SAM.gov API or a USAspending download when you have a list. Run your first lookup on your own company, then on your top three teaming partners.
Frequently asked questions
How do I find a company's CAGE code for free?
Search the company in SAM.gov's "Entity Information" search or in the DLA's CAGE search at cage.dla.mil. Both are free official tools, and SAM.gov needs no account for public records. Search by UEI if you have it, because company names collide. If the company holds several CAGE codes, pick the one whose address matches the site doing the work.
What is the difference between a CAGE code and a UEI?
A UEI is a 12-character ID that SAM.gov assigns to a whole entity, and it replaced the DUNS number on April 4, 2022. A CAGE code is a five-character ID that the Defense Logistics Agency assigns to one location of that entity. One company can hold a single UEI per registration but many CAGE codes, one for each site.
Can a company have more than one CAGE code?
Yes. A CAGE code identifies a location, so a company with several plants or divisions can hold many. In September 2026 federal contract records, Lockheed Martin Corporation's 1,335 contract actions used 31 different CAGE codes, from Orlando (16331) to Fort Worth (81755). When you vet a company, match the CAGE code to the address on the contract.
Why is a company's CAGE code not showing up in SAM.gov?
The company has likely opted out of SAM.gov's public search, registered for a UEI only, or is foreign and holds an NCAGE code. Opted-out records still exist; federal users and people with a role for the entity can see them. Try the DLA CAGE search, search by UEI, or ask the company directly for its UEI and CAGE code.
Does a CAGE code expire?
Yes. Since August 2016, CAGE codes carry an expiration date five years after their last update. If the code is tied to a SAM.gov registration, each annual SAM.gov renewal resets that date, so an active registrant's code stays current. A code that has lapsed shows as inactive in the DLA CAGE search and should be updated before bidding.
How do I look up CAGE codes in bulk?
Use SAM.gov's Entity Management API, which accepts up to 100 CAGE codes per request, or a USAspending award download, which includes a cage_code column on contract awards. The API needs a free key, returns 10 records per page, and allows 10 requests a day without a SAM.gov role. USAspending needs no key, but some award rows leave the CAGE field blank.