search_meeting_content
Search meeting content
Search public meetings once across metadata and stored transcript text.
Returns one card per meeting and native pagination metadata, without a total.
Small current-text previews can be absent and do not establish timestamps.
Text relevance can lag updates or match across untimed boundaries.
Source transcripts searches stored text, including meetings without timed proof.
Parameterslimitqueryrequiredtopiccursorsourceend_datestart_datecategory_taggovernment_idgovernment_ids
search_meetings_semantic
Search meetings
Find AI summaries by meaning; use search_meeting_content for stored words.
Results carry relevance_score and a summary preview. Narrow with government,
category_tag, topic or dates; get_meeting retrieves the full summary.
Parameterslimitqueryrequiredtopicend_datemin_scorematch_typestart_datecategory_taggovernment_idgovernment_ids
list_recent_meetings
List recent meetings
Browse meetings newest-first, optionally filtered by government, type, topic, or date.
Use this for "what are the most recent meetings" or to page through a
government's history. For topical questions, prefer `search_meetings_semantic`.
Parameterspagelimittopicend_datestart_datecategory_taggovernment_id
Get a single meeting's full AI summary and topics.
Set `include_transcript=true` to also retrieve the complete transcript text
for direct quotation. Returns an error object if the meeting is not found.
Parametersmeeting_idrequiredinclude_transcript
search_meeting_transcript
Search meeting transcript
Use unified stored-text search inside one currently public meeting.
Returns an optional current-text preview, without resolving timing. A text match
can lack a literal preview; use get_meeting(include_transcript=true) for full source
retrieval. This does not run a separate local scan or fuzzy passage ranking.
Parametersqueryrequiredmeeting_idrequired
find_local_governments
Find governments near a location
Discover which governments OpenPublica tracks near a coordinate.
Returns nearby governments with their `account_id`, which you can pass to the
other tools to scope results to a specific city or board. Note OpenPublica
only covers a limited set of US localities; an empty result means none are
tracked near that point yet.
Parameterslimitlatituderequiredlongituderequired
find_governments_by_name
Find governments by name
Resolve a place *name* to the governments OpenPublica tracks there.
Use this when you know a city/state name but not its coordinates — it returns
matching governments with their `account_id` (prefix matches first), which you
then pass to the search/list tools. Prefer this over `find_local_governments`
when starting from a name rather than a latitude/longitude.
Parameterslimitqueryrequired
find_governments_by_zip
Find governments by ZIP code
Resolve a ZIP code to nearby tracked governments.
Convenience wrapper: geocodes the ZIP, then finds the governments OpenPublica
tracks nearest that point. Returns their `account_id`s plus the resolved
location. An empty `governments` list means none are tracked near that ZIP yet.
Parameterslimitpostal_coderequired
get_government_info
Get government profile
Get a tracked government's profile: name, location, and meeting categories.
Parametersgovernment_idrequiredinclude_weekly_summary
get_government_stats
Get government meeting stats
Get meeting-activity stats for a government over a recent window.
Returns total meeting count, a per-day activity map, and a breakdown of
meeting categories — useful for "how active has X been lately?" questions.
Parametersdaysgovernment_idrequired
discover_meeting_vocabulary
Discover category and topic filters
Discover the valid category and topic filter values before filtering a search.
Meeting `category_tag`s are opaque UUIDs and topics have no fixed list, so you
cannot guess them. Call this first to get the real values, then pass a returned
`category_tag` (from `categories[].tags`) or `topic` string into
`search_meetings_semantic` / `list_recent_meetings`. Scope with a government
and/or date range; calls without explicit dates default to a recent window
(returned as `default_window_days`).
Parametersend_datestart_datetopic_limitgovernment_idgovernment_ids
list_government_documents
List government documents
List a government's adopted plan and budget documents.
Each entry carries `covers` — every general-plan element that document
answers for. A city that publishes one bound general plan satisfies all
eight with the same PDF, so do not conclude an element is unpublished
because no entry is named after it.
`status` says what the entry offers: `converted` is searchable and readable;
`superseded` is a retired edition, still stored but not searchable; and
**`failed` means we hold this document and could not read it — it is not
evidence the city published nothing.** Cite `source_url` in that case; it is
always the city's own copy.
An `availability` block appears ONLY when something is wrong with a
document, and `availability.reason` says what. No `availability` key means
there is nothing to report.
Parametersgovernment_idrequiredinclude_superseded
get_document
Get document metadata
One document's metadata. Use read_document_pages to read it.
If an `availability` key is present, read it before quoting figures: its
`problems` are transcription-lint findings, most often a footnote marker
that may have been merged into the number it annotates. No such key means
the document transcribed cleanly.
Parametersdocument_idrequired
read_document_pages
Read document pages
Read a page range of a document as markdown.
Pages are transcribed from rendered pixels, so tables and scanned text come
through as text. A page that could not be transcribed appears as a marked
hole rather than being silently dropped — if you see one, say so instead of
reading past it.
Text is assembled from page windows, so `covered` may be slightly wider than
what you asked for; cite the page numbers in `covered`, not `requested`.
Parameterslast_pagerequiredfirst_pagerequireddocument_idrequired
search_documents
Search documents
Search adopted plan and budget documents, returning page-cited excerpts.
Each hit's `text` is a short passage around the match, not the full page —
call read_document_pages with the hit's `first_page` to read it in context.
Every hit carries `first_page`/`last_page` and `source_url`. Quote those
when citing: the page number is what makes the claim checkable against the
city's own copy.
This is word matching, not semantic search — try the terms a plan would
actually use. Only currently-served documents are searchable, so an empty
result is not evidence the government has no such policy; check
list_government_documents for what is held and what could not be read.
A hit with `document_complete: false` comes from a document with
transcription findings. Verify it against `source_url` before quoting a
number from it.
Parameterslimitqueryrequiredgovernment_id
get_coverage_overview
Get coverage overview
Get estimated stored-record totals, not publication-filtered coverage.
Counts do not establish completeness, searchability or freshness. DC is
reported separately from states as `includes_dc`.
Takes no parameters.