From a SAM.gov Opportunity to the Federal Register in One Query
Say you're reading an opportunity on SAM.gov and you want to know what else that agency is up to. What is the context behind the opportunity? What themes will resonate with the agency? One useful place to look is the Federal Register.
The Federal Register is where agencies publish their rules, seek public comment, and give notice of the forms they collect. A rule that tells importers to file something electronically is also a rule that says somebody has to build the system that receives it.
A common pain point is getting one government system to relate to another. An opportunity identifies its agency by codes like 7014 (U.S. Customs and Border Protection) or 070 (Department of Homeland Security). The Federal Register, meanwhile, keeps its own list of agencies under its own names, and it has never heard of 7014. So the usual workflow is to read the agency name off the opportunity, go find the Federal Register's spelling of it, and search there.
When we added the Federal Register to Tango, we decided to let you search with those codes, so the connection is easier to make. Here's how it works.
The code is already on the opportunity
Every opportunity in Tango carries its office, agency, and department. Here is a CBP notice that was active this week:
curl -G "https://tango.dev/api/opportunities/" \
-H "X-API-KEY: ${TANGO_API_KEY}" \
--data-urlencode "agency=7014" \
--data-urlencode "active=true" \
--data-urlencode "shape=title,solicitation_number,office(*)"
{
"title": "Network Equipment Buy II",
"solicitation_number": "70B04C26F00001164",
"office": {
"office_code": "ITCD",
"office_name": "INFORMATION TECHNOLOGY CONTRACTING DIVISION",
"agency_code": "7014",
"agency_name": "US CUSTOMS AND BORDER PROTECTION",
"department_code": "070",
"department_name": "HOMELAND SECURITY, DEPARTMENT OF"
}
}
agency_code is the FPDS agency code and department_code is the CGAC code. Either one works as-is on the Federal Register endpoint.
Ask the Federal Register the same question
curl -G "https://tango.dev/api/federal_register/" \
-H "X-API-KEY: ${TANGO_API_KEY}" \
--data-urlencode "agency=7014"
That returns over 4,000 documents, everything CBP has published since 1994. That's neat, but also not very useful. The newest results are information-collection notices and accreditations of commercial laboratories, and that's typical: of the 161 documents CBP published in the last twelve months, 139 are notices.
So the agency code gets you in the door, and it needs a second filter next to it.
Narrow to the rules
Let's limit the results by publication date and only for Rules and Proposed Rules:
curl -G "https://tango.dev/api/federal_register/" \
-H "X-API-KEY: ${TANGO_API_KEY}" \
--data-urlencode "agency=7014" \
--data-urlencode "type=Rule|Proposed Rule" \
--data-urlencode "publication_date_after=2025-10-06"
That's a much better result: about 20 documents. Seven are import restrictions on archaeological material, which is routine CBP work and not really a useful signal. Some of the rest, however, have something interesting in common:
| Published | Type | Title |
|---|---|---|
| 2026-08-26 | Rule | Automated Commercial Environment (ACE) Electronic Export Manifest for Rail Cargo |
| 2026-02-13 | Proposed Rule | Electronic Bond Transmission |
| 2026-02-10 | Proposed Rule | Electronic Export Manifest for Vessel Cargo |
| 2026-01-02 | Rule | Electronic Refunds |
| 2025-11-21 | Rule | Enhanced Air Cargo Advance Screening (ACAS) |
| 2025-11-17 | Rule | Automation of CBP Form I-418 for Vessels |
Notice that all of them are about automation and digitization. None of them is a solicitation, and none of them tells you who will do the work. But if you're looking at a notice from CBP's Information Technology Contracting Division, this is the context you'd want: the agency is steadily putting more of its trade processing through software, by regulation, on a published schedule.
See what is still open for comment
curl -G "https://tango.dev/api/federal_register/" \
-H "X-API-KEY: ${TANGO_API_KEY}" \
--data-urlencode "agency=7014" \
--data-urlencode "comments_open=true" \
--data-urlencode "ordering=comments_close_on"
Two rulemakings. One withdraws an airport designation. The other is "Heightened Import Disclosures for Supply Chain Visibility," open until December 1, 2026, in which CBP says it is considering new requirements for tracing the supply chains of imported goods and "integrating innovative technical solutions" to do it.
Check the action field on that second one. The Federal Register files it as a Proposed Rule, but its action is "Advance notice of proposed rulemaking," which is the stage before a proposal even exists. That's earlier than most market research starts, and it's public.
One notable data limitation: comments_open works from the Federal Register's structured comment deadline, and routine notices often don't carry one. A CBP information-collection notice published on October 5 says in its text that comments are due by November 4, but its comments_close_on is empty, so it isn't in this result. What the filter really means is "open rulemakings," which is a smaller set than everything you could comment on.
Go up a level, or stack more filters
A department includes its components, so the department code on the same opportunity widens the search and nothing else about the query changes. agency=070 returns 43,236 documents across all of DHS.
The rest of the Federal Register filters stack on top:
cfr_title=48keeps only documents that touch the acquisition regulations. For a department, that is its FAR supplement:agency=3600&cfr_title=48returns 87 documents on the VA Acquisition Regulation.significant=truekeeps the rules designated significant under Executive Order 12866, which are the ones with the largest effects.searchis ranked full-text search.agency=7014withsearch="Automated Commercial Environment"returns 158 documents going back two decades.
To stop running the query by hand, save it as an alert. Tango will send a webhook when a matching document is published:
{
"name": "CBP rulemakings",
"query_type": "federal_register",
"filters": {
"agency": "7014",
"type": "Rule|Proposed Rule"
},
"frequency": "daily"
}
Post that to /api/webhooks/alerts/ and 💥 you are watching for any regulatory changes coming out of the agency. The webhooks guide (opens in new tab) has the details.
If you use the MCP server
If you're using an AI assistant, you don't have to write any of these queries. With the Tango MCP server connected to Claude or ChatGPT, paste the solicitation number and ask:
Here's a SAM.gov notice: 70B04C26F00001164. What has that agency published in the Federal Register in the last year that isn't routine, and is anything still open for comment?
The agent reads the agency code off the opportunity and runs the same searches. The Federal Register search takes the code in awarding_org, and it accepts the same document type, CFR title, and open-comment filters shown above.
You can do other things, too, like:
What proposed changes to the federal acquisition regulations are open for public comment right now? List them soonest deadline first, with a one-line "why a contractor would care" for each.
If you tell the agent to filter past the notices, and tell it to report each document's action alongside its type, you'll get better results. We put some of those steps and the caveats below into a Claude skill. Email hello@makegov.com and we'll send it to you.
What to know before you build on it
If you want to create your own skill, or you're calling the API directly, here are some suggestions and caveats:
- Use the code, not the name. Names and abbreviations work (
agency=CBP,agency=HHS), but they are matched loosely. A code means one organization. Whatever you pass,meta.resolved_filtersin the response tells you which organization it matched. - Not every agency is linked yet. The filter works through a mapping from the Federal Register's agencies to federal organizations, and some agencies aren't in it yet. When that happens you get an empty list and a line in
meta.warningstelling you why. The Federal Register's own slug still works in the meantime:fr_agency=u-s-customs-and-border-protection. - Search doesn't reach the body.
searchcovers a document's title, abstract, and action. Thefull_textis returned, on every plan, but a term that appears only in the body won't match. Pairsearchwith the agency filter to narrow by subject. - A document can list more than one agency. Most CBP documents list both CBP and DHS. A document matches when any agency it lists falls inside the organization you asked for.
Get started
The Federal Register API reference (opens in new tab) covers every filter, and the data dictionary (opens in new tab) covers every field. All of it is available on every plan, including the free one.
We are still making improvements to the Federal Register endpoint, so if you run into issues, let us know. You can even ask your AI assistant to file feedback directly with us and we'll look into it.
And if you're not using Tango yet, sign up at tango.dev (opens in new tab) and try it against an agency you're tracking.
Data in this post was pulled live from the Tango API on October 6, 2026. Counts will have moved by the time you read it.
Ready to get started with Tango?
If you're working with federal procurement data, Tango provides a unified API that combines federal procurement data sets and improves on them with a developer-friendly approach. Skip the complexity of scraping and joining multiple government APIs yourself.