---
title: "Get an agenda hit"
method: GET
path: "/api/v1/public/agenda-hits/{matchId}"
tags: ["Agenda hits"]
---

# Get an agenda hit

`GET /api/v1/public/agenda-hits/{matchId}`

## Request

- Base URL: `https://aicdapi.com`
- URL: `https://aicdapi.com/api/v1/public/agenda-hits/{matchId}`
- Auth: none required

Returns one public agenda hit by its id, including the source link to the original public record. Ids come from `GET /api/v1/public/upcoming-agenda-hits`, whose `data.hits[].matchId` is this path parameter; the recent-hits list does not return ids. Ids outside the active public coverage set are treated as not found. If the underlying query fails, this endpoint answers 404 rather than 500.

## Path parameters

- `matchId` string, uuid, required

## Response `200`

Agenda hit.

- AgendaHitDetailEnvelope
  - `data` UpcomingAgendaHit, required: One classified hit with the id the detail route takes. The fields are the recent-hits fields plus `matchId`, published flat so a reader sees every field without resolving a composed schema.
    - `matchId` string, uuid, required: Id for `GET /api/v1/public/agenda-hits/{matchId}`.
    - `jurisdictionSlug` string, required
    - `jurisdictionName` string, required
    - `bodyName` string, required
    - `topicSlug` string, required
    - `meetingAt` string, date-time, required
    - `meetingTimePrecision` 'date' | 'time' | 'unknown' | 'null', nullable: Optional precision. date has no supplied clock; time is a verified source clock; unknown is unverified. Absent or null preserves pre-contract legacy precision and does not certify a clock.
    - `title` string, required
    - `summary` string, required
    - `businessImpact` string, required
    - `evidenceQuote` string, required
    - `sourceUrl` string, uri, required
    - `confidence` integer, required
    - `affectedLocation` AffectedLocationValue, required
      - `status` 'stated' | 'not_stated', required
      - `locations` AffectedLocation[], required
        - `kind` 'exact_address' | 'parcel_or_case' | 'zip_code' | 'council_district' | 'corridor' | 'named_development' | 'neighborhood' | 'citywide', required
        - `sourceText` string, required
    - `proceduralContext` AgendaProceduralContext, required
      - `proceduralStage` 'proposed' | 'scheduled' | 'recommended' | 'continued' | 'approved' | 'denied' | 'adopted' | 'unknown', required
      - `actingBodyRole` 'recommending' | 'final_decision_maker' | 'unknown', required
      - `nextBodyName` string, nullable, required
      - `nextMeetingDate` string, date, nullable, required
      - `actionKind` 'public_comment' | 'registration' | 'meeting' | 'staff_contact' | 'unknown', required
      - `actionUrl` string, uri, nullable, required
  - `meta` ResponseMeta
    - `pagination` PaginationMeta
      - `limit` 10, required
      - `returned` integer, required
      - `nextCursor` string, nullable, required: Opaque cursor for the next page, or null when traversal is complete.

## Other responses

- `400`: A path or query parameter is invalid or unsupported.
- `404`: The requested record was not found.
- `429`: More than 120 requests were made by this client IP in 60 seconds.
- `500`: The request could not be completed because of an internal error.

---

[API](https://skmtc.dev/aicdapi/apis/aicd-api.md) · [All operations](https://skmtc.dev/aicdapi/apis/aicd-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aicdapi/apis/aicd-api/revisions/0f3752fae465?raw)
