Spot · Agentic Access
Spot Agentic Access
x-agentic-access
generated
Spot exposes 43 API operations that an AI agent could call, of which 22 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: 21 read and 22 write.
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.
CompanyVideoPhysical SecuritySurveillanceComputer VisionArtificial IntelligenceCamerasAnalyticsLicense Plate RecognitionWebhooksIntegrations
Operations: 43
Acting: 22
Human-in-the-loop: 0
Method: generated
By consequence
read 21
write 22
Source
Agentic Access
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