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: conditional triggers: - abnormal - high-value audit: required - path: /v1/products/{productIdOrSlug}/team/{username} method: delete operationId: removeTeamMember 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}/token method: put operationId: regenerateProductOrOrgProgrammaticUserToken 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/{orgIdOrSlug}/search method: get operationId: searchOrg x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/search method: get operationId: searchSandbox x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/secrets method: get operationId: listSecrets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/secrets method: post operationId: createSecret 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/secrets/{secretName} method: get operationId: getSecrets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/secrets/{secretName} method: put operationId: putSecret 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/secrets/{secretName} method: delete operationId: deleteSecret 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/service_agreements method: get operationId: getServiceAgreements x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/orgs/{orgIdOrSlug}/service_agreements method: get operationId: getServiceAgreementsForOrganization x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/usage_reports/{usageReportId} method: get operationId: getUserUsageReport x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/orgs/{orgSlugOrId}/usage_reports/{usageReportId} method: get operationId: getOrgUsageReport x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/service_agreements/{serviceAgreementId}/usage_reports method: post operationId: createUserUsageReport 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/{orgSlugOrId}/service_agreements/{serviceAgreementId}/usage_reports method: post operationId: createOrgUsageReport 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/service_agreements/{serviceAgreementId}/notifications method: get operationId: GetServiceAgreementNotifications x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/sims/{iccid} method: delete operationId: releaseSimFromAccount 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/sims/{iccid} method: get operationId: listSim x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/sims/{iccid} method: put operationId: PutV1SimsIccid 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/sims method: get operationId: listSims x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/sims/{iccid}/data_usage method: get operationId: simDataUsage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/products/{productIdOrSlug}/sims/data_usage method: get operationId: simFleetDataUsage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/products/{productIdOrSlug}/sims method: post operationId: listProductSims 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/{orgIdOrSlug}/team/provision/Users/{user_id} method: get operationId: GetV1OrgsOrgidorslugTeamProvisionUsersUser_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/orgs/{orgIdOrSlug}/team/provision/Users/{user_id} method: patch operationId: PatchV1OrgsOrgidorslugTeamProvisionUsersUser_id x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/user method: get operationId: GetUser x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user method: put operationId: deleteUser 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/password-reset method: post operationId: UserPasswordForgot 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