eCFR API: Get regulation sections
Finds current eCFR regulation sections for a topic or an exact CFR citation. Returns each section's text, last amendment date and the date the title is current through.
Unofficial. Not affiliated with or endorsed by eCFR.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Query, required
query Topic or CFR section citation, for example OSHA ladder rules, FMLA eligibility, or 29 CFR 1910.23.
OSHA ladder rules
- Max Sections optional
max_sections Maximum sections to return, for example 3.
3 (default)
Whole number from 1 to 10.
Input as JSON
{ "query": "OSHA ladder rules"}Output
{ "sections": [ { "link": "https://www.ecfr.gov/current/title-29/section-1926.1053" , "text": "(a) General. The following requirements apply to all ladders as indicated, including job-made ladders.\n\n(1) Ladders shall be capable of supporting the following loads without failure:\n\n(i) Each self-supporting portable ladder: At least four times the maximum intended load, except that each extra-hea…", "agency": "Occupational Safety and Health Administration, Department of Labor", "citation": "29 CFR 1926.1053", "part_name": "Part 1926 - Safety and Health Regulations for Construction", "truncated": false, "title_name": "Title 29 - Labor", "last_amended": "2016-09-01", "section_heading": "Ladders.", "up_to_date_as_of": "2026-10-21" }, { "link": "https://www.ecfr.gov/current/title-29/section-1915.72" , "text": "The provisions of this section shall apply to ship repairing, shipbuilding and shipbreaking.\n\n(a) General requirements. (1) The use of ladders with broken or missing rungs or steps, broken or split side rails, or other faulty or defective construction is prohibited. When ladders with such defects ar…", "agency": "Occupational Safety and Health Administration, Department of Labor", "citation": "29 CFR 1915.72", "part_name": "Part 1915 - Occupational Safety and Health Standards for Shipyard Employment", "truncated": false, "title_name": "Title 29 - Labor", "last_amended": "2016-09-01", "section_heading": "Ladders.", "up_to_date_as_of": "2026-10-21" }, { "link": "https://www.ecfr.gov/current/title-29/section-1910.23" , "text": "(a) Application. The employer must ensure that each ladder used meets the requirements of this section. This section covers all ladders, except when the ladder is:\n\n(1) Used in emergency operations such as firefighting, rescue, and tactical law enforcement operations, or training for these operation…", "agency": "Occupational Safety and Health Administration, Department of Labor", "citation": "29 CFR 1910.23", "part_name": "Part 1910 - Occupational Safety and Health Standards", "truncated": false, "title_name": "Title 29 - Labor", "last_amended": "2019-12-17", "section_heading": "Ladders.", "up_to_date_as_of": "2026-10-21" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"ecfr.gov/get_regulation","input":{"query":"OSHA ladder rules"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "ecfr.gov/get_regulation" , "input": { "query": "OSHA ladder rules" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "ecfr.gov/get_regulation" , "input": { "query": "OSHA ladder rules" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run ecfr.gov/get_regulation# with {"query":"OSHA ladder rules"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "description": "Topic or CFR section citation, for example OSHA ladder rules, FMLA eligibility, or 29 CFR 1910.23." }, "max_sections": { "type": "integer", "default": 3, "maximum": 10, "minimum": 1, "description": "Maximum sections to return, for example 3." } }}Output schema
{ "type": "object", "required": [ "sections" ], "properties": { "sections": { "type": "array", "items": { "type": "object", "properties": { "link": { "type": "string" }, "text": { "type": "string" }, "agency": { "type": [ "string", "null" ] }, "citation": { "type": "string" }, "part_name": { "type": "string" }, "truncated": { "type": "boolean" }, "title_name": { "type": "string" }, "last_amended": { "type": [ "string", "null" ] }, "section_heading": { "type": "string" }, "up_to_date_as_of": { "type": "string" } } }, "description": "Matching regulation sections, best first." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
ecfr.gov/get_regulation- Returns
- citation, title, part, agency, heading, text, last amended, up-to-date date, link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method ecfr.gov/get_regulation with the inputs above.
Ask your agent
- Find the current text of 29 CFR 1910.23 on ladder safety requirements
- What does the eCFR say about FMLA eligibility for employees, with the last amendment date?
- Look up current federal regulations on OSHA walking-working surfaces and guardrail rules
- Show me the latest CFR section covering overtime exemptions under the Fair Labor Standards Act, up to 4 sections
- Pull up 12 CFR regulations about mortgage disclosure requirements and their up-to-date date from the eCFR
See more
Find Federal Register rules, proposed rules, notices, and presidential documents by topic, agency, publication dates, and comment status. Significant means designated significant by the source; documents without that designation show no.
federalregister.gov/search_rulesGets the latest available revised text of a section of a UK Act from legislation.gov.uk, or the Act's section contents when no section is given. The outstanding-changes flag describes the Act and may include changes outside the selected section.
legislation.gov.uk/get_law_sectionFinds SEC EDGAR company filings that mention an exact phrase, optionally limited to a company, a filing category and a filing date range, ranked by search relevance; one entry per filing.
sec.gov/search_filingsSearches FRED economic series by topic, ordered by popularity, and returns each series' coverage dates, units, frequency and last update. FRED does not publish a popularity score on these pages, so it is null.
fred.stlouisfed.org/search_indicatorsSearch UK legislation by topic or title, with optional type and year filters. Closest title matches appear first; broader text matches fill remaining places.
legislation.gov.uk/search_legislationLists CNN headlines in the order shown on a chosen news section page (top stories, US, world, politics, business, health, entertainment or science), with each story's summary, publication time, authors and image when available. Promotions and video-only items are left out.
cnn.com/list_headlinesFinds current IRS forms, instructions and publications by number or purpose. Each result has its revision and posting dates, PDF links and a short explanation.
irs.gov/get_tax_formFinds FDA food recall enforcement reports by product, brand, or allergen, newest first. Reports are updated weekly and recall statuses may lag.
open.fda.gov/search_food_recalls