Particle Agentic Access
Particle exposes 138 API operations that an AI agent could call, of which 66 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: 72 read, 64 write, 1 physical, and 1 safety-critical.
1 operation 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 | /v1/user/password-reset | safety-critical | required |
| PATCH | /v1/orgs/{orgIdOrSlug}/team/provision/Users/{user_id} | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/particle-cloud-api-openapi.yml
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/.
summary:
operations: 138
by_action_class:
acting: 66
connected: 72
by_consequence:
write: 64
read: 72
physical: 1
safety-critical: 1
human_in_the_loop_required: 1
operations:
- path: /oauth/token
method: post
operationId: PostOauthToken
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: /v1/access_tokens/{token}
method: delete
operationId: DeleteAccessToken
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: /v1/access_tokens
method: delete
operationId: DeleteActiveAccessTokens
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: /v1/access_tokens/current
method: delete
operationId: DeleteCurrentAccessToken
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: /v1/access_tokens/current
method: get
operationId: GetCurrentAccessToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/config
method: get
operationId: GetProductConfigSchema
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/config
method: delete
operationId: DeleteProductConfigSchema
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: /v1/products/{productIdOrSlug}/config
method: put
operationId: SetProductConfigSchema
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: /v1/products/{productIdOrSlug}/config/{deviceId}
method: get
operationId: GetDeviceConfigSchema
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/config/{deviceId}
method: delete
operationId: DeleteDeviceConfigSchema
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: /v1/products/{productIdOrSlug}/config/{deviceId}
method: put
operationId: SetDeviceSchema
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: /v1/products/{productIdOrSlug}/customers/{customerEmail}
method: delete
operationId: deleteCustomer
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: /v1/products/{productIdOrSlug}/customers/{customerEmail}
method: put
operationId: updateCustomerPassword
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: /v1/products/{productIdOrSlug}/customers
method: post
operationId: CreateCustomer
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: /v1/products/{productIdOrSlug}/customers
method: get
operationId: ListProductCustomers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/devices
method: post
operationId: ClaimDevice
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: /v1/devices
method: get
operationId: ListDevices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/devices/{deviceId}
method: delete
operationId: denyQuarantinedDevice
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: /v1/products/{productIdOrSlug}/devices/{deviceId}
method: get
operationId: GetProductDevice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/devices/{deviceId}
method: put
operationId: updateDeviceGroups
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: /v1/devices/{deviceId}
method: delete
operationId: unclaimDevice
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: /v1/devices/{deviceId}
method: put
operationId: UpdateDeviceFirmware
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: /v1/devices/{deviceId}
method: get
operationId: GetDevice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/serial_numbers/{serial_number}
method: get
operationId: GetV1Serial_numbersSerial_number
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/devices
method: get
operationId: listDevicesForProduct
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/devices
method: post
operationId: approveQuarantinedDevice
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: /v1/products/{productIdOrSlug}/devices
method: put
operationId: batchAssignDeviceGroups
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: /v1/products/{productIdOrSlug}/device_orders
method: get
operationId: listDeviceOrdersForProduct
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/devices/{deviceId}/{varName}
method: get
operationId: GetDeviceVariable
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/devices/{deviceId}/{functionName}
method: post
operationId: PostV1DevicesDeviceidFunctionname
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: /v1/devices/{deviceId}/ping
method: put
operationId: PutV1DevicesDeviceidPing
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: /v1/diagnostics/{deviceId}/update
method: post
operationId: updateDeviceDiagnostics
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: /v1/diagnostics/{deviceId}/last
method: get
operationId: getLastDeviceDiagnostics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/diagnostics/{deviceId}
method: get
operationId: getAllDeviceDiagnostics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/sims/{iccid}/status
method: get
operationId: getCellularNetworkStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/env
method: get
operationId: listEnv
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/env
method: patch
operationId: patchEnv
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: /v1/env/{key}
method: put
operationId: setEnv
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: /v1/env/{key}
method: delete
operationId: deleteEnv
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: /v1/env/render
method: get
operationId: renderEnv
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/env/rollout
method: get
operationId: reviewEnvRollout
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/env/rollout
method: post
operationId: startEnvRollout
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: /v1/events/{eventPrefix}
method: get
operationId: GetEvents
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/devices/events/{eventPrefix}
method: get
operationId: GetDeviceEvents
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/devices/{deviceId}/events/{eventPrefix}
method: get
operationId: GetDeviceEvents
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/events/{eventPrefix}
method: get
operationId: GetProductEvents
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/devices/events
method: post
operationId: CreateEvent
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: /v1/products/{productIdOrSlug}/events
method: post
operationId: PublishProductEvent
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: /v1/binaries
method: post
operationId: compileSource
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: /v1/build_targets
method: get
operationId: listBuildTargets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/metrics/online
method: get
operationId: getOnlineMetrics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/metrics/events
method: get
operationId: getEventsMetrics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/metrics/integration
method: get
operationId: getIntegrationMetrics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/metrics/functions
method: get
operationId: getFunctionsMetrics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/metrics/variables
method: get
operationId: getVariablesMetrics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/groups/{groupName}
method: get
operationId: getDeviceGroup
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/groups/{groupName}
method: put
operationId: updateDeviceGroup
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: /v1/products/{productIdOrSlug}/groups/{groupName}
method: delete
operationId: deleteDeviceGroup
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: /v1/products/{productIdOrSlug}/groups
method: get
operationId: getDeviceGroups
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/groups
method: post
operationId: createDeviceGroup
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: /v1/products/{productIdOrSlug}/impact
method: get
operationId: getDeviceGroupsImpact
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/integrations
method: get
operationId: listIntegrations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/integrations
method: post
operationId: enableGoogleCloudMapsIntegration
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: /v1/integrations/{integrationId}/test
method: post
operationId: PostV1IntegrationsIntegrationidTest
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: /v1/integrations/{integrationId}
method: delete
operationId: Delete_Integration
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: /v1/integrations/{integrationId}
method: put
operationId: PutV1IntegrationsIntegrationid
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: /v1/integrations/{integrationId}
method: get
operationId: Get_Integration
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ledgers/{ledgerName}/instances/{scopeValue}/versions
method: get
operationId: GetV1LedgersLedgernameInstancesScopevalueVersions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ledgers
method: get
operationId: GetV1Ledgers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ledgers
method: post
operationId: PostV1Ledgers
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: /v1/ledgers/{ledgerName}
method: get
operationId: GetV1LedgersLedgername
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ledgers/{ledgerName}
method: put
operationId: PutV1LedgersLedgername
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: /v1/ledgers/{ledgerName}
method: delete
operationId: DeleteV1LedgersLedgername
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: /v1/ledgers/{ledgerName}/instances
method: get
operationId: GetV1LedgersLedgernameInstances
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ledgers/{ledgerName}/instances/{scopeValue}
method: get
operationId: GetV1LedgersLedgernameInstancesScopevalue
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ledgers/{ledgerName}/instances/{scopeValue}
method: put
operationId: PutV1LedgersLedgernameInstancesScopevalue
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: /v1/ledgers/{ledgerName}/instances/{scopeValue}
method: delete
operationId: DeleteV1LedgersLedgernameInstancesScopevalue
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: /v1/ledgers/{ledgerName}/instances/{scopeValue}/versions/{version}
method: get
operationId: GetV1LedgersLedgernameInstancesScopevalueVersionsVersion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/fleet_locations
method: get
operationId: GetFleetLocations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/locations
method: get
operationId: GetLocations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/locations/{deviceId}
method: get
operationId: getLocation
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/logic/functions/{logicFunctionId}/stats
method: get
operationId: GetV1LogicFunctionsLogicfunctionidStats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/logic/execute
method: post
operationId: PostV1LogicExecute
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: /v1/logic/functions
method: get
operationId: GetV1LogicFunctions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/logic/functions
method: post
operationId: PostV1LogicFunctions
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: /v1/logic/functions/{logicFunctionId}
method: get
operationId: GetV1LogicFunctionsLogicfunctionid
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/logic/functions/{logicFunctionId}
method: put
operationId: PutV1LogicFunctionsLogicfunctionid
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: /v1/logic/functions/{logicFunctionId}
method: delete
operationId: DeleteV1LogicFunctionsLogicfunctionid
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: /v1/logic/functions/{logicFunctionId}/runs
method: get
operationId: GetV1LogicFunctionsLogicfunctionidRuns
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/logic/functions/{logicFunctionId}/runs/{logicRunId}
method: get
operationId: GetV1LogicFunctionsLogicfunctionidRunsLogicrunid
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/logic/functions/{logicFunctionId}/runs/{logicRunId}/logs
method: get
operationId: GetV1LogicFunctionsLogicfunctionidRunsLogicrunidLogs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/clients
method: get
operationId: GetV1Clients
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/clients
method: post
operationId: CreateOAuthClient
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: /v1/clients/{clientId}
method: put
operationId: UpdateOAuthClient
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: /v1/clients/{clientId}
method: delete
operationId: DeleteV1ClientsClientid
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: /v1/orgs
method: get
operationId: listOrganizationsForUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/orgs/{orgIdOrSlug}
method: get
operationId: getOrganization
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/orgs/{orgIdOrSlug}/products
method: get
operationId: listOrgProducts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/firmware/{version}
method: get
operationId: getProductFirmwareVersion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/firmware/{version}
method: put
operationId: editProductFirmware
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: /v1/products/{productIdOrSlug}/firmware/{version}
method: delete
operationId: deleteProductFirmware
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: /v1/products/{productIdOrSlug}/firmware
method: get
operationId: listAllProductFirmwares
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/firmware
method: post
operationId: uploadProductFirmware
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: /v1/products/{productIdOrSlug}/firmware/{version}/binary
method: get
operationId: downloadProductFirmwareBinary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/firmware/release
method: put
operationId: releaseProductFirmware
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: /v1/user/products
method: get
operationId: listProducts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}
method: get
operationId: GetProduct
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/team
method: get
operationId: listUsersForProductOrOrg
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/products/{productIdOrSlug}/team
method: post
operationId: createProgrammaticUser
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: /v1/products/{productIdOrSlug}/team/{username}
method: post
operationId: updateProductOrOrgTeamMember
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/particle/refs/heads/main/agentic-access/particle-agentic-access.yml