List the access inventory (one row per grant)
GET /access
Scope access_review:read
Requires the access_review:read scope.
Example
curl "https://api.autociso.io/api/v1/access" \
-H "Authorization: Bearer <your-api-token>"import requests
response = requests.get(
"https://api.autociso.io/api/v1/access",
headers={"Authorization": "Bearer <your-api-token>"},
)
print(response.json())const response = await fetch("https://api.autociso.io/api/v1/access", {
method: "GET",
headers: { "Authorization": "Bearer <your-api-token>" },
});
console.log(await response.json());Response 200
{
"data": [
{
"accessId": "acc_1hk3p9x2m4qa",
"accountState": "UNKNOWN",
"assetCriticality": "HIGH",
"assetId": "ast_1hfz2k8w0c7d",
"assetName": "Google Workspace",
"dormantDays": 1,
"employeeId": "empl_1hgyun41rx48",
"firstObservedAt": "2026-03-04T09:12:00Z",
"identityType": "HUMAN",
"isDormant": false,
"isPrivileged": true,
"lastDetectedAt": "2026-10-12T02:00:00Z",
"lastUsedAt": "2026-10-11T16:41:00Z",
"lastVerifiedAt": "2026-09-30T10:05:00Z",
"revocationSource": "",
"revokedAt": null,
"riskFactors": [
"ADMIN_LEVEL_ACCESS"
],
"riskScore": 42,
"roleConfidence": 0.97,
"roleLevel": "ADMIN",
"status": "ACTIVE",
"updatedAt": "2026-10-12T02:00:00Z"
},
{
"accessId": "acc_1hk3pa0v7n2e",
"accountState": "UNKNOWN",
"assetCriticality": "CRITICAL",
"assetId": "ast_1hfz2m3r9t5b",
"assetName": "GitHub",
"dormantDays": 53,
"employeeId": "empl_1hgyv08q3k2m",
"firstObservedAt": "2026-01-15T08:00:00Z",
"identityType": "HUMAN",
"isDormant": true,
"isPrivileged": false,
"lastDetectedAt": "2026-10-12T02:00:00Z",
"lastUsedAt": "2026-08-20T11:30:00Z",
"lastVerifiedAt": null,
"revocationSource": "",
"revokedAt": null,
"riskFactors": [
"TERMINATED_EMPLOYEE_ACCESS",
"DORMANT_ACCESS"
],
"riskScore": 68,
"roleConfidence": 0.88,
"roleLevel": "VIEWER",
"status": "ACTIVE",
"updatedAt": "2026-10-12T02:00:00Z"
}
],
"error": null,
"meta": {
"limit": 25,
"offset": 0,
"total": 214
}
}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[accessId]stringSort direction for accessId."asc" | "desc"sort[updatedAt]stringSort direction for updatedAt."asc" | "desc"filter[accessId][eq]stringFilter accessId (eq).filter[accessId][in]stringFilter accessId (in). Comma-separated, at most 50 values.filter[assetId][eq]stringFilter assetId (eq).filter[assetId][in]stringFilter assetId (in). Comma-separated, at most 50 values.filter[employeeId][eq]stringFilter employeeId (eq).filter[employeeId][in]stringFilter employeeId (in). Comma-separated, at most 50 values.filter[identityType][eq]stringFilter identityType (eq).filter[identityType][in]stringFilter identityType (in). Comma-separated, at most 50 values.filter[isDormant][eq]booleanFilter isDormant (eq).filter[isPrivileged][eq]booleanFilter isPrivileged (eq).filter[roleLevel][eq]stringFilter roleLevel (eq).filter[roleLevel][in]stringFilter roleLevel (in). Comma-separated, at most 50 values.filter[status][eq]stringFilter status (eq).filter[status][in]stringFilter status (in). Comma-separated, at most 50 values.filter[updatedAt][gte]string (date-time)Filter updatedAt (gte).filter[updatedAt][lt]string (date-time)Filter updatedAt (lt).
Returns
The data field of the standard { data, error, meta } envelope:
An array of object:
accessIdstring requiredGrant id (acc_ FlakeID); the keyset tie-break.accountStatestring requiredAccount state reported by the source system: ACTIVE, SUSPENDED, BLOCKED, INVITED or UNKNOWN (default; never guessed).assetCriticalitystring requiredAsset criticality (LOW, MEDIUM, HIGH, CRITICAL).assetIdstring requiredAsset id, always ast_ (a legacy row's 24-hex id is returned as ast_<hex>); empty when the stored value is not an id.assetLegacyIdstringThe legacy 24-hex asset id; present only for legacy rows.assetNamestring requiredAsset name as entered in AutoCISO (organisation data).dormantDaysinteger requiredWhole days since the last activity, computed at read time.employeeIdstring requiredHolder of the grant (empl_ FlakeID); empty for an unmatched account. Resolve names with employee_resolve.firstObservedAtstring (date-time) or null requiredFirst time AutoCISO observed the grant (not the grant date in the source system).identityTypestring requiredHUMAN or SERVICE_ACCOUNT.isDormantboolean requiredNo activity for 30 days, computed at read time from the dates (it changes without a write, so updatedAt does not move).isPrivilegedboolean requiredtrue when roleLevel is ADMIN.lastDetectedAtstring (date-time) requiredLast time an audit detected the grant.lastUsedAtstring (date-time) or null requiredLast observed use, when known.lastVerifiedAtstring (date-time) or null requiredLast verification, when known.revocationSourcestring requiredWho revoked the grant: MANUAL, SNAPSHOT_REVIEW or MATCH_CORRECTED; empty for an active grant.revokedAtstring (date-time) or null requiredWhen the grant was revoked; null for an active grant.riskFactorsarray of string requiredRisk factor codes (closed set: for example TERMINATED_EMPLOYEE_ACCESS, DORMANT_ACCESS, STALE_PRIVILEGE, UNMAPPED_ACCOUNT, ADMIN_LEVEL_ACCESS, CRITICAL_CRITICALITY_ASSET, OWNER_NOT_ASSIGNED). Unknown factors are omitted.riskScoreinteger requiredRisk score (0..100).roleConfidencenumber requiredConfidence of the role classification (0..1).roleLevelstring requiredADMIN, MANAGER or VIEWER.statusstring requiredLifecycle status (ACTIVE, REVOKED).updatedAtstring (date-time) or null requiredLast write to the grant (incremental-sync field); null until the row is backfilled.
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. |
| 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-16
Was this page helpful?