Municode Records Scraper
Pricing
from $11.99 / 1,000 result items
Municode Records Scraper
Scrapes municipal meeting minutes, agendas, resolutions, and ordinances from Municode by state, municipality, and document type. Returns each document as a flat row with source URL.
Pricing
from $11.99 / 1,000 result items
Rating
3.0
(1)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Municode Records Scraper
Scrape meeting minutes, agendas, resolutions and ordinances from the US municipalities that publish them on Municode. Every record comes with the municipality, document type, meeting date, and a direct link to the source. No login or API key. Export to CSV, JSON, Excel, or XML.
Municode hosts records for about 4,300 US municipalities, and there is no bulk download or official API for researchers. This Actor reads the public document indexes directly, filtered by state, municipality, document type, and year range, and returns each match in one fixed schema. Read the coverage section below before you plan a run: meeting documents are a separate Municode product, and not every municipality on Municode buys it.
| Who uses it | What they scrape Municode for |
|---|---|
| Local government reporters | Track what a city council discussed or voted on last month |
| Civic tech developers | Build a searchable archive of local decisions for a region |
| Policy researchers | Compare how different municipalities handle a specific issue |
| Legal professionals | Pull ordinances and resolutions for a client's compliance review |
| Data journalists | Collect meeting records across a state for a trend analysis |
What it does
This Actor collects municipal meeting minutes, agendas, resolutions, and ordinances from Municode by state, municipality, or document type, and returns each one as a flat row.
Coverage note: the Actor reads the meeting archive that Municode calls MuniDocs. Not every city on Municode publishes one, and a city's codified Code of Ordinances is a separate Municode product that this Actor does not index. When a municipality has no meeting archive, the run says so in its log and status message and lists the municipalities in that state that do have one.
- ๐ Document types: minutes, agendas, resolutions, ordinances, or all of them in one run.
- ๐ Geographic filters: target one state, one municipality, or a city name across the whole US.
- ๐ Year range: limit results to documents from a start year, an end year, or both.
- ๐ Direct links: every record includes the source URL on Municode for verification.
- โ๏ธ Flexible input: use state abbreviation, municipality name, or exact municipality ID.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What is covered
This Actor reads Municode, which is a vendor, not a national registry. A municipality appears here only if it is a Municode client, and it has meeting documents only if it also bought the MuniDocs product. Everyone else publishes only a code of ordinances.
We measured this on 2026-09-03 across all 51 state listings, sampling 25 municipalities spread through each state's list: 4,327 municipalities on Municode, and roughly 413 of them publish meeting documents, about 10%.
Coverage by state, for the states with the most municipalities:
| State | Municipalities on Municode | Publishing meeting documents |
|---|---|---|
| Florida | 416 | ~67 (16%) |
| Georgia | 404 | ~32 (8%) |
| Texas | 337 | ~40 (12%) |
| Michigan | 317 | ~13 (4%) |
| Illinois | 254 | ~10 (4%) |
| California | 237 | ~28 (12%) |
| Wisconsin | 192 | ~0 |
| North Carolina | 176 | ~21 (12%) |
The highest rates are in smaller states: Arizona 36%, Idaho 28%, Oregon 24%, Ohio and Wyoming 20%.
Two things follow from that, and they are worth knowing before you run this:
- If you need every municipality in a state, Municode is not the source. It is a vendor's client list, not a census.
- If you need meeting documents specifically, expect roughly one municipality in ten to have them, and check your state in the table above first.
If a run comes back with fewer documents than you expected, that is almost always coverage, not a failure. The log names every municipality that is on Municode with the code of ordinances only, and closes with a coverage line: how many of the municipalities it checked publish meeting documents. When a single municipality you asked for has no meeting archive, the run also lists the municipalities in that state that do.
What you can do with Municode data
๐ฐ Local news monitoring.
A reporter sets the state to Texas and document type to minutes, then reviews the latest meeting records for every city in the state to find story leads.
๐๏ธ Ordinance research.
A legal analyst filters by municipality name and document type ordinances to collect all short-term rental rules passed since 2020 for a client report.
๐ Cross-city policy study.
A policy researcher scrapes agendas from 50 municipalities in one state and compares which topics appear most often in the last two years.
๐๏ธ Civic archive building.
A civic tech developer runs the Actor weekly with document type all and stores the results in a public database of local government actions.
Why choose this scraper
| What you get | |
|---|---|
| No official API | Municode does not offer a public bulk API, so this Actor reads the indexes directly |
| One fixed schema | Every document returns the same flat fields, ready for CSV or a database |
| Scale to a million | Collect up to 1,000,000 documents per run, enough for a whole state |
| Verifiable sources | Each row includes the original Municode URL for citation or audit |
How it compares
No other Store actor targets Municode the same way, so the honest comparison is with the alternatives teams actually weigh.
| Municode Records Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Municode changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor from state abbreviations, municipality names, municipality IDs, and document types, alone or together, and filters run as each document is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10,"stateAbbr": "tx","municipalityName": "Abilene","documentType": "minutes"}
A larger pull:
{"maxItems": 200,"stateAbbr": "tx","municipalityName": "Abilene","documentType": "minutes"}
Pricing
Pay-per-result: $0.01599 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $1.60 |
| 1,000 results | $15.99 |
| 10,000 results | $159.90 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Municode Records Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Municode through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/municipal-meeting-minutes-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your filters. A municipalityName that is too specific or a startYear after the latest available document will return nothing. Try broadening the state or removing the year range.
Why does the run stop before maxItems?
The Actor stops when it has read all matching documents on Municode. If your filters are narrow, the total available may be less than maxItems.
How do I find the municipality ID?
You can usually find it in the Municode URL for the municipality's page. If you do not know it, use municipalityName or city instead.
Why are some documents missing from my results?
Municode may not have digitized every historical document. The Actor only returns what is publicly listed on the site.
Can I scrape a municipality that is not on Municode?
No. This Actor only works with municipalities that publish their records on Municode. Check the site first to confirm coverage.
FAQ
| Question | Answer |
|---|---|
| What is Municode? | Municode is a platform operated by CivicPlus that hosts municipal codes, meeting minutes, agendas, resolutions, and ordinances for thousands of US local governments. |
| Do I need an API key or login? | No. The Actor reads the public document indexes on Municode directly, so no registration or authentication is required. |
| Can I scrape all states at once? | Yes. Omit the state abbreviation field and the Actor will process every state that Municode covers, subject to the maxItems limit. |
| What document types can I collect? | You can choose minutes, agendas, resolutions, ordinances, or all. The default is minutes. |
| How do I filter by a specific city? | Use the municipalityName field for a partial, case-insensitive match, or the municipalityId field for an exact Municode ID. The city field also filters by city name. |
| Can I limit results to a date range? | Yes. Set startYear and endYear to include only documents from that period. Both are optional. |
| What does each result row contain? | Each row includes the municipality name, state, document type, meeting date, document title, and the direct URL to the source on Municode, along with other metadata. |
| Is there a limit on how many documents I can scrape? | You can set maxItems up to 1,000,000 documents per run. The default is 10. |
| What output formats are supported? | The Actor exports to CSV, JSON, Excel, and XML through the Apify platform. |
| Can I schedule this Actor to run regularly? | Yes. Use Apify's scheduler to run it daily, weekly, or monthly and collect new meeting records automatically. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by CivicPlus, LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
