Export access control events in CSV or JSON format

Returns the access control events of the organization the credentials belong to — the same records the Access Control Events page shows, with the same filters.

timestampStart and timestampEnd are required and are Unix epoch milliseconds in UTC; both bounds are inclusive. The range may span at most 366 days and timestampEnd must not precede timestampStart; either violation answers 400.

Every other filter is optional and narrows the result: eventName, userName, device, site and eventClass are comma-separated lists matched exactly, source selects one provider, and cameraExists=true keeps only events linked to a camera. Values for the list filters are the ones the page offers in its filter dropdowns.

format selects the representation and defaults to csv:

  • csv — streams the whole time range as a text/csv attachment (Content-Disposition: attachment; filename=access-control-events-<YYYY-MM-DD-HH-mm-ss>.csv) with a header row and the columns Id, Timestamp, Site, Device, Event, User, Event Class, Source, Camera Ids, Raw Payload. Not paginated: page and pageSize are ignored.
  • json — returns a single page as { "data": [ … ], "page": 1, "pageSize": 1000, "total": 4820 }. total counts the whole range, so it is normally larger than data.length.

page (from 1, default 1) and pageSize (1..1000, default 1000) apply to format=json only. 1000 records per page is a hard cap; to read a wider range, request page 1, 2, 3 … while (page - 1) * pageSize < total.

Records are ordered by event time, most recent first. Events recorded within the same millisecond have no guaranteed order relative to each other, so a record can shift between adjacent pages while new events are being written.

A JSON record carries the same values as the CSV columns: id, timestamp, site, device, eventName, userName, eventClass, source, cameraIds and rawPayload. rawPayload is the event exactly as the provider delivered it, with credential-like keys redacted; in CSV it is serialised to a JSON string and cameraIds is joined with ;.

Prefer format=csv for wide ranges: it streams the whole range in one request, whereas JSON needs ceil(total / pageSize) round trips.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
number
required

Start of the time range, inclusive. Unix epoch milliseconds, UTC.

number
required

End of the time range, inclusive. Unix epoch milliseconds, UTC. Must not precede timestampStart; the range may span at most 366 days.

string

Keep only events whose name is in this list, e.g. Access granted. Comma-separated in the query string. Values are the ones the Access Control Events page offers in its Event filter.

string

Keep only events attributed to these user names as reported by the provider. Comma-separated in the query string. Events without a user are stored as System.

string

Keep only events from these devices (doors or readers) by the name the provider reports. Comma-separated in the query string.

string

Keep only events from these sites by the name the provider reports. Comma-separated in the query string.

string

Keep only these event classes: 0 Info, 1 Error (a denied access), 2 Warning. Comma-separated in the query string.

number
enum

Keep only events received from one provider: 0 Genea, 1 Kisi, 2 Brivo, 3 Lenel OnGuard, 5 Schneider.

Allowed:
boolean

When true, keep only events that are linked to at least one camera (the Video-only filter of the Access Control Events page). Omitted or false returns every event.

string
enum
Defaults to csv

Response format. csv (the default) streams the whole time range as a file attachment; json returns one page of records.

Allowed:
number
≥ 1
Defaults to 1

Page number, starting at 1. Applies to format=json only; ignored for CSV.

number
1 to 1000
Defaults to 1000

Records per page, 1..1000. Applies to format=json only; ignored for CSV.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

400

Bad Request - The server cannot process the request due to client error.

401

Unauthorized - Authentication is required and has failed or has not been provided.

403

Forbidden - Insufficient permissions to access this resource

500

Internal Server Error - The server encountered an unexpected condition that prevented it from fulfilling the request.

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
text/csv