generated: '2026-07-21' method: generated source: openapi/spot-connect-openapi.json, openapi/spot-devices-openapi.json, openapi/spot-intelligence-openapi.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/. summary: operations: 43 by_action_class: acting: 22 connected: 21 by_consequence: write: 22 read: 21 human_in_the_loop_required: 0 operations: - path: /v1/integrations method: post operationId: CreateIntegration 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 method: get operationId: GetAllIntegrations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations/{integration_id}/devices method: post operationId: CreateIntegrationDevice 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/{integration_id}/devices method: get operationId: GetAllDevicesForIntegration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations/{integration_id}/events/import method: post operationId: CreateIntegrationEvents 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/{integration_id}/event-types method: post operationId: CreateIntegrationEventType 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/{integration_id}/event-types method: get operationId: GetAllEventTypesForIntegration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations/{integration_id} method: delete operationId: DeleteIntegration 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/{integration_id} method: get operationId: GetIntegration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations/{integration_id} method: put operationId: UpdateIntegration 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/{integration_id}/devices/{integration_device_id} method: delete operationId: DeleteIntegrationDevice 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/{integration_id}/devices/{integration_device_id} method: get operationId: GetIntegrationDeviceById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations/{integration_id}/devices/{integration_device_id} method: put operationId: UpdateIntegrationDeviceProperties 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/{integration_id}/events/{integration_event_id} method: delete operationId: DeleteIntegrationEvent 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/{integration_id}/events/{integration_event_id} method: put operationId: UpdateIntegrationEvent 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/{integration_id}/event-types/{integration_event_type_id} method: delete operationId: DeleteIntegrationEventType 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/{integration_id}/event-types/{integration_event_type_id} method: get operationId: GetIntegrationEventTypeById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations/{integration_id}/event-types/{integration_event_type_id} method: put operationId: UpdateIntegrationEventType 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/{integration_id}/events method: get operationId: GetIntegrationEvents x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations/{integration_id}/events method: post operationId: IntegrationEventIngestionWebhook 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/{integration_id}/devices/{integration_device_id}/cameras method: put operationId: UpdateIntegrationDeviceCameras 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/cameras/{cameraId}/footage method: post operationId: CreateHistoricalFootage 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/cameras/shared/search method: post operationId: CreateSharedCameraSearch 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/embeds/live method: post operationId: GenerateLiveEmbedUrl 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/embeds/vod method: post operationId: GenerateVodEmbedUrl 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/appliances/{applianceId} method: get operationId: GetAppliance x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/appliances method: get operationId: GetAppliances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras/{cameraId} method: get operationId: GetCameraById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras/count method: get operationId: GetCameraCount x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras method: get operationId: GetCameras x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras/{cameraId}/footage/{footageId} method: get operationId: GetHistoricalFootage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras/live method: post operationId: GetLiveUrl 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/locations method: get operationId: GetLocations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras/shared/search/{token} method: get operationId: GetSharedCameraSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras/shared/search/{token} method: patch operationId: UpdateSharedCameraSearch 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/cameras/{camera_id}/zones method: get operationId: GetZones x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/audio/play method: post operationId: PlayAudio 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/cameras/{cameraId}/intelligence/{entity}/counting method: get operationId: Counting x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/lpi method: post operationId: CreateInterestList 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/lpi method: get operationId: GetInterestLists x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras/{cameraId}/intelligence/{entity}/idle method: get operationId: Idle x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/lpr/cameras/{camera_id}/report method: get operationId: LprReport x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/cameras/{cameraId}/intelligence/{entity}/presence method: get operationId: Presence x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none