Laurel Agentic Access
Laurel exposes 364 API operations that an AI agent could call, of which 225 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 139 read, 216 write, and 9 safety-critical.
9 operations are classed safety-critical and should require human-in-the-loop approval at runtime.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
By consequence
Highest-consequence actions
The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| POST | /api/v1/customers/{customerId}/clients/override-compliance-rules | safety-critical | required |
| POST | /api/v1/customers/{customerId}/clients/override-compliance-rules/affected-count | safety-critical | required |
| PATCH | /api/v1/customers/{customerId}/connections/{connectionId}/scim | safety-critical | required |
| PATCH | /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/override | safety-critical | required |
| POST | /api/v1/entries/{entryId}/dismiss-autostop | safety-critical | required |
| PATCH | /api/v1/public/customers/{customerId}/users/{userId}/entries/{entryId}/override | safety-critical | required |
| PATCH | /api/v2/customers/{customerId}/users/{userId}/entries/{entryExternalId}/override | safety-critical | required |
| POST | /api/v2/timers/{timerId}/stop | safety-critical | required |
| POST | /api/v3/timers/stop | safety-critical | required |
Source
Agentic Access
generated: '2026-07-19'
method: generated
source: openapi/laurel-identity-openapi-original.json, openapi/laurel-ingestion-openapi-original.json,
openapi/laurel-time-openapi-original.json
description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI.
A governance starting point for exposing this API to AI agents — review and bind audience per deployment.
See research/curity/agentic-governance/.
notes: Classified with word-boundary matching after stripping the NestJS "Controller" token from operationIds;
plain substring matching mis-reads "...Controller_create" as the safety keyword "control".
summary:
operations: 364
by_action_class:
acting: 225
connected: 139
by_consequence:
read: 139
safety-critical: 9
write: 216
human_in_the_loop_required: 9
operations:
- path: /api/v1/tenants
method: post
operationId: TenantController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/tenants
method: get
operationId: TenantController_getAll_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/tenants/{tenantId}
method: get
operationId: TenantController_get_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/tenants/{tenantId}
method: patch
operationId: TenantController_updateOneById_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/permissions
method: get
operationId: PermissionController_getAll_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/permissions/{permissionId}
method: get
operationId: PermissionController_getOne_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/ably/auth
method: get
operationId: AblyController_auth_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/clients/on-credentials-exchange
method: post
operationId: ClientController_onCredentialsExchange_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/clients
method: post
operationId: ClientController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/clients
method: get
operationId: ClientController_getAll_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/clients/{clientId}
method: get
operationId: ClientController_get_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/clients/{clientId}
method: patch
operationId: ClientController_update_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/clients/{clientId}
method: delete
operationId: ClientController_delete_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers
method: post
operationId: CustomerController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers
method: get
operationId: CustomerController_getAll_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/lookup
method: get
operationId: CustomerController_lookup_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}
method: get
operationId: CustomerController_get_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}
method: patch
operationId: CustomerController_update_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/tenant
method: get
operationId: CustomerController_getTenant_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/identities
method: post
operationId: CustomerController_createNewCustomerIdentity_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/connections
method: post
operationId: CustomerController_createConnection_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/connections/{connectionId}
method: patch
operationId: CustomerController_updateConnection_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/connections/{connectionId}
method: delete
operationId: CustomerController_deleteConnection_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/connections/{connectionId}/scim
method: patch
operationId: CustomerController_updateConnectionScim_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: safety-critical
subject: required
audience: null
token:
max-ttl: 120
exchange: true
purpose-required: true
proof-of-possession: true
escalation:
human-in-the-loop: required
audit: required
- path: /api/v1/customers/{customerId}/connections/{connectionId}/domains
method: put
operationId: CustomerController_updateConnectionDomains_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/region
method: get
operationId: CustomerController_getCustomerRegion_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/clients
method: get
operationId: CustomerClientController_getCustomerClients_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/clients
method: post
operationId: CustomerClientController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/clients/{clientId}
method: get
operationId: CustomerClientController_getCustomerClientById_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/clients/{clientId}
method: delete
operationId: CustomerClientController_deleteCustomerClientById_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/managed-clients
method: get
operationId: CustomerManagedClientController_getCustomerManagedClients_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/managed-clients
method: post
operationId: CustomerManagedClientController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/managed-clients/{clientId}
method: delete
operationId: CustomerManagedClientController_deleteCustomerManagedClientById_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/data-retention-audits
method: post
operationId: DataRetentionAuditController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/data-retention-audits
method: get
operationId: DataRetentionAuditController_getAll_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/data-retention-audits/{auditId}
method: get
operationId: DataRetentionAuditController_getOne_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /healthcheck
method: get
operationId: HealthCheckController_getHeathStatus
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/impersonation-events
method: post
operationId: ImpersonationEventController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/impersonation-events
method: get
operationId: ImpersonationEventController_getAll_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/impersonation-events/{eventId}
method: get
operationId: ImpersonationEventController_getOne_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/twilio/phone-lookups
method: get
operationId: TwilioController_getPhoneDetails_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/roles
method: get
operationId: RoleController_getAll_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/roles/{roleId}
method: get
operationId: RoleController_get_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users
method: get
operationId: CustomerUserController_search_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/customers/{customerId}/users
method: get
operationId: CustomerUserController_searchV2_v2
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users-lite
method: get
operationId: CustomerUserController_searchLite_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users/by-ids
method: get
operationId: CustomerUserController_getUsersByIds_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users/lookup
method: get
operationId: CustomerUserController_lookupUser_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users/batch/lookup
method: post
operationId: CustomerUserController_lookupUsersBatch_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/translate-timekeeper-ids
method: post
operationId: CustomerUserController_translateTimekeeperIdsToUserIds_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/lookup/identity
method: post
operationId: CustomerUserController_lookupUserIdentityType_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v2/customers/{customerId}/users/lookup/identity
method: get
operationId: CustomerUserController_lookupUserByIdentity_v2
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users/{userId}/identities
method: get
operationId: CustomerUserController_lookupUserIdentity_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users/{userId}/identities
method: post
operationId: CustomerUserController_createNewUserIdentity_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}/identities
method: put
operationId: CustomerUserController_updateUserIdentity_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}/super-delegate
method: patch
operationId: CustomerUserController_setUserSuperDelegateStatus_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}
method: get
operationId: CustomerUserController_get_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users/{userId}
method: patch
operationId: CustomerUserController_update_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}
method: delete
operationId: CustomerUserController_delete_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v2/customers/{customerId}/users/{userId}
method: patch
operationId: CustomerUserController_updateV2_v2
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}/status
method: patch
operationId: CustomerUserController_updateStatus_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}/identities/bulk
method: post
operationId: CustomerUserController_createBulkUserIdentities_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}/email-aliases
method: post
operationId: CustomerUserController_createEmailAliases_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}/email-aliases
method: delete
operationId: CustomerUserController_deleteEmailAlias_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/{userId}/email-aliases
method: get
operationId: CustomerUserController_getEmailAliases_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/customers/{customerId}/users/import
method: post
operationId: CustomerUserController_deprecatedImport_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v2/customers/{customerId}/users/import
method: post
operationId: CustomerUserController_importV2_v2
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/customers/{customerId}/users/batch/import
method: post
operationId: CustomerUserController_postUserData_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v2/customers/{customerId}/users/batch/import
method: post
operationId: CustomerUserController_postUserDataV2_v2
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/delegators
method: get
operationId: DelegatorController_search_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users
method: post
operationId: UserController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/users/lookup
method: get
operationId: UserController_lookup_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users/on-auth
method: post
operationId: UserController_onAuth_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/users/on-broker-auth
method: post
operationId: UserController_onBrokerAuth_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/users/current
method: get
operationId: UserController_findCurrentUser_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users/current
method: patch
operationId: UserController_updateCurrent_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/users/{userId}
method: get
operationId: UserController_get_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/user-groups
method: get
operationId: UserGroupController_list_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/user-groups
method: post
operationId: UserGroupController_create_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/user-groups/by-external-id/{externalId}
method: put
operationId: UserGroupController_upsertByExternalId_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/user-groups/by-external-id/{externalId}
method: delete
operationId: UserGroupController_deleteByExternalId_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/user-groups/for-user/{userId}
method: get
operationId: UserGroupController_listForUser_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/user-groups/{userGroupId}
method: get
operationId: UserGroupController_get_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/user-groups/{userGroupId}
method: patch
operationId: UserGroupController_update_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/user-groups/{userGroupId}
method: delete
operationId: UserGroupController_delete_v1
source: openapi/laurel-identity-openapi-original.json
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/
# --- truncated at 32 KB (142 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/laurel/refs/heads/main/agentic-access/laurel-agentic-access.yml