Regulations Get
Status:
stableCategory:regulationsAdded:2026-07-01Last reviewed:2026-07-01
Summary
Returns one item's complete text from the Code of Federal Regulations
corpus or the OSHA recordkeeping guidance corpus. Look up a regulation by
the numeric id from a search result or
directly by section number (?section=1904.5); guidance items are
fetched by id only. The response carries the full section text plus the
official source_url citation.
Endpoint
| Field | Value |
|---|---|
| Method | GET |
| Path | /api/regulations/get |
| Full URL | https://engine.tripod-health.com/api/regulations/get |
| Authentication | API key (required) |
| Request body | none |
| Response body | application/json |
| Idempotent | Yes |
| Rate-limited | Yes |
Authentication
Send a valid API key in the apikey header. See
authentication.md.
Request
Headers
| Header | Required | Description |
|---|---|---|
apikey | Yes | Consumer API key. |
X-Request-ID | No | Optional correlation ID, up to 128 characters. Echoed in the response body's request_id and the X-Request-ID response header. |
Path parameters
None.
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
id | int | One of id/section | — | Numeric ID from a search result. |
section | string | One of id/section | — | CFR section number, e.g. 1904.5. Paragraph references like 1904.7(b)(5) resolve to the containing section; a leading § and spaces are tolerated. Regulation lookup only. |
title | int | Sometimes | — | CFR title number, 1–50. Required when the requested section number exists in more than one CFR title — the 400 response lists the candidate titles. |
type | string | No | regulation | One of regulation, guidance. Guidance items are fetched by id only. |
Provide exactly one of id and section — neither, or both, is a 400.
Body
None.
Response
Success — 200 OK
The full_text below is truncated for readability; the API returns the
complete section text.
{
"type": "regulation",
"id": 102442,
"cfr_title": 29,
"part": "1904",
"subpart": "C",
"section": "1904.5",
"heading": "Determination of work-relatedness.",
"full_text": "(a) Basic requirement. You must consider an injury or illness to be work-related if an event or exposure in the work environment either caused or contributed to the resulting condition or significantly aggravated a pre-existing injury or illness. Work-relatedness is presumed for injuries and illnesses resulting from events or exposures occurring in the work environment, unless an exception in § 1904.5(b)(2) specifically applies.\n(b) Implementation. (1) What is the “work environment”? OSHA defines the work environment as “the establishment and other locations where one or more employees are working or are present as a condition of their employment. The work environment includes not only physical locations, but also the equipment or materials used by the employee during the course of his or her work.”\n(2) Are there situations where an injury or illness occurs in the work environment and is not considered work-related? [remainder of section text omitted from this example]",
"content_type": "regulation",
"source_url": "https://www.ecfr.gov/current/title-29/section-1904.5",
"effective_date": "2026-06-30",
"request_id": "d9a02f99-fb73-413e-be12-9da281fd4e0a",
"timestamp": "2026-07-02T00:42:48.555Z"
}
Response fields
| Field | Type | Always present | Description |
|---|---|---|---|
type | string | Yes | regulation or guidance, matching the requested ?type=. |
id | integer | Yes | Stable numeric ID for this item. Usable in later ?id= lookups. |
cfr_title | integer | Yes | CFR title number, 1–50. |
part | string | Yes | CFR part (e.g. "1904"). Treat as opaque text — some parts carry a letter suffix. |
subpart | string | null | Yes | Subpart letter (e.g. "C"), or null for items outside a subpart. |
section | string | null | Yes | Section number (e.g. "1904.5"), or an appendix label for appendix items. |
heading | string | Yes | Official section heading. |
full_text | string | Yes | The complete section text, with \n line breaks. Can run to many thousands of characters. |
content_type | string | Yes | regulation for section text, appendix for appendix material. |
source_url | string | Yes | Official citation URL for this section. Quote it alongside any displayed text. |
effective_date | string (ISO 8601 date) | Yes | Date of the CFR edition the text reflects. |
request_id | string | Yes | Correlation ID. Quote in support tickets. |
timestamp | string (ISO 8601 UTC) | Yes | Server time when the response was emitted. |
A guidance fetch (?type=guidance&id=...) returns the guidance shape
instead: type, id, source_type (faq | interpretation |
preamble), sections, identifier, subject, full_text,
issue_date, and source_url, plus request_id and timestamp.
The content is public-domain U.S. federal text served as an unofficial
compilation — the official text lives at the source_url. This endpoint
is a reference lookup, not legal advice.
Status codes
| Code | Meaning | When |
|---|---|---|
200 | OK | Item found. |
400 | ValidationError | Neither or both of id and section provided, a malformed id/section/title, a guidance fetch without id, or a section number that exists in more than one CFR title (add ?title=). |
401 | Unauthenticated | Missing or invalid API key. |
404 | NotFound | No item matches the requested id or section. |
429 | RateLimited | Per-consumer rate limit exceeded. |
500 | InternalError | Unexpected failure. Quote request_id in the ticket. |
Examples
curl — by section
curl -sS "https://engine.tripod-health.com/api/regulations/get?section=1904.5" \
-H "apikey: $ENGINE_API_KEY"
curl — by id
curl -sS "https://engine.tripod-health.com/api/regulations/get?id=102442" \
-H "apikey: $ENGINE_API_KEY"
curl — paragraph reference
Resolves to the containing section — 1904.7(b)(5) returns all of
1904.7.
curl -sS "https://engine.tripod-health.com/api/regulations/get?section=1904.7(b)(5)&title=29" \
-H "apikey: $ENGINE_API_KEY"
Python (requests)
# Uses the call() helper from quickstart.md.
item = call("GET", "/api/regulations/get?section=1904.5")
print(f"{item['section']} {item['heading']}")
print(f"Cite: {item['source_url']} (effective {item['effective_date']})")
Node.js (native fetch)
// Uses the call() helper from quickstart.md.
const item = await call("GET", "/api/regulations/get?section=1904.5");
console.log(`${item.section} ${item.heading}`);
console.log(`Cite: ${item.source_url} (effective ${item.effective_date})`);
TypeScript
interface RegulationItem {
type: "regulation";
id: number;
cfr_title: number;
part: string;
subpart: string | null;
section: string | null;
heading: string;
full_text: string;
content_type: "regulation" | "appendix";
source_url: string;
effective_date: string;
request_id: string;
timestamp: string;
}
const item = await call<RegulationItem>(
"GET",
"/api/regulations/get?section=1904.5",
);
Error scenarios
Ambiguous section number
Section 1904.7 exists in title 29 (OSHA recordkeeping) and title 48
(Federal Acquisition Regulations System), so the lookup needs ?title=.
Send:
curl -sS "https://engine.tripod-health.com/api/regulations/get?section=1904.7" \
-H "apikey: $ENGINE_API_KEY" \
-H "X-Request-ID: docs-regulations-get-ambiguous" \
-w "\nHTTP %{http_code}\n"
Receive (400):
{
"timestamp": "2026-07-01T17:32:10.812Z",
"error": "ValidationError",
"message": "Section '1904.7' exists in CFR titles 29, 48 -- scope the lookup with ?title=",
"request_id": "docs-regulations-get-ambiguous",
"field": "title"
}
Retry with ?section=1904.7&title=29.
Unknown section
Send:
curl -sS "https://engine.tripod-health.com/api/regulations/get?section=1904.99&title=29" \
-H "apikey: $ENGINE_API_KEY" \
-H "X-Request-ID: docs-regulations-get-unknown" \
-w "\nHTTP %{http_code}\n"
Receive (404):
{
"timestamp": "2026-07-01T17:32:10.812Z",
"error": "NotFound",
"message": "No regulation found for section '1904.99'",
"request_id": "docs-regulations-get-unknown"
}
Both id and section
Send:
curl -sS "https://engine.tripod-health.com/api/regulations/get?id=102442§ion=1904.5" \
-H "apikey: $ENGINE_API_KEY" \
-H "X-Request-ID: docs-regulations-get-both" \
-w "\nHTTP %{http_code}\n"
Receive (400):
{
"timestamp": "2026-07-01T17:32:10.812Z",
"error": "ValidationError",
"message": "Provide 'id' or 'section', not both",
"request_id": "docs-regulations-get-both",
"field": "id"
}
Intended use
- Pulling authoritative regulation text to display or quote, with
its
source_urlcitation andeffective_datealongside. - Following up a search hit. Take the
idfrom a/api/regulations/searchresult and fetch the complete text — including guidance items via?type=guidance. - Resolving a paragraph citation to its section. Pass
?section=1904.7(b)(5)and receive all of1904.7, which contains the cited paragraph.
Mistaken use
- Do not use this endpoint for discovery. Use
/api/regulations/search— ranked matches with snippets, across regulation text or guidance. - Do not fetch section-by-section to render a whole part. Use
/api/regulations/tree— one call returns the part's nested subpart/section outline with theidof each leaf. - Do not fetch guidance by section number. Guidance items are
fetched by
idonly; find theidwith a?type=guidancesearch (optionally filtered bysection=). - Do not treat the response as the official publication. It is an
unofficial compilation of public-domain federal text; the official
text lives at the
source_url. Nothing returned is legal advice.
Debugging
- Capture
request_id. Present in every response body and in theX-Request-IDresponse header. 400 ValidationErrorwithfield: "title". The section number exists in more than one CFR title; themessagelists the candidate titles. Add?title=and retry.404 NotFoundfor a section you are sure exists. Check the formatting — the section number belongs in?section=(1904.5), not split across?part=-style parameters. Paragraph markers are fine; a title prefix (29 CFR 1904.5) is not.400on a guidance fetch by section. Expected — guidance has no section-number lookup. Search with?type=guidanceto get theid.
Rate limits
See rate-limits.md for the current per-consumer limits.
Related
- regulations-search.md — ranked search to
find the
idor section number in the first place. - regulations-tree.md — browse one CFR part as a nested subpart/section outline.
- recordability-analyze.md — OSHA recordability analysis grounded in this regulation and guidance content.
- authentication.md, errors.md, rate-limits.md, conventions.md — cross-cutting contract rules.
Change history
| Date | Change |
|---|---|
| 2026-07-01 | Initial publication. |