Export Audit Logs Csv
Same dependency as the JSON route, so the role gate cannot drift: a member who cannot list entries cannot download them either.
assert_audit_readable() runs HERE, synchronously, before the response is constructed — not left to iter_csv_rows’s own internal call. StreamingResponse sends the 200 status line before ever touching the body iterator, so a check inside an async generator raises too late for an HTTP client to see anything but a 200 with an empty body. This pre-flight is what usage.py’s CSV export already does (checks run in the handler, not the generator); iter_csv_rows’s own call stays in place as defense-in-depth for non-HTTP callers only.
Authorizations
Enter your MeshAPI key (rsk_...) — sent as Authorization: Bearer <key>.
Headers
Dated version of the API contract to pin this request to. Omit it and the request is served under 2026-08 — the oldest supported version, so an existing integration is never moved by a release. A malformed or unsupported value is rejected with 400 invalid_api_version rather than falling back silently. The version actually served is echoed as X-Mesh-Version on every response, including errors.
2026-08 Query Parameters
Response
Successful Response