List an employee's access events
GET /employees/{id}/access-history
Scope employee:read
Requires the employee:read scope.
Example
curl "https://api.autociso.io/api/v1/employees/<id>/access-history" \
-H "Authorization: Bearer <your-api-token>"import requests
response = requests.get(
"https://api.autociso.io/api/v1/employees/<id>/access-history",
headers={"Authorization": "Bearer <your-api-token>"},
)
print(response.json())const response = await fetch("https://api.autociso.io/api/v1/employees/<id>/access-history", {
method: "GET",
headers: { "Authorization": "Bearer <your-api-token>" },
});
console.log(await response.json());Response 200
{
"data": [
{
"assetId": "ast_1hfz2m3r9t5b",
"employeeId": "empl_1hgyv08q3k2m",
"eventId": "ace_1hk1d4q8s2wv",
"eventType": "DETECTED",
"occurredAt": "2026-01-15T08:00:00Z"
},
{
"assetId": "ast_1hfz2m3r9t5b",
"employeeId": "empl_1hgyv08q3k2m",
"eventId": "ace_1hk3x0m5t7yc",
"eventType": "REVOKED",
"occurredAt": "2026-09-02T02:00:00Z"
}
],
"error": null,
"meta": {
"limit": 25,
"offset": 0,
"total": 2
}
}Path parameters
idstring required
Query parameters
limitintegerPage size.offsetintegerRows to skip (offset mode). Cannot be combined with cursor.cursorstringAn opaque cursor taken from meta.nextCursor of the previous page (cursor mode). Valid for 24 hours and bound to the token and the query; do not parse or construct it.sort[eventId]stringSort direction for eventId."asc" | "desc"sort[occurredAt]stringSort direction for occurredAt."asc" | "desc"filter[assetId][eq]stringFilter assetId (eq).filter[assetId][in]stringFilter assetId (in). Comma-separated, at most 50 values.filter[eventId][eq]stringFilter eventId (eq).filter[eventId][in]stringFilter eventId (in). Comma-separated, at most 50 values.filter[eventType][eq]stringFilter eventType (eq)."DETECTED" | "REVOKED" | "VERIFIED"filter[eventType][in]stringFilter eventType (in). Comma-separated, at most 50 values.filter[occurredAt][gte]string (date-time)Filter occurredAt (gte).filter[occurredAt][lt]string (date-time)Filter occurredAt (lt).
Returns
The data field of the standard { data, error, meta } envelope:
An array of object:
assetIdstring requiredAsset id, always ast_ (a legacy row's 24-hex id is returned as ast_<hex>).assetLegacyIdstringThe legacy 24-hex asset id; present only for legacy rows.employeeIdstring requiredEmployee (empl_ FlakeID).eventIdstring requiredAccess event id (ace_ FlakeID); the keyset tie-break. Empty for legacy events.eventTypestring requiredDETECTED, REVOKED or VERIFIED.occurredAtstring (date-time) requiredWhen the audit observed the event (events are append-only; the sync field).
Errors
| Status | Code | Retry | Meaning |
|---|---|---|---|
| 400 | - | no | The request is invalid. |
| 401 | - | no | The token is missing, malformed, expired or revoked. |
| 402 | - | no | The organisation’s plan does not include the feature this route needs. |
| 403 | - | no | The token may not use this route. |
| 404 | - | no | The resource does not exist in this organisation. |
| 429 | - | yes | Rate limit or row budget exceeded; retry after the time in Retry-After. |
| 500 | - | no | Unexpected server error. |
| 503 | - | yes | A dependency is temporarily unavailable; retry later. |
Last reviewed: 2026-10-13
Was this page helpful?