If you build govcon software, you can pull a FAR or DFARS clause by its number over an API and get structured JSON back. The Vaquill AI corpus carries 3,118 FAR sections (48 C.F.R. chapter 1), 1,705 DFARS sections (48 C.F.R. chapter 2), and 397 DFARS PGI documents across 47 Parts. The FAR and the DFARS refresh daily as part of the CFR. The PGI refreshes monthly, on a different track, because it is a different kind of document: guidance for contracting officers, not regulation that binds a contractor. Getting that last distinction wrong is a real compliance mistake, so most of this post is about it.
Reviewed and corrected on 12 October 2026. This is general information, not legal advice.
TL;DR
- Three layers, two corpora. FAR and DFARS live inside
corpusType: "CFR", filterable withsource=farandsource=dfars. The DFARS PGI lives incorpusType: "AGENCY_GUIDANCE"withsource=dfars_pgi. - The PGI is guidance, not regulation. It tells a contracting officer how to carry out what the DFARS requires. Treating a PGI paragraph as a binding contractor obligation is the mistake this post exists to prevent.
- FAR and DFARS are a chapter split of Title 48 data you already have, not extra sections. Turning on the filter doesn't add coverage, it narrows it.
- You can cite a clause directly.
FAR 52.219-14andDFARS 252.225-7001both resolve, because clause numbers are unique across Title 48 by design. - Clause flow-down works as resolve-once, batch-forever. Resolve each prime clause to a stable
actId, store it, then refresh up to 50 at a time with one call. - Two cadences, two meanings. A DFARS text change reaches you within a day. A PGI change reaches you within a month. When the PGI moves and the DFARS doesn't, implementation practice changed and your obligation didn't.

A subcontract template tells your supplier to follow a paragraph from the DoD's procedures, guidance and information (PGI) as if it were a contract term. What is wrong with that?
Filed under our US primary law corpus series, which covers the corpus source by source.
Title 48 is a chapter split of the corpus in CFR API: 222,311 Federal Regulation Sections, Refreshed Daily, so start there. Then Federal Register API: Querying Over 196,000 Final and Proposed Rules for acquisition rules before codification, and Export Controls API: BIS Advisory Opinions and DDTC Commodity Jurisdiction Determinations for the export side.
A short history: one rulebook in 1984, a rewrite in 2026
The FAR is younger than people think. Its own foreword says it "became effective on April 1, 1984," issued under the joint authorities of the Administrator of General Services, the Secretary of Defense and the NASA Administrator, under the broad policy guidelines of the Administrator of the Office of Federal Procurement Policy. It calls itself the primary regulation for use by all executive agencies in their acquisition of supplies and services with appropriated funds.
Four decades on, the rulebook is being rewritten. On April 15, 2025, President Trump signed Executive Order 14275, "Restoring Common Sense to Federal Procurement," which says the FAR "has swelled to more than 2,000 pages" and tells the FAR Council to amend it so it contains only provisions required by statute or otherwise necessary. The order was published in the Federal Register on April 18, 2025 (the text).
The rewrite ran in two phases. The Council's own notice says phase one, in fiscal year 2025, issued "model class deviations to replace each part in the FAR until such time as formal rulemaking occurred." Phase two is formal rulemaking. The first proposed rule appeared on June 23, 2026, with comments due July 23, and says the FAR Council is issuing twelve proposed rules that collectively will streamline the FAR in its entirety. Four of them came out that day, and four more followed on September 18, 2026, with comments open until October 19. As of 12 October 2026 the Federal Register shows those eight as proposed rules, and none of them as a final rule. The Council's overview of the change is on the Revolutionary FAR Overhaul page at acquisition.gov.
Two details from that first notice matter if you track clauses. It says "None of the plain language edits are intended to change existing FAR requirements," but the parts are also being reorganized into phases of acquisition. And the notice describes moving forms lists out of the regulation and onto a website, "shifting the FAR's role from a static, self-contained text to a dynamic system that points to live, authoritative resources."
So if you stored a clause number a year ago, check it again before the final rules land. Proposals are drafts, so don't treat any of this as law until a final rule says so.
The three layers, precisely
| Layer | Where it lives | Filter | Size | Binds a contractor? | Refresh |
|---|---|---|---|---|---|
| FAR, 48 C.F.R. ch. 1 | corpusType: "CFR" | source: "far" | 3,118 sections | Yes, when incorporated into the contract | Daily |
| DFARS, 48 C.F.R. ch. 2 | corpusType: "CFR" | source: "dfars" | 1,705 sections | Yes, when incorporated into the contract | Daily |
| DFARS PGI | corpusType: "AGENCY_GUIDANCE" | source: "dfars_pgi" | 397 docs, 47 Parts | No | Monthly |
The FAR and the DFARS are codified regulation. They sit in the Code of Federal Regulations, they went through notice and comment, and a clause becomes an obligation when it is incorporated into your contract.
The PGI is procedural guidance published by DoD for its own acquisition workforce. It cites as PGI 225.370. It tells a contracting officer how to do the thing the DFARS requires: which form to use, what to document, when to consult someone.
There is a useful signal in the split, too. When the PGI moves and the DFARS doesn't, what changed is how the government intends to administer an existing rule. Your obligation is the same. How your contracting officer will exercise it isn't.
FAR and DFARS are a chapter split, not extra data
This one is worth being blunt about because vendors inflate coverage this way.
Title 48 of the CFR is the Federal Acquisition Regulations System. Chapter 1 is the FAR. Chapter 2 is the DFARS. Both are already inside the 222,311 CFR sections the corpus carries. The source filter splits that existing Title 48 data by chapter. It doesn't add a single section.
So source=far is a convenience, not a coverage claim. What it buys you is a clean scope: search "limitation on subcontracting" across source: "far" and you are searching the FAR and nothing else, without knowing which part the answer sits in.
The numbering underneath is what makes clause lookup work at all. FAR clauses live in Parts 1 through 53. DFARS lives in Parts 201 through 253, plus Part 270. Every other Title 48 chapter, the agency-specific FAR supplements, gets its own disjoint block of part numbers (Commerce's chapter 13 starts at Part 1301, for instance).
Because the blocks don't overlap, a clause number is unique across the whole title. That has a practical payoff below.
A clause can bind you even when nobody wrote it in
Everything above says a clause binds a contractor "when incorporated into the contract." That's the normal case. There's an old exception every govcon lawyer knows by name.
In G. L. Christian and Associates v. United States, 312 F.2d 418 (Ct. Cl. 1963), the Court of Claims established what is now called the Christian doctrine. The Federal Circuit summed up the modern rule in a 2021 decision, JKB Solutions and Services v. United States: "The Christian doctrine permits courts to insert a clause into a government contract by operation of law if applicable federal administrative regulations require it." To insert it, the court must find that the clause "is mandatory" and "expresses a significant or deeply ingrained strand of public procurement policy" (opinion, November 17, 2021).
JKB shows how much turns on the exact clause list. The Court of Federal Claims had found a termination for convenience clause in the contract through its incorporation of FAR 52.212-4, and the government had raised the Christian doctrine only in a footnote. The Federal Circuit vacated that ruling, because 52.212-4 "on its face, applies only to commercial item contracts," and sent the case back so the Claims Court could consider whether the Christian doctrine supplies the clause. The takeaway for a clause-tracking tool is simple. A list of clauses actually written into the contract is a starting point. Which clause applies depends on the exact clause and contract type, and the regulation can supply more.
Two ways to reach a clause
Cite it directly
curl -G https://api.vaquill.ai/api/v1/us/statutes/resolve \
-H "Authorization: Bearer vq_key_..." \
--data-urlencode "cite=FAR 52.219-14"
Two credits, on a bearer key issued as the authentication guide describes. You get a resolved verdict plus the full section metadata when it resolves, including the official source URL for the government publisher's own copy of the text.
DFARS 252.225-7001 resolves the same way. So does the plain CFR form, 48 C.F.R. 252.225-7001, since all three name the same record.
Here is the payoff from the disjoint numbering. Contract documents mislabel clause prefixes constantly. A clause list that says "DFARS 52.219-14" is naming a FAR clause under the wrong prefix, which is the kind of typo that breaks a strict parser. Because the number itself is unambiguous across Title 48, that mislabeled cite resolves to the same section the correct label would have. You don't need to sanitize your input's prefixes.
Or search within the scope
curl -X POST https://api.vaquill.ai/api/v1/us/statutes/search \
-H "Authorization: Bearer vq_key_..." \
-H "Content-Type: application/json" \
-d '{
"query": "domestic end product specialty metals",
"corpusType": "CFR",
"source": "dfars",
"matchType": "phrase",
"limit": 20
}'
Four credits per search. matchType: "phrase" is the right setting for acquisition terms of art, where the defined phrase is the whole point and a semantic neighbor is noise.
Send an unrecognized source and you get a 422 rather than an empty result. Agency FAR supplements other than the DFARS aren't broken out by source; scope those with titleNumber: 48 plus the part you care about.
Clause flow-down, end to end
The real govcon workload isn't one lookup. It is: a prime contract arrives with a clause list, and you need current text for every clause, plus a way to know when any of them changes.
Step 1, resolve once. Run each clause number through /us/statutes/resolve and keep the actId. Do this once per clause, not once per contract. A clause number is stable across every contract that cites it.
Step 2, never build ids by hand. For the CFR an actId looks derivable, and that is the trap, which the section id reference spells out. CFR_T17_P240_S240_10b5_1 is 17 C.F.R. 240.10b5-1 with the dots and hyphens flattened, so the pattern seems safe. Elsewhere in the corpus the container segments aren't recoverable from a citation, and an assembled id 404s in a way that reads exactly like missing coverage.
The API tells you which failure you hit. Misses come back with notFoundDetail set to assembled_id, with real candidates in didYouMean, or not_in_corpus when nothing matching exists. That diagnosis is free and never charged.
Step 3, batch the refresh. POST /us/statutes/sections takes up to 50 actIds in one call.
curl -X POST https://api.vaquill.ai/api/v1/us/statutes/sections \
-H "Authorization: Bearer vq_key_..." \
-H "Content-Type: application/json" \
-d '{"actIds": ["CFR_T48_...", "CFR_T48_...", "CFR_T48_..."]}'
Cost is 2 credits per section returned, and identifiers with no match are refunded, so a batch of 50 that resolves 47 costs 94 credits rather than 100. Batching is a round-trip and latency win, not a discount. The response preserves the order of actIds and reports misses separately, so you can zip results back onto the ids that produced them.
That endpoint returns metadata and source links. For full text, call GET /us/statutes/section/{actId}/body on the ones you are actually rendering.
Step 4, watch them. Create a watch on the CFR board for each clause with POST /watches, scoped to that clause's actId. Change events land as refreshes observe them, and the watch's diff endpoint returns before and after text. There is no charge for GET /boards, which lists the watchable sources and stamps each with cadence and lastRetrievedAt, so you can see what you would be subscribing to before you subscribe. Law Change Alerts API: Webhooks for When a Statute or Rule Actually Moves covers the delivery side.
For a per-section history you can read on demand instead of subscribing, GET /us/statutes/section/{actId}/changes costs 1 credit and returns every change our refreshes captured for that section.
What practitioners say
The people who live with these rules describe the same pain you are trying to automate. In May 2023, a Hacker News commenter named mNovak wrote that their company deals with government contracts, and that "they are actually semi-structured (via FAR and DFAR), but would be extremely useful to have tools to help us understand and track our contracts at a glance, and create compliant sub-contracts (for instance identify flow-down clauses)" (Hacker News, May 2023).
Another commenter, WaitWaitWha, was explaining how audits of DFARS clause 252.204-7012 work when they wrote: "The rules and regs are so convoluted and out of order, there are entire industries (plural) just for getting to understand the requirements." (Hacker News, August 2024). That's one practitioner's opinion, and it sits next to the executive order's own complaint about page count. The same comment adds that the clause is aimed at systems that store, process or transmit controlled unclassified information, and that deciding which connected systems are in scope is where the arguments start.
Why the two cadences matter to a contractor
| Question | Corpus | Cadence | What "stale" costs you |
|---|---|---|---|
| Did a clause's text change? | CFR (far, dfars) | Daily | A subcontract flowed down with superseded clause text |
| Did DoD change how it administers a rule? | AGENCY_GUIDANCE (dfars_pgi) | Monthly | A proposal written to last quarter's expected documentation |
| Is a rule change coming? | FEDERAL_REGISTER | See GET /boards | Surprise at award, not at proposal |
A daily CFR refresh means a DFARS clause edit reaches you inside a day. That is the cadence a flow-down pipeline needs, because the cost of shipping a subcontract with stale clause text is a real one you can't claw back after signature.
A monthly PGI refresh fits guidance, because guidance moves less and its consequences are slower. But the difference has a practical edge: during a month when the PGI has changed and you have not pulled it, your read of how a contracting officer will behave is stale while your read of your obligations is current. For proposal teams that is the more common failure, and it is invisible unless you track the two separately.
The third row matters too. Acquisition rule changes appear in the Federal Register before they are codified into Title 48. The Federal Register corpus holds more than 196,000 agency rule documents from 1994 to the present, filterable by documentType: "final" or "proposed", by agency, and by a publishedFrom/publishedTo window. A proposed DFARS rule is a signal about next year's clause list. The CFR text alone will never show it to you. The CFR API guide works through that reconciliation in more detail.
The limit worth stating up front
A plain lookup returns the current text, and past text has limits. Each citation maps to one live text. Add asOf=YYYY-MM-DD to the section body call and the response says which engine answered. On a current FAR or DFARS section we tested this on 12 October 2026 (FAR 1.101 with a June 2021 date) and it returned engine: observed_change, source: live and isBounded: true, which is a reconstruction bounded by when change capture began, not a printed edition. GPO's printed annual editions of Title 48 are held separately as CFR_ANNUAL records, where a date resolves to the edition in force and a date outside the editions we hold comes back unavailable rather than answered from a neighbouring edition, as the CFR annual editions guide explains. The PGI is guidance, so it gets the same kind of reconstruction from observed changes (observed_change) with isBounded.
For govcon that limit lands somewhere specific, so be clear about it internally. A contract incorporates clauses as they read on a date, and that date is often not today. A plain lookup answers "what does FAR 52.219-14 say now," which is the right question for a new flow-down and the wrong one for a dispute about a 2021 award. For the dispute, ask with asOf, read asOf.engine and isBounded on the answer, and keep the official edition that the contract incorporated as the record.
Alongside it:
amendmentHistoryandlastAmendedYearon a section, from the publisher's own credit line.GET /section/{actId}/changes, every change our refreshes observed, withdetectedAt.yearFrom/yearToon search, a currency filter on the last amendment year the publisher credits.- Before and after diffs on a watched board, from the point you started watching.
Two cautions. detectedAt is when we saw a change, an upper bound on the effective date, never the effective date itself. And an empty change list means "no captured change", not "never amended", because capture began later than the corpus did and events are swept at 5 years. Every response carries a coverage field saying so, and your UI should render it rather than presenting an empty list as "unchanged".
Where PGI sits among the other agency guidance
AGENCY_GUIDANCE holds more than 96,000 documents across 53 named sources, each filterable with source=. The PGI is one of them. A few neighbors a govcon or export-control team will recognize:
| Source | source code | Size |
|---|---|---|
| DFARS Procurement Guidance and Information | dfars_pgi | 397 docs, 47 Parts |
| DDTC Commodity Jurisdiction Determinations | ddtc_commodity_jurisdiction | 5,903, 2010 to present |
| BIS Advisory Opinions (EAR) | bis_advisory_opinion | 39, 2003 to 2023 |
| DOJ Justice Manual | doj_justice_manual | 1,555 sections |
| DOJ and FTC Merger Guidelines | merger_guidelines | 1 document |
The DDTC set is the interesting one for a defense contractor: 5,903 commodity jurisdiction determinations, taken from the list DDTC publishes, which is the record of whether a given item fell under the USML or the EAR. Export Controls API: BIS Advisory Opinions and DDTC Commodity Jurisdiction Determinations goes through both sources in detail, and Federal Agency Guidance API: 53 Sub-Regulatory Sources in One Endpoint lists the rest.
Notice the honest windows in that table. BIS advisory opinions run 2003 to 2023. Those bounds are published rather than smoothed over, because a corpus that quietly stops at a date and doesn't say so is worse than one that admits it.
FAQ
Is the FAR part of the CFR?
Yes. The FAR is chapter 1 of Title 48 of the Code of Federal Regulations, and the DFARS is chapter 2 of the same title. In this API both are inside corpusType: "CFR" and are reached with source: "far" or source: "dfars", or by scoping to titleNumber: 48 and a part.
What is the difference between the DFARS and the DFARS PGI?
The DFARS is codified regulation that can bind a contractor once a clause is incorporated into a contract. The PGI is internal procedural guidance for DoD's acquisition workforce, telling a contracting officer how to carry out what the DFARS requires. The API keeps them in separate corpora, CFR and AGENCY_GUIDANCE, so the two can't be silently mixed in one result set.
Can I look up a FAR clause by its number?
Yes. GET /us/statutes/resolve?cite=FAR 52.219-14 costs 2 credits and returns a resolution verdict plus the section metadata and the official source URL. Clause numbers are unique across Title 48 because each chapter is assigned a disjoint block of part numbers, so a mislabeled prefix still resolves to the right section.
How many FAR and DFARS sections are there?
3,118 FAR sections and 1,705 DFARS sections. Both counts sit inside the 222,311 CFR sections the corpus already carries, because the source filter splits existing Title 48 data by chapter rather than adding anything new.
How current is the FAR and DFARS data?
The CFR corpus, which holds both, refreshes daily. The DFARS PGI refreshes monthly on the agency-guidance track. GET /boards reports the cadence and last retrieval time for every watchable board, and GET /us/statutes/coverage reports per-corpus counts with a measuredAt timestamp. Where a publisher states what a section is current through, that rides on the section as currentThrough. Both endpoints are free.
How do I resolve a whole clause list from a prime contract?
Resolve each clause number once with /us/statutes/resolve and store the returned actId. Then fetch up to 50 at a time with POST /us/statutes/sections at 2 credits per section returned, with misses refunded and reported in notFound. Do not build ids from citation strings; assembled ids 404 in a way that looks like missing coverage.
Can I get the FAR as it read on the date my contract was awarded?
Often, with checks. Pass asOf= your award date on the section body call. For a current FAR, DFARS or PGI section the earlier text is rebuilt from the before-side of the first change observed after your date, and isBounded is set when the answer rests on when change capture began rather than on the law, so treat that as a reconstruction. For the text as GPO printed it, use the annual Title 48 editions held as CFR_ANNUAL records, where a date outside the editions we hold comes back unavailable. For a dispute over an older award, confirm against the edition the contract incorporated. Beside it you have amendment history, the last amendment year the publisher credits, and the change events captured since our refreshes started watching that section.
Are the agency FAR supplements covered?
The FAR and the DFARS are the two chapters broken out by source. Other Title 48 chapters are reached with titleNumber: 48 plus the relevant part, since each supplement occupies its own disjoint block of part numbers. Check GET /us/statutes/divisions to walk the title's structure before assuming a part range.
Can I get alerted when a DFARS clause changes?
Yes. Create a watch with POST /watches scoped to the clause's actId, and take before and after text from the watch's own diff endpoint. For history that already exists, GET /us/statutes/section/{actId}/changes costs 1 credit and returns every change our refreshes captured, newest first.
Where to start
Read the free endpoints before you spend a credit. GET /us/statutes/coverage, described in the coverage reference, and GET /boards together tell you every corpus count, the publisher currency notes, and every board's last retrieval time. That is the evaluation a primary-law dependency deserves.
We build Vaquill AI, the API in this post, and it is also published as an MCP server if your workflow lives inside an agent rather than a backend. Scope worth knowing up front: this is US primary law, so protest decisions and board of contract appeals opinions come from a separate source. The collection layer is published at open-us-law.
New legal AI guides, weekly.
Further Reading
US Tax Treaty API: Bilateral Treaties and Technical Explanations as Data
Read postExecutive Orders API: Presidential Documents, Refreshed Daily
Read postCFR API: 222,311 Federal Regulation Sections, Refreshed Daily
Read postCFR Annual Editions API: Point-in-Time Regulations with corpusType=CFR_ANNUAL
Read postInsurance Compliance Across 50 States: Where the Rules Actually Live
Read postState Insurance Bulletins API: 49 Insurance Departments in One Query
Read post
Co-Founder & CTO
Priyansh leads engineering and AI at Vaquill AI: the pipelines that pull statutes, regulations and court rules from every US jurisdiction's official publisher, and the REST API, MCP server and open dataset that serve them.