GovCon API exposes two related-but-different tools for federal agency data. They sound similar, so this page explains exactly when to use each, where they overlap, and the two-step pattern that uses them together.
DOD in my data, what's the standard name?" The Federal Hierarchy answers "What's the structure under Department of Defense, and what's its CGAC code?" Crosswalk is observed name variants → canonical. Federal Hierarchy is SAM's authoritative org tree with structure and codes. They're complementary, not redundant.
Federal agencies have spellings, codes, abbreviations, and dotted-path representations that vary across data sources. The same office shows up in different SAM feeds as DEPT OF DEFENSE, DoD, Department of Defense, 9700, 097, or a multi-level path like DEPT OF DEFENSE.DEFENSE LOGISTICS AGENCY.DLA AVIATION.DLA AV RICHMOND. Most APIs surface one of these representations as a raw string and leave normalization to you.
GovCon API exposes two complementary tools so you don't have to build that normalization yourself.
| Agency Crosswalk | Federal Hierarchy | |
|---|---|---|
| Answers | "Is DOD the same as DEPT OF DEFENSE?" |
"What's the structure under DoD, and what's its CGAC?" |
| Source | Observed variants across our 5.5M+ opportunity corpus, joined with Federal Register canonical names and USAspending toptier codes. | SAM.gov's authoritative master Federal Hierarchy. |
| Records | ~2,000 variant mappings | 907 organizations |
| Endpoint | GET /api/agency-crosswalk |
GET /api/v1/federal-hierarchy/ + lookup by ID |
| Refresh | Weekly (rebuilt from current opportunity data) | Monthly (refreshed from SAM source) |
| Best for | Display/normalize agency names you've already seen | Hierarchy queries, structural lookups by code, getting alternative names |
| Tier | Free, no auth | Free tier (auth'd API key) |
You have a string in your data and need to know its standard form. Common situations:
agency: "DOD" and you want to display "Department of Defense" instead.Notice the federal_hierarchy sub-object. After January 2026, every crosswalk row that resolves to a SAM Federal Hierarchy entry (about 99.6%) includes the organization_id you can pass to the Federal Hierarchy endpoint for the full structure.
You're working with structure, not just names. Common situations:
The crosswalk and the hierarchy work best together. Start from a raw agency string, canonicalize through the crosswalk, then traverse through the hierarchy.
DOD or DEPT OF DEFENSE.DEFENSE LOGISTICS AGENCY.DLA AVIATION) and read the response.federal_hierarchy.organization_id from the crosswalk response.GET /api/v1/federal-hierarchy/{organization_id} to get the structured record, children, and ancestor chain.You now have the official short name, CGAC code, alternative spellings, and full position in the org tree, derived from a raw string you didn't know how to interpret.
usaspending_toptier_code (matches CGAC for most agencies). The hierarchy exposes cgac directly.Tango's /api/organizations/ exposes a similar Federal Hierarchy view at $25/mo (Tango Micro). HigherGov gates equivalent structural lookups inside their $500/yr Starter bundle. GovCon API exposes this on the free tier as foundational reference data, because the value of the API surface should be in the data layer above it (opportunities, awards, subawards, vendor risk).
federal_hierarchy: null.DEPARTMENT, AGENCY). SAM's underlying data implies finer types (offices, sub-commands, bureaus) but the public fh index only exposes the top two.opportunities.agency dotted paths isn't fully captured in the public hierarchy index.Both endpoints are documented in the API guide. The Agency Crosswalk is free with no auth. The Federal Hierarchy needs a free API key, available on the pricing page.