JSON API · Datatype
Agitation
City demonstration-law documents (type: "agitation"): signage, sound, recording, permits, buffer zones, and police interaction across the municipal, county, state, and federal layers. Everything the datatype contains is on this page.
A record, end to end
One real published city record, abridged. Flip the tiers to see exactly what each file adds — every field below is documented on this page.
{
"schema": "abhortion.org/agitation.summary/v1",
"id": "agitation-us-ma-boston",
"type": "agitation",
"level": "city",
"jurisdiction": "Boston, Massachusetts",
"as_of_date": "2026-07-18",
"research_completed_date": "2026-07-18",
"headline": "Moderate rules; strong sidewalk speech rights",
"summary": "Peaceful sidewalk advocacy generally needs no permit, but Boston regulates amplification, noise, obstruction,…",
"machine_readable_summary": {
"overall_posture": "moderate",
"recording_consent_regime": "all_party",
"open_recording_in_public_lawful": true,
"right_to_record_police_recognized": "recognized",
"amplification_permit_required": "conditional",
"amplification_banned_areas": true,
"…": "+20 more fields"
},
"links": {
"html": "https://www.abhortion.org/agitation/boston.html",
"markdown": "https://www.abhortion.org/agitation/boston.md",
"summary_json": "https://www.abhortion.org/agitation/boston.json",
"full_json": "https://www.abhortion.org/agitation/boston-full.json",
"verbose_json": "https://www.abhortion.org/agitation/boston-verbose.json"
}
}{
"schema": "abhortion.org/agitation.full/v1",
"id": "agitation-us-ma-boston",
"type": "agitation",
"level": "city",
"jurisdiction": "Boston, Massachusetts",
"as_of_date": "2026-07-18",
"research_completed_date": "2026-07-18",
"headline": "Moderate rules; strong sidewalk speech rights",
"summary": "Peaceful sidewalk advocacy generally needs no permit, but Boston regulates amplification, noise, obstruction,…",
"machine_readable_summary": {
"overall_posture": "moderate",
"recording_consent_regime": "all_party",
"open_recording_in_public_lawful": true,
"…": "+23 more fields"
},
"links": {
"html": "https://www.abhortion.org/agitation/boston.html",
"markdown": "https://www.abhortion.org/agitation/boston.md",
"summary_json": "https://www.abhortion.org/agitation/boston.json",
"full_json": "https://www.abhortion.org/agitation/boston-full.json",
"verbose_json": "https://www.abhortion.org/agitation/boston-verbose.json"
},
"overview": {
"title": "Moderate rules; strong sidewalk speech rights",
"summary": "Peaceful sidewalk advocacy generally needs no permit, but Boston regulates amplification, noise…",
"description": "A person may generally carry signs, leaflet, speak, and record openly on a Boston public sidewa…",
"verification": "verified",
"confidence": "high",
"sources": [
{
"name": "American Legal Publishing",
"href": "https://codelibrary.amlegal.com/codes/boston/latest/boston_ma/0-0-0-11591"
}
]
},
"sections": {
"legal_layers": {
"which_law_governs": {
"title": "City and state law govern; no county ordinance layer",
"summary": "Boston ordinances and Massachusetts statutes govern city sidewalks; the live Boston code states…",
"description": "The relevant legal layers are Boston ordinances, Massachusetts statutes, and federal and state …",
"verification": "verified",
"…": "+2 more keys"
},
"county_law": [
{
"title": "No Suffolk County ordinances apply",
"county": "Suffolk County",
"summary": "The current Boston code states that no Suffolk County ordinances apply, leaving no county demon…",
"description": "There is no operative Suffolk County ordinance layer for a person demonstrating in Boston. Cons…",
"…": "+3 more keys"
}
],
"federal_baseline": {
"title": "First Circuit protects public police recording",
"summary": "Boston sidewalks and parks are traditional public forums, and the First Circuit recognizes a Fi…",
"description": "Speech on public sidewalks and parks receives especially strong First Amendment protection. Pol…",
"verification": "verified",
"…": "+2 more keys"
}
},
"…": "+8 more sections"
},
"penalties": [
{
"level": "civil infraction",
"offense": "Unreasonable noise / public-way loud amplification — Boston Municipal Code § 16-26.8",
"penalty": "First $50; second $100; third and later $200 within 12 months",
"verification": "verify_before_publication",
"sources": [
{
"name": "American Legal Publishing",
"href": "https://codelibrary.amlegal.com/codes/boston/latest/boston_ma/0-0-0-11600"
}
]
},
"… +5 more items"
],
"recent_changes": [
{
"date": "2022-03-09",
"event": "Boston Ordinance 2022 c. 2 enacted the current targeted-residential-picketing rule, codified at…",
"sources": [
{
"name": "American Legal Publishing",
"href": "https://codelibrary.amlegal.com/codes/boston/latest/boston_ma/0-0-0-13077"
}
]
},
"… +4 more items"
],
"pending_changes": [
{
"name": "S.1204 — An Act updating the Commonwealth's wiretap statutes",
"type": "state_legislation",
"status": "Reported favorably by the Judiciary and referred to Senate Ways and Means on 2025-10-09; still …",
"effect": "If enacted, the bill could amend Massachusetts wiretap law, which could affect recording rules …",
"sources": [
{
"name": "Massachusetts Legislature",
"href": "https://malegislature.gov/Bills/194/S1204"
}
]
}
],
"key_authorities": [
{
"name": "Boston Noise Ordinance",
"citation": "Boston Municipal Code §§ 16-26.1, 16-26.8, 16-26.13",
"type": "municipal_code",
"url": "https://codelibrary.amlegal.com/codes/boston/latest/boston_ma/0-0-0-11560",
"why": "Defines dB(A) and audible-distance standards, bars loud amplification in public places, and ide…"
},
"… +9 more items"
],
"research_notes": {
"overall_confidence": "medium",
"editor_notes": "This adjudicated survey is current through 2026-07-18. The Massachusetts 194th General Court re…",
"gaps": [
"No official City enactment record was opened to independently confirm whether amendments postda…",
"… +4 more items"
]
}
}{
"schema": "abhortion.org/agitation.verbose/v1",
"id": "agitation-us-ma-boston",
"type": "agitation",
"level": "city",
"jurisdiction": "Boston, Massachusetts",
"as_of_date": "2026-07-18",
"research_completed_date": "2026-07-18",
"headline": "Moderate rules; strong sidewalk speech rights",
"summary": "Peaceful sidewalk advocacy generally needs no permit, but Boston regulates amplification, noise, obstruction,…",
"machine_readable_summary": {
"overall_posture": "moderate",
"recording_consent_regime": "all_party",
"open_recording_in_public_lawful": true,
"…": "+23 more fields"
},
"links": {
"html": "https://www.abhortion.org/agitation/boston.html",
"markdown": "https://www.abhortion.org/agitation/boston.md",
"summary_json": "https://www.abhortion.org/agitation/boston.json",
"full_json": "https://www.abhortion.org/agitation/boston-full.json",
"verbose_json": "https://www.abhortion.org/agitation/boston-verbose.json"
},
"overview": {
"title": "Moderate rules; strong sidewalk speech rights",
"summary": "Peaceful sidewalk advocacy generally needs no permit, but Boston regulates amplification, noise…",
"description": "A person may generally carry signs, leaflet, speak, and record openly on a Boston public sidewa…",
"legal_analysis": "Boston Municipal Code chapter XVI supplies the principal local rules. Massachusetts statutes go…",
"quote": "It shall be unlawful ... to operate a loud amplification device ... in a public way or ... publ…",
"note": "The municipal-code platform identifies its version as 2026 S-2; verify later City enactments be…",
"verification": "verified",
"confidence": "high",
"…": "+1 more key"
},
"sections": {
"legal_layers": {
"which_law_governs": {
"title": "City and state law govern; no county ordinance layer",
"summary": "Boston ordinances and Massachusetts statutes govern city sidewalks; the live Boston code states…",
"description": "The relevant legal layers are Boston ordinances, Massachusetts statutes, and federal and state …",
"legal_analysis": "Boston acts under home-rule authority subject to state-law constraints. The live municipal code…",
"…": "+4 more keys"
},
"county_law": [
{
"title": "No Suffolk County ordinances apply",
"county": "Suffolk County",
"summary": "The current Boston code states that no Suffolk County ordinances apply, leaving no county demon…",
"description": "There is no operative Suffolk County ordinance layer for a person demonstrating in Boston. Cons…",
"…": "+6 more keys"
}
],
"federal_baseline": {
"title": "First Circuit protects public police recording",
"summary": "Boston sidewalks and parks are traditional public forums, and the First Circuit recognizes a Fi…",
"description": "Speech on public sidewalks and parks receives especially strong First Amendment protection. Pol…",
"legal_analysis": "Glik holds that peaceful filming of police in a public space is protected First Amendment activ…",
"…": "+5 more keys"
}
},
"…": "+8 more sections"
},
"penalties": [
{
"level": "civil infraction",
"offense": "Unreasonable noise / public-way loud amplification — Boston Municipal Code § 16-26.8",
"penalty": "First $50; second $100; third and later $200 within 12 months",
"verification": "verify_before_publication",
"citations": [
{
"name": "American Legal Publishing",
"href": "https://codelibrary.amlegal.com/codes/boston/latest/boston_ma/0-0-0-11600",
"citation": "Boston Municipal Code § 16-26.11",
"pinpoint": "§ 16-26.11",
"…": "+3 more keys"
}
]
},
"… +5 more items"
],
"recent_changes": [
{
"date": "2022-03-09",
"event": "Boston Ordinance 2022 c. 2 enacted the current targeted-residential-picketing rule, codified at…",
"citations": [
{
"name": "American Legal Publishing",
"href": "https://codelibrary.amlegal.com/codes/boston/latest/boston_ma/0-0-0-13077",
"citation": "Boston Municipal Code § 16-64",
"pinpoint": "historical note",
"…": "+3 more keys"
}
]
},
"… +4 more items"
],
"pending_changes": [
{
"name": "S.1204 — An Act updating the Commonwealth's wiretap statutes",
"type": "state_legislation",
"status": "Reported favorably by the Judiciary and referred to Senate Ways and Means on 2025-10-09; still …",
"effect": "If enacted, the bill could amend Massachusetts wiretap law, which could affect recording rules …",
"citations": [
{
"name": "Massachusetts Legislature",
"href": "https://malegislature.gov/Bills/194/S1204",
"citation": "Mass. S.1204 (194th General Court)",
"pinpoint": "bill history, 2025-10-09",
"…": "+3 more keys"
}
]
}
],
"key_authorities": [
{
"name": "Boston Noise Ordinance",
"citation": "Boston Municipal Code §§ 16-26.1, 16-26.8, 16-26.13",
"type": "municipal_code",
"url": "https://codelibrary.amlegal.com/codes/boston/latest/boston_ma/0-0-0-11560",
"why": "Defines dB(A) and audible-distance standards, bars loud amplification in public places, and ide…"
},
"… +9 more items"
],
"research_notes": {
"overall_confidence": "medium",
"editor_notes": "This adjudicated survey is current through 2026-07-18. The Massachusetts 194th General Court re…",
"gaps": [
"No official City enactment record was opened to independently confirm whether amendments postda…",
"… +4 more items"
]
}
}Lines in this colour are elisions made for this page, not part of the format.
Which file do I want?
| If you are… | Fetch |
|---|---|
| Building a map, a comparison table, or a filter over jurisdictions | <id>.json S |
| Rendering the written analysis — sections, penalties, timelines | <id>-full.json F |
| Quoting the law, or checking a claim against its source | <id>-verbose.json V |
The tiers are cumulative — moving up a tier never drops information. The full file contains every field the summary file has; the verbose file contains everything in the full file. The one transformation: each compact sources array is expanded in place into a richer citations array — the same links, plus verbatim quotes and formal citations. The S/F/V badges above each table mark which tiers carry those fields.
<id>.json— summary S: identity, headline/summary, the full machine-readable summary, and links.<id>-full.json— full F: all of the above plus the whole document body (overview, sections, penalties, changes, authorities) with compactsources— but without the heavy legal-analysis/quote/citation detail.<id>-verbose.json— verbose V: everything in the full file, withsourcesupgraded to fullcitationsand each finding gaininglegal_analysisand a verbatimquote.
Conventions
These hold across every file documented on this page.
| Minified | All JSON is emitted minified (single line). Pretty-print it locally if you need to read it. |
| Key-addressable | Content is reached by key, not by searching arrays — e.g. sections.methods.medication, sections.exceptions.life. The only fixed-enum array (exceptions) is published as an object keyed by exception_type. |
| Absent = not applicable | Empty values (null, "", [], {}) are omitted. A missing key means "not present / not applicable", never "we forgot". |
| Ordered lists stay arrays | penalties, recent_changes, pending_changes, and key_authorities are arrays — order is meaningful and they have no unique key. |
| Absolute cross-links | The links block on every record uses absolute https://www.abhortion.org URLs. |
Files
- Index:
https://www.abhortion.org/agitation.json - Per city:
/agitation/<slug>.json+-full.json+-verbose.json(e.g.minneapolis)
id, city, state, jurisdiction, population_rank, a posture object ({ code, label }), and links. Note the per-city documents do not repeat state/counties/population_rank — those live on the index item.{
"id": "agitation-us-ma-boston",
"city": "Boston",
"state": "MA",
"jurisdiction": "Boston, Massachusetts",
"population_rank": 25,
"posture": {
"code": "moderate",
"label": "Moderate regulation"
},
"links": {
"html": "https://www.abhortion.org/agitation/boston.html",
"markdown": "https://www.abhortion.org/agitation/boston.md",
"json": "https://www.abhortion.org/agitation/boston.json"
}
}The record envelope
Every record documented on this page shares this top-level shape.
| Field | Type | Tiers | Description |
|---|---|---|---|
schema | string | SFV | Identifies the module and tier, e.g. abhortion.org/legislation.summary/v1. The three tiers use the suffixes .summary, .full, and .verbose. |
id | string | SFV | Stable record id, e.g. legality-us-mn or agitation-us-mn-minneapolis. |
type | string | SFV | Module: legislation or agitation. |
level | string | SFV | Jurisdiction level: state, federal, province, or city. |
jurisdiction | string | SFV | Human-readable jurisdiction name (e.g. "Minnesota", "Minneapolis, Minnesota"). |
as_of_date | string (YYYY-MM-DD) | SFV | Date the legal analysis is current through. |
research_completed_date | string (YYYY-MM-DD) | SFV | Date the underlying research was completed. |
headline | string | SFV | Short table-cell label for the jurisdiction (extracted from the overview finding). |
summary | string | SFV | One-sentence bottom line (extracted from the overview finding). |
machine_readable_summary | object | SFV | The flat, machine-readable determination set — present in every tier (it is what makes the light summary file self-sufficient). Module-specific — documented per document type below. See machine_readable_summary. |
overview | finding | SFV | The jurisdiction overview, as a finding atom (the source of headline and summary). |
sections | object | SFV | The body content, keyed by section name. Documented per document type below. See sections. |
penalties | array | SFV | Penalty rows (see “Penalties, changes & authorities”). |
recent_changes | array | SFV | Dated timeline of changes. |
pending_changes | array | SFV | Live litigation / legislation / rulemaking. |
key_authorities | array | SFV | The controlling authorities. |
research_notes | object | SFV | Overall confidence, unresolved gaps, and editor notes. |
links | object | SFV | Absolute URLs to the sibling representations: html, markdown, and the JSON tiers (summary_json, full_json, verbose_json). |
The finding atom
The recurring unit of content. overview is one; most sections leaves are too. Its fields depend on the tier.
| Field | Type | Tiers | Description |
|---|---|---|---|
title | string | SFV | Short table-cell label — the finding’s bottom line in 2–6 words. |
summary | string | SFV | Exactly one sentence: the finding’s bottom line, display-ready. |
description | string | SFV | A 2–6 sentence plain-language explanation a layperson can read as-is. |
type | string | SFV | Present only on exception findings — the exception_type value (also the key under sections.exceptions). |
county | string | SFV | Present only on legal_layers.county_law findings (agitation) — the county name. |
verification | enum | SFV | How well-confirmed the finding is.
|
confidence | enum | SFV | How settled the legal conclusion is.
|
sources | array of {name, href} | SFV | Compact source links (full tier only). Each: name (publisher) + href (direct URL). |
legal_analysis | string | SFV | The precise legal treatment for a legally literate reader (verbose tier only). |
quote | string | SFV | The single most operative statutory/case text, verbatim (verbose tier only). |
conflicting_authority | string | SFV | Present when authorities disagree — names the conflict and cites both sides. |
note | string | SFV | An editor’s note to the reader: caveats or what to re-check. |
citations | array of citation objects | SFV | Full citations (verbose tier only) — replaces sources. See below. |
machine_readable_summary
| Field | Type | Description |
|---|---|---|
overall_posture | enum | How heavily the city regulates public demonstration overall, as enforced.
|
recording_consent_regime | enum | The STATE’s conversation-recording rule.
|
open_recording_in_public_lawful | boolean | 'qualified' | Whether openly recording people in public is lawful. |
right_to_record_police_recognized | enum | Whether the controlling federal circuit recognizes a right to record police in public.
|
amplification_permit_required | enum | Whether amplified sound on public sidewalks/parks requires a permit.
|
amplification_banned_areas | boolean | Whether any public areas flatly ban amplified sound. |
noise_standard | enum | The measurement standard the operative noise ordinance uses.
|
daytime_noise_limit | string | null | Display string of the operative daytime limit (e.g. "70 dBA at 25 ft"); null if none. |
quiet_hours | string | null | Display string (e.g. "10pm–7am"); null if none. |
medical_facility_noise_rule | boolean | A noise rule specific to hospitals/healthcare facilities. |
handheld_sign_restrictions | boolean | Any restriction on carrying handheld signs on public sidewalks. |
sign_pole_material_rules | boolean | Restrictions on sticks, poles, or sign-support materials. |
graphic_imagery_restrictions | boolean | 'unclear' | Any ordinance/practice restricting graphic sign imagery. |
assembly_permit_threshold | number | null | Participants above which a permit is required for a stationary sidewalk assembly; 0 if always required, null if never. |
spontaneous_assembly_exception | boolean | 'not_applicable' | Whether the permit scheme exempts spontaneous/small assemblies. |
leafleting_restricted | boolean | Any restriction on leafleting beyond littering laws. |
healthcare_buffer_zone | enum | Any buffer/bubble zone around healthcare facilities applicable in this city.
|
buffer_zone_summary | string | null | Display string (e.g. "8-ft bubble within 100 ft of entrance (state)"); null if none. |
residential_picketing_ban | enum | Restrictions on picketing outside private residences.
|
sidewalk_obstruction_ordinance | boolean | An ordinance criminalizing obstructing sidewalks or entrances. |
school_area_restrictions | boolean | Demonstration/noise restrictions specific to schools in session. |
county_code_applies_in_city | enum | Whether county ordinances operate inside city limits.
|
anti_mask_law | boolean | A state/local law restricting masks/face coverings at gatherings. |
stop_and_identify_state | boolean | Whether state (or DC) law compels identifying oneself to police during a lawful detention. |
typical_violation_level | string | Display string for how ordinance violations are typically charged (e.g. "civil infraction, $250"). |
major_pending_change | boolean | True iff the pending_changes array is non-empty. |
sections
| Section key | Shape | What it documents |
|---|---|---|
legal_layers | group of findings | Which law governs (which_law_governs), county_law (an array of findings, one per county, each with a county field — empty for independent cities/DC), and the First Amendment overlay (federal_baseline). |
signage | group of findings — keys: handheld_signs, sticks_poles_materials, stationary_and_attached_displays, graphic_imagery | Rules on signs, sign supports, attached/unattended displays, and graphic imagery. |
sound_and_amplification | group of findings — keys: amplified_sound, noise_limits, unamplified_voice, sensitive_locations | Amplification permits, noise standards, unamplified voice, and sensitive locations. |
recording_and_photography | group of findings — keys: state_consent_law, recording_in_public, recording_police, publishing_footage, drones | Consent law, recording in public / of police, publishing footage, and drones. |
assembly_and_permits | group of findings — keys: permit_scheme, fees_insurance_indemnification, spontaneous_and_small_groups, denial_and_appeal | Permit thresholds, fees/insurance, small-group exemptions, and denial/appeal. |
location_rules | group of findings — keys: sidewalks_and_streets, parks_and_plazas, healthcare_buffer_zones, residential_picketing, schools_and_other_sensitive_sites | Obstruction, parks, healthcare buffer zones, residential picketing, and sensitive sites. |
person_to_person | group of findings — keys: leafleting, approaching_people, harassment_and_disorderly, anonymity_and_masks | Leafleting, approaching listeners, harassment/disorderly law, and masks/anonymity. |
police_interaction | group of findings — keys: identification, dispersal_orders, common_charges_and_outcomes | Stop-and-identify, dispersal orders, and the charges demonstrators actually receive. |
enforcement_reality | finding | Law-in-effect vs law-on-the-books: what is actually enforced, consent decrees, recent incidents. |
federal_jurisdiction_layers | finding (DC only) | Washington, DC adds this after enforcement_reality. |
penalties[]
Agitation penalty rows carry a level (offense grade) instead of an actor.
| Field | Type | Description |
|---|---|---|
level | string | Offense grade — e.g. "misdemeanor", "felony class C" (agitation documents). Absent on legislation rows. |
offense | string | The offense as charged, with code section. |
penalty | string | Sentence range, fines, license consequences. |
verification | enum | Verification status for the row.
|
sources | array of {name, href} | Compact source links (full tier). |
citations | array of citation objects | Full citations (verbose tier) — replaces sources. |
recent_changes[]
A dated timeline of changes already in force, oldest first.
| Field | Type | Description |
|---|---|---|
date | string (YYYY-MM-DD) | When the change took effect. |
event | string | What changed, as display text. |
sources | array of {name, href} | Compact source links (full tier). |
citations | array of citation objects | Full citations (verbose tier) — replaces sources. |
pending_changes[]
Live litigation, bills, ballot measures, and rulemaking that could still move the law.
| Field | Type | Description |
|---|---|---|
name | string | The case, bill, measure, or rulemaking. |
status | string | Where it currently stands. |
effect | string | What would change if it succeeds. |
type | enum | What kind of pending change this is.
|
sources | array of {name, href} | Compact source links (full tier). |
citations | array of citation objects | Full citations (verbose tier) — replaces sources. |
key_authorities[]
The controlling authorities for the document, deduplicated.
| Field | Type | Description |
|---|---|---|
name | string | Common name of the authority. |
citation | string | Formal legal citation. |
url | string | Direct link to the authority. |
why | string | One sentence on why it controls. |
type | enum | Kind of authority.
|
research_notes
How much weight the document itself will bear.
| Field | Type | Description |
|---|---|---|
overall_confidence | enum | Confidence in the document as a whole.
|
editor_notes | string | Editor’s note on the document. Present only when non-empty. |
gaps | array of strings | Unresolved points the research could not settle. Present only when non-empty. |
Source & citation objects
In the full tier, sources are compact { name, href } objects. In the verbose tier they are replaced by richer citation objects.
| Field | Type | Description |
|---|---|---|
name | string | Publisher of the URL (e.g. "Minnesota Office of the Revisor of Statutes"). |
href | string | Direct URL to the specific provision or opinion. |
citation | string | Formal legal citation (e.g. "Minn. Stat. § 145.409"). |
pinpoint | string | Subsection, paragraph, or page the quote appears in. Absent if the whole document is the target. |
quote | string | The exact text at this URL supporting the claim, verbatim. |
source_type | enum | Kind of source.
|
accessed | string | Which edition/version of the source the quote reflects. Absent if not meaningful. |