Arduino Agentic Access
Arduino exposes 190 API operations that an AI agent could call, of which 116 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: 74 read, 114 write, and 2 physical.
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 | /iot/v1/things/{id}/shadow/send | physical | conditional |
| PUT | /iot/v2/devices/{id}/ota | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/arduino-iot-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: 190
by_action_class:
connected: 74
acting: 116
by_consequence:
read: 74
write: 114
physical: 2
human_in_the_loop_required: 0
operations:
- path: /iot/apidocs
method: get
operationId: public#/iot/apidocs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/docs
method: get
operationId: public#/iot/docs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/ota/{id}
method: get
operationId: ota#getShortlink
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/public-swagger.json
method: get
operationId: public#/iot/public-swagger.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/swagger.json
method: get
operationId: public#/iot/swagger.json
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/actions
method: get
operationId: actions_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/actions
method: post
operationId: actions_v1#create
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: /iot/v1/actions/{id}
method: delete
operationId: actions_v1#delete
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: /iot/v1/actions/{id}
method: get
operationId: actions_v1#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/actions/{id}
method: put
operationId: actions_v1#update
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: /iot/v1/actions/{id}/unsubscribe
method: put
operationId: actions_v1#Unsubscribe
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: /iot/v1/cleanup
method: post
operationId: cleanup#iot
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: /iot/v1/clients
method: get
operationId: clients_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/clients
method: put
operationId: clients_v1#create
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: /iot/v1/clients/token
method: post
operationId: clients_v1#token
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: /iot/v1/clients/{id}
method: delete
operationId: clients_v1#delete
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: /iot/v1/clients/{id}
method: get
operationId: clients_v1#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/clients/{id}
method: patch
operationId: clients_v1#update
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: /iot/v1/clients/{id}
method: post
operationId: clients_v1#enable
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: /iot/v1/clients/{id}/secret
method: post
operationId: clients_v1#regenerate
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: /iot/v1/compact_triggers
method: get
operationId: compact_triggers_v1#listCompact
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/dashboards_shares/{user_id}
method: delete
operationId: dashboard_shares_v1#deleteByUser
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: /iot/v1/lora-app/
method: get
operationId: lora_app_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/lora-app/
method: put
operationId: lora_app_v1#create
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: /iot/v1/lora-app/{label}
method: delete
operationId: lora_app_v1#delete
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: /iot/v1/lora-app/{label}
method: post
operationId: lora_app_v1#update
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: /iot/v1/lora-apps/
method: get
operationId: lora_apps_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/lora-apps/
method: post
operationId: lora_apps_v1#update
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: /iot/v1/lora-devices/
method: put
operationId: lora_devices_v1#create
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: /iot/v1/lora-freq-plans/
method: get
operationId: lora_freq_plan_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/lora-gw/
method: put
operationId: lora_gw_v1#create
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: /iot/v1/lora-gw/{id}
method: delete
operationId: lora_gw_v1#delete
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: /iot/v1/lora-gw/{id}
method: get
operationId: lora_gw_v1#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/lora-gw/{id}/claim
method: post
operationId: lora_gw_v1#claim
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: /iot/v1/lora-gw/{id}/unclaim
method: post
operationId: lora_gw_v1#unclaim
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: /iot/v1/manage/org/{id}
method: delete
operationId: manage#delete_org
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: /iot/v1/manage/users/{id}
method: delete
operationId: manage#delete_user
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: /iot/v1/manage/users/{id}/devices
method: delete
operationId: manage#delete_user_devices
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: /iot/v1/manage/users/{id}/export
method: get
operationId: manage#export_user
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/network_credentials/{type}
method: get
operationId: network_credentials_v1#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/network_credentials/{type}/connections
method: get
operationId: network_credentials_v1#showByDevice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/properties
method: get
operationId: properties#listAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/property_types
method: get
operationId: property_types_v1#listTypes
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/series/batch_query
method: post
operationId: series_v1#batch_query
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: /iot/v1/series/batch_query_raw
method: post
operationId: series_v1#batch_query_raw
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: /iot/v1/series/batch_query_raw/lastvalue
method: post
operationId: series_v1#batch_query_raw_last_value
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: /iot/v1/series/batch_query_sampling
method: post
operationId: series_v1#batch_query_sampling
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: /iot/v1/series/historic_data
method: post
operationId: series_v1#historic_data
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: /iot/v1/supported/devices
method: get
operationId: supported_v1#devices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/sync
method: get
operationId: sync_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/sync
method: put
operationId: sync_v1#create
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: /iot/v1/sync/{id}
method: delete
operationId: sync_v1#delete
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: /iot/v1/sync/{id}
method: get
operationId: sync_v1#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/sync/{id}
method: post
operationId: sync_v1#update
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: /iot/v1/templates
method: put
operationId: templates#apply
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: /iot/v1/things
method: get
operationId: things_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/things
method: put
operationId: things_v1#create
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: /iot/v1/things/publish/raw_cbor
method: put
operationId: thing_properties_v1#publishRaw
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: /iot/v1/things/{id}
method: delete
operationId: things_v1#delete
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: /iot/v1/things/{id}
method: get
operationId: things_v1#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/things/{id}
method: post
operationId: things_v1#update
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: /iot/v1/things/{id}/device
method: get
operationId: things_v1#showDevice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/things/{id}/layout
method: get
operationId: things_v1#layout
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/things/{id}/properties
method: get
operationId: thing_properties_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/things/{id}/properties
method: put
operationId: thing_properties_v1#create
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: /iot/v1/things/{id}/properties/{pid}
method: delete
operationId: thing_properties_v1#delete
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: /iot/v1/things/{id}/properties/{pid}
method: get
operationId: thing_properties_v1#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/things/{id}/properties/{pid}
method: post
operationId: thing_properties_v1#update
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: /iot/v1/things/{id}/properties/{pid}/publish
method: put
operationId: thing_properties_v1#publish
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: /iot/v1/things/{id}/properties/{pid}/timeseries
method: get
operationId: thing_properties_v1#timeseries
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/things/{id}/publish
method: put
operationId: thing_properties_v1#publishMulti
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: /iot/v1/things/{id}/shadow/send
method: post
operationId: things_v1#shadow
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: /iot/v1/things/{id}/sketch
method: delete
operationId: things_v1#deleteSketch
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: /iot/v1/things/{id}/sketch
method: put
operationId: things_v1#createSketch
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: /iot/v1/things/{id}/sketch/{sketchId}
method: put
operationId: things_v1#updateSketch
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: /iot/v1/things/{id}/sketch/{sketchId}/rename
method: put
operationId: things_v1#updateSketchName
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: /iot/v1/things/{id}/tags
method: get
operationId: things_v1_tags#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/things/{id}/tags
method: put
operationId: things_v1_tags#upsert
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: /iot/v1/things/{id}/tags/{key}
method: delete
operationId: things_v1_tags#delete
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: /iot/v1/triggers
method: get
operationId: triggers_v1#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/triggers
method: put
operationId: triggers_v1#create
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: /iot/v1/triggers/{id}
method: delete
operationId: triggers_v1#delete
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: /iot/v1/triggers/{id}
method: get
operationId: triggers_v1#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/triggers/{id}
method: patch
operationId: triggers_v1#patch
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: /iot/v1/triggers/{id}
method: post
operationId: triggers_v1#update
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: /iot/v1/triggers/{id}/template
method: get
operationId: triggers_v1#template
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/triggers/{id}/unsubscribe
method: post
operationId: triggers_v1#unsubscribe
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: /iot/v1/usage/batch
method: post
operationId: usage_internal#batch_ingest
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: /iot/v1/usage/daily
method: get
operationId: usage_v1#daily
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/usage/monthly
method: get
operationId: usage_v1#monthly
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/usage/things/daily
method: get
operationId: usage_v1#things_daily
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/usage/things/monthly
method: get
operationId: usage_v1#things_monthly
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/users/byEmail/{email}
method: get
operationId: users_v1#verifyEmail
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/users/byId/{user_id}
method: get
operationId: users_v1#getByID
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v1/users/byUsername/{username}
method: get
operationId: users_v1#byUsername
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v2/binaries/{name}
method: get
operationId: binaries_v2#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v2/compact_dashboards
method: get
operationId: compact_dashboards_v2#listCompact
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v2/compact_devices
method: get
operationId: compact_devices_v2#listCompact
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v2/compact_things
method: get
operationId: compact_things_v2#listCompact
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v2/dashboards
method: get
operationId: dashboards_v2#list
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v2/dashboards
method: post
operationId: dashboards_v2#create
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: /iot/v2/dashboards/{id}
method: delete
operationId: dashboards_v2#delete
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: /iot/v2/dashboards/{id}
method: get
operationId: dashboards_v2#show
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v2/dashboards/{id}
method: patch
operationId: dashboards_v2#patch
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: /iot/v2/dashboards/{id}
method: put
operationId: dashboards_v2#update
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: /iot/v2/dashboards/{id}/clone
method: put
operationId: dashboards_v2#clone
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: /iot/v2/dashboards/{id}/share_request
method: put
operationId: dashboards_v2#requestAccess
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: /iot/v2/dashboards/{id}/shares
method: get
operationId: dashboards_v2#listShares
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iot/v2/dashboards/{id}/shares
method: put
operationId: dashboards_v2#share
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: /iot/v2/dashboards/{id}/shares/{user_id}
method: delete
operationId: dashboards_v2#delete
# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/arduino/refs/heads/main/agentic-access/arduino-agentic-access.yml