Endpoint

Authentication

None — public endpoint. It is designed to stay reachable during outages: on any internal error it still returns HTTP 200 with an empty list. A query parameter that is not a UUID is your error and answers 422.

Query parameters

Scoping: a notice with no building/area targets is global and is always returned. Targeted notices are only returned when your building_id / service_area_id matches one of the notice’s targets — without context you only see global notices. Only active notices inside their display window (starts_at <= now <= ends_at, nulls open-ended) are returned.

Response — 200 OK

body and resolved_at are derived aliases: body mirrors message; resolved_at is null while the notice is active and equals ends_at once it isn’t. service_provider_id is null for a network-wide notice. A notice does not list its targets: which buildings or areas it covers is decided on kurnl’s side by the scoping above. On an internal error the endpoint degrades gracefully to { "notices": [] } with HTTP 200.