# CivicRecap

> Agenda-anchored highlight clips and written briefings made from the video recordings of California civic meetings — city councils, boards and commissions.

Finding a meeting is public: search, the agency and place directories, and
every meeting's title, body, date, published clip headlines and the opening
of its briefing.
Reading the record itself — the recording, the briefing and the transcript
— needs a free account, and there are no downloads.

The site is addressed place-first: `/in/{place}`, the bodies that serve
it at `/in/{place}/{body}`, and their meetings at
`/in/{place}/{body}/{date}-{id}`. The older flat spellings
(`/places/{slug}`, `/agencies/{slug}`, `/meetings/{slug}`) are answered
forever and redirect here, so a link of either shape resolves.

Every public page also answers `Accept: text/markdown` with a prose
version of itself. The same document has an address of its own at
`/md` + the page's path (`/md/browse`, `/md/in/{place}/{body}`), which is
the one to ask for when a cache sits between us: the markdown answer
carries `Vary: Accept`, but a shared cache that ignores `Vary` cannot tell
the two representations of a page URL apart.

## Start here

- [Home](https://www.civicrecap.com/): search for a place or a body.
- [Browse public bodies](https://www.civicrecap.com/browse): every body with meetings on the record.
- [Sitemap](https://www.civicrecap.com/sitemap.xml): every public URL.

## API

- [Developer and agent documentation](https://www.civicrecap.com/developers): the public API in prose — every endpoint, the error shape, what needs an account.
- [OpenAPI description](https://www.civicrecap.com/openapi.json): the public read surface. Errors are JSON with `error`, `message` and `hint`.
- [API index](https://www.civicrecap.com/api): the same pointers as JSON, for a caller that started at the API root.
- [API catalog](https://www.civicrecap.com/.well-known/api-catalog): the RFC 9727 linkset naming the spec, the docs and the health endpoint.
- [auth.md](https://www.civicrecap.com/auth.md): how an agent gets access — every credential, how each is obtained, and why there is no OAuth to negotiate.

## Policies

- [Privacy policy](https://www.civicrecap.com/privacy): what is stored about an account.
- [Terms of service](https://www.civicrecap.com/terms): how the record may be used.
