Fire extinguisher inspection, maintenance and hydrostatic test intervals by agent type
NFPA 10 sets four separate service obligations for a portable fire extinguisher (monthly visual inspection, annual maintenance, periodic internal examination, and hydrostatic pressure testing) and the interval for two of those four depends on which agent and shell the extinguisher is, in a way that is scattered across several sections and a table rather than stated as one list. A record here is one obligation for one extinguisher type/shell combination, with the interval and the NFPA 10 section it comes from. Answers 'how often does a CO2 extinguisher need hydrostatic testing', 'does a stainless steel dry chemical extinguisher get the same 12-year hydro interval as a standard one', 'how often does a wet chemical K-class extinguisher need internal examination', and 'my dry chemical extinguisher is nonrechargeable, when does it get replaced instead of retested'. The exceptions are where a facility manager gets this wrong: stainless steel dry chemical shells get the 5-year interval that pressurized-water and CO2 units get, not the 12-year interval every other dry chemical extinguisher gets, and nonrechargeable stored-pressure extinguishers skip hydrostatic testing entirely in favor of a hard 12-year removal-from-service date. Two authorities are carried side by side, because a US workplace is answerable to both and they are not word-for-word identical: NFPA 10, as restated for regulated facilities by the Minnesota Department of Health, and OSHA's own general-industry standard at 29 CFR 1910.157, whose Table L-1 sets hydrostatic intervals directly in regulation and names types the NFPA summary does not (foam, AFFF, Halon 1211 and 1301, dry powder, wetting agent). Where the two overlap they agree, and each row says which rulebook it answers to.
The data
| Extinguishing agent / type | Service obligation | Interval | Authority | Section | Shell material qualifier |
|---|---|---|---|---|---|
| Antifreeze type extinguishers | Internal examination | annually | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3.1.1.2 and Table 7.3.1.1.2 | |
| Aqueous Film Forming foam (AFFF) | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 | |
| Carbon dioxide | Hydrostatic test | every 5 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 8.3.1 and Table 8.3.1 | |
| Carbon dioxide | Internal examination | every 5 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3.1.1.2 and Table 7.3.1.1.2 | |
| Carbon dioxide | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 | |
| Cartridge operated water and/or antifreeze | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 | |
| Dry chemical | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 | stainless steel |
| Dry chemical, cartridge or cylinder operated | Hydrostatic test | 12 | OSHA 29 CFR 1910.157 | Table L-1 | mild steel shells |
| Dry chemical extinguishers | Hydrostatic test | every 12 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 8.3.1 and Table 8.3.1 | |
| Dry chemical extinguishers | Hydrostatic test | every 5 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 8.3.1 and Table 8.3.1 | stainless steel shells |
| Dry chemical extinguishers | Internal examination | Every 6 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3.1.2 | |
| Dry chemical extinguishers having non-refillable disposable containers | Internal examination | exempt from this requirement | OSHA 29 CFR 1910.157 | ||
| Dry chemical, stored pressure | Hydrostatic test | 12 | OSHA 29 CFR 1910.157 | Table L-1 | mild steel, brazed brass or aluminum shells |
| Dry powder, cartridge or cylinder operated | Hydrostatic test | 12 | OSHA 29 CFR 1910.157 | Table L-1 | mild steel shells |
| Foam | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 | stainless steel shell |
| Halon 1211 | Hydrostatic test | 12 | OSHA 29 CFR 1910.157 | Table L-1 | |
| Halon 1301 | Hydrostatic test | 12 | OSHA 29 CFR 1910.157 | Table L-1 | |
| Loaded stream | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 | |
| Nonrechargeable extinguishers | Internal examination | removed from service 12 years from the date of manufacture | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3.1.2.1.3 | |
| Nonrechargeable stored pressure extinguishers | Hydrostatic test | removed from service 12 years from the date of manufacture | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3.1.2.1.3 | |
| stored pressure dry chemical extinguishers that require a 12-year hydrostatic test | Internal examination | every 6 years | OSHA 29 CFR 1910.157 | ||
| Portable extinguishers | Monthly visual inspection | monthly | OSHA 29 CFR 1910.157 | ||
| Portable fire extinguishers | Annual maintenance | at least once a year | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3 | |
| Portable fire extinguishers | Monthly visual inspection | at least monthly at a minimum of 30-day intervals | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.2.1 | |
| portable fire extinguishers | Annual maintenance | annual maintenance check | OSHA 29 CFR 1910.157 | ||
| Pressurized water | Hydrostatic test | every 5 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 8.3.1 and Table 8.3.1 | |
| Soda acid | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 | stainless steel shell |
| Stored pressure fire extinguishers that require a 12-year hydrostatic test | Internal examination | Every 6 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3.1.2 | |
| Stored-pressure loaded-stream | Internal examination | annually | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3.1.1.2 and Table 7.3.1.1.2 | |
| Stored pressure water and/or antifreeze | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 | |
| Water mist | Hydrostatic test | every 5 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 8.3.1 and Table 8.3.1 | |
| Wet chemical (e.g. K-type) | Hydrostatic test | every 5 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 8.3.1 and Table 8.3.1 | |
| Wet chemical (e.g. K-type) | Internal examination | every 5 years | NFPA 10 (2010 ed.) | NFPA 10(10), Sec. 7.3.1.1.2 and Table 7.3.1.1.2 | |
| Wetting agent | Hydrostatic test | 5 | OSHA 29 CFR 1910.157 | Table L-1 |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 2 sources this dataset was assembled from.
- health.state.mn.ushttps://www.health.state.mn.us/facilities/regulation/engineering/docs/lscfireext.pdf
- ecfr.govhttps://www.ecfr.gov/current/title-29/subtitle-B/chapter-XVII/part-1910/subpart-L/section-1910.157
Machine-readable
- data.jsonThe whole dataset — every record with its source URL and source quote.
- Open Knowledge Format bundleOne JSON object per line — every record's frontmatter and quoted span exactly as it is held here, in one fetch.
- data.csvThe same records as one flat table, for a spreadsheet or a dataframe. The last four columns are the source URL, the quoted sentence it was read from, the date we last checked it, and which columns are our reading rather than the page's words.
- How this is made and checkedWhat "verified against source" does and does not mean.
From your own code
Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.
pip install refsource
refsource lookup fire-extinguisher-inspection-testing-intervals-by-type agent_type="Antifreeze type extinguishers"
npx -y refsource lookup fire-extinguisher-inspection-testing-intervals-by-type agent_type="Antifreeze type extinguishers"
Set your AI assistant up to use this
Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.
{
"mcpServers": {
"referencesource": {
"type": "http",
"url": "https://referencesource.org/mcp"
}
}
}Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project
Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:
When a question needs "Fire extinguisher inspection, maintenance and hydrostatic test intervals by agent type", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `fire-extinguisher-inspection-testing-intervals-by-type`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.What each tool does, and the servers built over single registers: Connect your AI assistant.