The Things Network / The Things Stack Agentic Access

x-agentic-access generated

The Things Network / The Things Stack exposes 329 API operations that an AI agent could call, of which 174 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: 155 read, 152 write, 19 physical, and 3 safety-critical.

3 operations 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.

LoRaWANIoTInternet Of ThingsOpen SourceNetwork ServerLPWANTelemetrySensorsGatewaysConnectivityApache 2.0
Operations: 329 Acting: 174 Human-in-the-loop: 3 Method: generated

By consequence

read 155 write 152 physical 19 safety-critical 3

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.

MethodPathConsequenceHuman-in-loop
DELETE /invitations safety-critical required
PATCH /ns/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id} safety-critical required
DELETE /users/{user_ids.user_id}/sessions/{session_id} safety-critical required
DELETE /as/applications/{application_ids.application_id}/devices/batch physical conditional
DELETE /as/applications/{application_ids.application_id}/devices/{device_id} physical conditional
POST /as/applications/{end_device.ids.application_ids.application_id}/devices physical conditional
PUT /as/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id} physical conditional
POST /edcs/applications/{application_ids.application_id}/authorize physical conditional
DELETE /edcs/applications/{application_id}/authorize physical conditional
POST /events physical conditional
POST /gcls/claim physical conditional
POST /invitations physical conditional
DELETE /js/applications/{application_ids.application_id}/devices/batch physical conditional
DELETE /js/applications/{application_ids.application_id}/devices/{device_id} physical conditional
PUT /js/applications/{application_ids.application_id}/provision-devices physical conditional
POST /js/applications/{end_device.ids.application_ids.application_id}/devices physical conditional
PUT /js/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id} physical conditional
DELETE /ns/applications/{application_ids.application_id}/devices/batch physical conditional
POST /ns/applications/{application_ids.application_id}/devices/mac_settings_profile/batch physical conditional
DELETE /ns/applications/{application_ids.application_id}/devices/{device_id} physical conditional
POST /ns/applications/{end_device.ids.application_ids.application_id}/devices physical conditional
PUT /ns/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id} physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/the-things-stack-application-server-openapi.yml, openapi/the-things-stack-end-device-registry-openapi.yml,
  openapi/the-things-stack-events-openapi.yml, openapi/the-things-stack-gateway-server-openapi.yml,
  openapi/the-things-stack-identity-server-openapi.yml, openapi/the-things-stack-integrations-openapi.yml,
  openapi/the-things-stack-join-server-openapi.yml, openapi/the-things-stack-network-server-openapi.yml,
  openapi/the-things-stack-packet-broker-agent-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: 329
  by_action_class:
    connected: 155
    acting: 174
  by_consequence:
    read: 155
    write: 152
    physical: 19
    safety-critical: 3
  human_in_the_loop_required: 3
operations:
- path: /applications
  method: get
  operationId: ApplicationRegistry_List
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application.ids.application_id}
  method: put
  operationId: ApplicationRegistry_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: /applications/{application_ids.application_id}
  method: get
  operationId: ApplicationRegistry_Get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/api-keys
  method: get
  operationId: ApplicationAccess_ListAPIKeys
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/api-keys
  method: post
  operationId: ApplicationAccess_CreateAPIKey
  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: /applications/{application_ids.application_id}/api-keys/{api_key.id}
  method: put
  operationId: ApplicationAccess_UpdateAPIKey
  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: /applications/{application_ids.application_id}/api-keys/{key_id}
  method: get
  operationId: ApplicationAccess_GetAPIKey
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/api-keys/{key_id}
  method: delete
  operationId: ApplicationAccess_DeleteAPIKey
  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: /applications/{application_ids.application_id}/collaborator/organization/{collaborator.organization_ids.organization_id}
  method: get
  operationId: ApplicationAccess_GetCollaborator2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/collaborator/organization/{collaborator_ids.organization_ids.organization_id}
  method: delete
  operationId: ApplicationAccess_DeleteCollaborator2
  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: /applications/{application_ids.application_id}/collaborator/user/{collaborator.user_ids.user_id}
  method: get
  operationId: ApplicationAccess_GetCollaborator
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/collaborator/user/{collaborator_ids.user_ids.user_id}
  method: delete
  operationId: ApplicationAccess_DeleteCollaborator
  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: /applications/{application_ids.application_id}/collaborators
  method: get
  operationId: ApplicationAccess_ListCollaborators
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/collaborators
  method: put
  operationId: ApplicationAccess_SetCollaborator
  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: /applications/{application_id}
  method: delete
  operationId: ApplicationRegistry_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: /applications/{application_id}/dev-eui
  method: post
  operationId: ApplicationRegistry_IssueDevEUI
  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: /applications/{application_id}/purge
  method: delete
  operationId: ApplicationRegistry_Purge
  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: /applications/{application_id}/restore
  method: post
  operationId: ApplicationRegistry_Restore
  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: /applications/{application_id}/rights
  method: get
  operationId: ApplicationAccess_ListRights
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{application_ids.application_id}/devices/batch
  method: delete
  operationId: AsEndDeviceBatchRegistry_Delete
  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: /as/applications/{application_ids.application_id}/devices/{device_id}
  method: delete
  operationId: AsEndDeviceRegistry_Delete
  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: /as/applications/{application_ids.application_id}/devices/{device_id}/down
  method: get
  operationId: AppAs_DownlinkQueueList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{application_ids.application_id}/devices/{device_id}/packages
  method: get
  operationId: ApplicationPackageRegistry_List
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{application_ids.application_id}/link
  method: get
  operationId: As_GetLink
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{application_ids.application_id}/link
  method: put
  operationId: As_SetLink
  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: /as/applications/{application_ids.application_id}/packages/associations/{f_port}
  method: delete
  operationId: ApplicationPackageRegistry_DeleteDefaultAssociation
  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: /as/applications/{application_ids.application_id}/packages/storage/{type}
  method: get
  operationId: ApplicationUpStorage_GetStoredApplicationUp2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{application_ids.application_id}/packages/storage/{type}/count
  method: get
  operationId: ApplicationUpStorage_GetStoredApplicationUpCount2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{application_id}/link
  method: delete
  operationId: As_DeleteLink
  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: /as/applications/{application_id}/link/stats
  method: get
  operationId: As_GetLinkStats
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{application_id}/mqtt-connection-info
  method: get
  operationId: AppAs_GetMQTTConnectionInfo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{association.ids.end_device_ids.application_ids.application_id}/devices/{association.ids.end_device_ids.device_id}/packages/associations/{association.ids.f_port}
  method: put
  operationId: ApplicationPackageRegistry_SetAssociation
  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: /as/applications/{default.ids.application_ids.application_id}/packages/associations/{default.ids.f_port}
  method: put
  operationId: ApplicationPackageRegistry_SetDefaultAssociation
  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: /as/applications/{end_device.ids.application_ids.application_id}/devices
  method: post
  operationId: AsEndDeviceRegistry_Set2
  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: /as/applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}
  method: put
  operationId: AsEndDeviceRegistry_Set
  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: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}
  method: get
  operationId: AsEndDeviceRegistry_Get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/down/decode
  method: post
  operationId: AppAs_DecodeDownlink
  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: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/down/encode
  method: post
  operationId: AppAs_EncodeDownlink
  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: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/down/push
  method: post
  operationId: AppAs_DownlinkQueuePush
  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: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/down/replace
  method: post
  operationId: AppAs_DownlinkQueueReplace
  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: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/packages/associations/{f_port}
  method: delete
  operationId: ApplicationPackageRegistry_DeleteAssociation
  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: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/packages/storage/{type}
  method: get
  operationId: ApplicationUpStorage_GetStoredApplicationUp
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/packages/storage/{type}/count
  method: get
  operationId: ApplicationUpStorage_GetStoredApplicationUpCount
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/up/decode
  method: post
  operationId: AppAs_DecodeUplink
  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: /as/applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}/up/simulate
  method: post
  operationId: AppAs_SimulateUplink
  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: /as/applications/{ids.application_ids.application_id}/devices/{ids.device_id}/packages/associations
  method: get
  operationId: ApplicationPackageRegistry_ListAssociations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{ids.application_ids.application_id}/packages/associations/{ids.f_port}
  method: get
  operationId: ApplicationPackageRegistry_GetDefaultAssociation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{ids.application_id}/packages/associations
  method: get
  operationId: ApplicationPackageRegistry_ListDefaultAssociations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/applications/{ids.end_device_ids.application_ids.application_id}/devices/{ids.end_device_ids.device_id}/packages/associations/{ids.f_port}
  method: get
  operationId: ApplicationPackageRegistry_GetAssociation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /as/configuration
  method: get
  operationId: As_GetConfiguration
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /js/applications/{application_ids.application_id}/settings
  method: get
  operationId: ApplicationActivationSettingRegistry_Get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /js/applications/{application_ids.application_id}/settings
  method: delete
  operationId: ApplicationActivationSettingRegistry_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: /js/applications/{application_ids.application_id}/settings
  method: post
  operationId: ApplicationActivationSettingRegistry_Set
  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: /organizations/{collaborator.organization_ids.organization_id}/applications
  method: get
  operationId: ApplicationRegistry_List3
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /organizations/{collaborator.organization_ids.organization_id}/applications
  method: post
  operationId: ApplicationRegistry_Create2
  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: /users/{collaborator.user_ids.user_id}/applications
  method: get
  operationId: ApplicationRegistry_List2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /users/{collaborator.user_ids.user_id}/applications
  method: post
  operationId: ApplicationRegistry_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: /applications/{application_ids.application_id}/devices
  method: get
  operationId: EndDeviceRegistry_List
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/devices/batch
  method: get
  operationId: EndDeviceBatchRegistry_Get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/devices/batch
  method: delete
  operationId: EndDeviceBatchRegistry_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: /applications/{application_ids.application_id}/devices/count
  method: get
  operationId: EndDeviceRegistry_Count
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /applications/{application_ids.application_id}/devices/filter
  method: post
  operationId: EndDeviceRegistry_List2
  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: /applications/{application_ids.application_id}/devices/{device_id}
  method: delete
  operationId: EndDeviceRegistry_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: /applications/{end_device.ids.application_ids.application_id}/devices
  method: post
  operationId: EndDeviceRegistry_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: /applications/{end_device.ids.application_ids.application_id}/devices/{end_device.ids.device_id}
  method: put
  operationId: EndDeviceRegistry_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: /applications/{end_device_ids.application_ids.application_id}/devices/{end_device_ids.device_id}
  method: get
  operationId: EndDeviceRegistry_Get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/brands
  method: get
  operationId: DeviceRepository_ListBrands2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/brands/{brand_id}
  method: get
  operationId: DeviceRepository_GetBrand2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/brands/{brand_id}/models
  method: get
  operationId: DeviceRepository_ListModels4
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/brands/{brand_id}/models/{model_id}
  method: get
  operationId: DeviceRepository_GetModel2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/decoder
  method: get
  operationId: DeviceRepository_GetDownlinkDecoder2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/encoder
  method: get
  operationId: DeviceRepository_GetDownlinkEncoder2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/uplink/decoder
  method: get
  operationId: DeviceRepository_GetUplinkDecoder2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/template
  method: get
  operationId: DeviceRepository_GetTemplate3
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/models
  method: get
  operationId: DeviceRepository_ListModels3
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/applications/{application_ids.application_id}/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template
  method: get
  operationId: DeviceRepository_GetTemplate4
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/brands
  method: get
  operationId: DeviceRepository_ListBrands
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/brands/{brand_id}
  method: get
  operationId: DeviceRepository_GetBrand
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/brands/{brand_id}/models
  method: get
  operationId: DeviceRepository_ListModels2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/brands/{brand_id}/models/{model_id}
  method: get
  operationId: DeviceRepository_GetModel
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/decoder
  method: get
  operationId: DeviceRepository_GetDownlinkDecoder
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/encoder
  method: get
  operationId: DeviceRepository_GetDownlinkEncoder
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/uplink/decoder
  method: get
  operationId: DeviceRepository_GetUplinkDecoder
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/template
  method: get
  operationId: DeviceRepository_GetTemplate
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/models
  method: get
  operationId: DeviceRepository_ListModels
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dr/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template
  method: get
  operationId: DeviceRepository_GetTemplate2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /edcs/applications/{application_ids.application_id}/authorize
  method: post
  operationId: EndDeviceClaimingServer_AuthorizeApplication
  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: /edcs/applications/{application_id}/authorize
  method: delete
  operationId: EndDeviceClaimingServer_UnauthorizeApplication
  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: /edcs/claim
  method: post
  operationId: EndDeviceClaimingServer_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: /edcs/claim/info
  method: post
  operationId: EndDeviceClaimingServer_GetInfoByJoinEUI
  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: /edcs/claim/info/batch
  method: post
  operationId: EndDeviceBatchClaimingServer_GetInfoByJoinEUIs
  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: /edcs/claim/{application_ids.application_id}/devices/batch
  method: delete
  operationId: EndDeviceBatchClaimingServer_Unclaim
  x-agentic-access:
    action-class: acting
    cons

# --- truncated at 32 KB (110 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/the-things-network/refs/heads/main/agentic-access/the-things-network-agentic-access.yml