Telnyx · Agentic Access

Telnyx Agentic Access

x-agentic-access generated

Telnyx exposes 1038 API operations that an AI agent could call, of which 553 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: 485 read, 403 write, 89 physical, and 61 safety-critical.

61 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.

CommunicationsCPaaSVoiceSMSIoT
Operations: 1038 Acting: 553 Human-in-the-loop: 61 Method: generated

By consequence

read 485 write 403 physical 89 safety-critical 61

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
POST /addresses/{id}/actions/accept_suggestions safety-critical required
DELETE /ai/embeddings/buckets/{bucket_name} safety-critical required
POST /call_control_applications safety-critical required
DELETE /call_control_applications/{id} safety-critical required
PATCH /call_control_applications/{id} safety-critical required
POST /calls/{call_control_id}/actions/ai_assistant_add_messages safety-critical required
POST /calls/{call_control_id}/actions/ai_assistant_join safety-critical required
POST /calls/{call_control_id}/actions/ai_assistant_start safety-critical required
POST /calls/{call_control_id}/actions/ai_assistant_stop safety-critical required
POST /calls/{call_control_id}/actions/answer safety-critical required
POST /calls/{call_control_id}/actions/bridge safety-critical required
PUT /calls/{call_control_id}/actions/client_state_update safety-critical required
POST /calls/{call_control_id}/actions/enqueue safety-critical required
POST /calls/{call_control_id}/actions/fork_start safety-critical required
POST /calls/{call_control_id}/actions/fork_stop safety-critical required
POST /calls/{call_control_id}/actions/gather safety-critical required
POST /calls/{call_control_id}/actions/gather_stop safety-critical required
POST /calls/{call_control_id}/actions/gather_using_ai safety-critical required
POST /calls/{call_control_id}/actions/gather_using_audio safety-critical required
POST /calls/{call_control_id}/actions/gather_using_speak safety-critical required
POST /calls/{call_control_id}/actions/hangup safety-critical required
POST /calls/{call_control_id}/actions/leave_queue safety-critical required
POST /calls/{call_control_id}/actions/playback_start safety-critical required
POST /calls/{call_control_id}/actions/playback_stop safety-critical required
POST /calls/{call_control_id}/actions/record_pause safety-critical required

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/telnyx-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: 1038
  by_action_class:
    connected: 485
    acting: 553
  by_consequence:
    read: 485
    write: 403
    physical: 89
    safety-critical: 61
  human_in_the_loop_required: 61
operations:
- path: /.well-known/oauth-authorization-server
  method: get
  operationId: GetOAuthAuthorizationServerMetadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /.well-known/oauth-protected-resource
  method: get
  operationId: GetOAuthProtectedResourceMetadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/brand
  method: get
  operationId: GetBrands
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/brand
  method: post
  operationId: CreateBrandPost
  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: /10dlc/brand/feedback/{brandId}
  method: get
  operationId: GetBrandFeedbackById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/brand/smsOtp/{referenceId}
  method: get
  operationId: GetBrandSmsOtpStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/brand/{brandId}
  method: delete
  operationId: DeleteBrand
  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: /10dlc/brand/{brandId}
  method: get
  operationId: GetBrand
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/brand/{brandId}
  method: put
  operationId: UpdateBrand
  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: /10dlc/brand/{brandId}/2faEmail
  method: post
  operationId: ResendBrand2faEmail
  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: /10dlc/brand/{brandId}/externalVetting
  method: get
  operationId: ListExternalVettings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/brand/{brandId}/externalVetting
  method: post
  operationId: PostOrderExternalVetting
  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: /10dlc/brand/{brandId}/externalVetting
  method: put
  operationId: PutExternalVettingRecord
  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: /10dlc/brand/{brandId}/revet
  method: put
  operationId: RevetBrand
  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: /10dlc/brand/{brandId}/smsOtp
  method: get
  operationId: GetBrandSmsOtpStatusByBrandId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/brand/{brandId}/smsOtp
  method: post
  operationId: TriggerBrandSmsOtp
  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: /10dlc/brand/{brandId}/smsOtp
  method: put
  operationId: VerifyBrandSmsOtp
  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: /10dlc/campaign
  method: get
  operationId: GetCampaigns
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/campaign/acceptSharing/{campaignId}
  method: post
  operationId: AcceptCampaign
  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: /10dlc/campaign/usecase/cost
  method: get
  operationId: GetCampaignCost
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/campaign/{campaignId}
  method: delete
  operationId: DeactivateCampaign
  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: /10dlc/campaign/{campaignId}
  method: get
  operationId: GetCampaign
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/campaign/{campaignId}
  method: put
  operationId: UpdateCampaign
  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: /10dlc/campaign/{campaignId}/appeal
  method: post
  operationId: AppealCampaign
  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: /10dlc/campaign/{campaignId}/mnoMetadata
  method: get
  operationId: GetCampaignMnoMetadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/campaign/{campaignId}/operationStatus
  method: get
  operationId: GetCampaignOperationStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/campaign/{campaignId}/osr/attributes
  method: get
  operationId: GetCampaignOsrAttributes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/campaign/{campaignId}/sharing
  method: get
  operationId: GetCampaignSharingStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/campaignBuilder
  method: post
  operationId: PostCampaign
  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: /10dlc/campaignBuilder/brand/{brandId}/usecase/{usecase}
  method: get
  operationId: GetUsecaseQualification
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/enum/{endpoint}
  method: get
  operationId: GetEnumEndpoint
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/partnerCampaign/sharedByMe
  method: get
  operationId: GetPartnerCampaignsSharedByUser
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/partnerCampaign/{campaignId}/sharing
  method: get
  operationId: GetPartnerCampaignSharingStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/partner_campaigns
  method: get
  operationId: GetSharedCampaigns
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/partner_campaigns/{campaignId}
  method: get
  operationId: GetSharedCampaign
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/partner_campaigns/{campaignId}
  method: patch
  operationId: UpdateSharedCampaign
  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: /10dlc/phoneNumberAssignmentByProfile
  method: post
  operationId: PostAssignMessagingProfileToCampaign
  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: /10dlc/phoneNumberAssignmentByProfile/{taskId}
  method: get
  operationId: GetAssignmentTaskStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/phoneNumberAssignmentByProfile/{taskId}/phoneNumbers
  method: get
  operationId: GetPhoneNumberStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/phone_number_campaigns
  method: get
  operationId: GetAllPhoneNumberCampaigns
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/phone_number_campaigns
  method: post
  operationId: CreatePhoneNumberCampaign
  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: /10dlc/phone_number_campaigns/{phoneNumber}
  method: delete
  operationId: DeletePhoneNumberCampaign
  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: /10dlc/phone_number_campaigns/{phoneNumber}
  method: get
  operationId: GetSinglePhoneNumberCampaign
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /10dlc/phone_number_campaigns/{phoneNumber}
  method: put
  operationId: PutPhoneNumberCampaign
  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: /access_ip_address
  method: get
  operationId: ListAccessIpAddresses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /access_ip_address
  method: post
  operationId: CreateAccessIpAddress
  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: /access_ip_address/{access_ip_address_id}
  method: delete
  operationId: DeleteAccessIpAddress
  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: /access_ip_address/{access_ip_address_id}
  method: get
  operationId: GetAccessIpAddress
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /access_ip_ranges
  method: get
  operationId: ListAccessIpRanges
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /access_ip_ranges
  method: post
  operationId: CreateAccessIPRange
  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: /access_ip_ranges/{access_ip_range_id}
  method: delete
  operationId: DeleteAccessIpRange
  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: /actions/purchase/esims
  method: post
  operationId: PurchaseESim
  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: /actions/register/sim_cards
  method: post
  operationId: RegisterSimCards
  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: /addresses
  method: get
  operationId: FindAddresses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /addresses
  method: post
  operationId: CreateAddress
  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: /addresses/actions/validate
  method: post
  operationId: ValidateAddress
  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: /addresses/{id}
  method: delete
  operationId: DeleteAddress
  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: /addresses/{id}
  method: get
  operationId: GetAddress
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /addresses/{id}/actions/accept_suggestions
  method: post
  operationId: acceptAddressSuggestions
  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
- path: /advanced_orders
  method: get
  operationId: list_advanced_orders_v2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /advanced_orders
  method: post
  operationId: create_advanced_order_v2
  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: /advanced_orders/{advanced-order-id}/requirement_group
  method: patch
  operationId: update_advanced_order_v2
  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: /advanced_orders/{order_id}
  method: get
  operationId: get_advanced_order_v2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants
  method: get
  operationId: get_assistants_public_assistants_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants
  method: post
  operationId: create_new_assistant_public_assistants_post
  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: /ai/assistants/import
  method: post
  operationId: import_assistants_public_assistants_import_post
  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: /ai/assistants/tags
  method: get
  operationId: get_all_assistant_tags
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/tests
  method: get
  operationId: get_assistant_tests_public_assistants_tests_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/tests
  method: post
  operationId: create_assistant_test_public_assistants_tests_post
  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: /ai/assistants/tests/test-suites
  method: get
  operationId: fetch_test_suites_public_assistants_tests_test_suites_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/tests/test-suites/{suite_name}/runs
  method: get
  operationId: get_test_suite_runs_for_test_public_assistants_tests_test_suites__suite_name__runs_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/tests/test-suites/{suite_name}/runs
  method: post
  operationId: trigger_test_suite_runs_public_assistants_tests_test_suites__suite_name__runs_post
  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: /ai/assistants/tests/{test_id}
  method: delete
  operationId: delete_assistant_test_public_assistants_tests__test_id__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: /ai/assistants/tests/{test_id}
  method: get
  operationId: get_assistant_test_public_assistants_tests__test_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/tests/{test_id}
  method: put
  operationId: update_assistant_test_public_assistants_tests__test_id__put
  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: /ai/assistants/tests/{test_id}/runs
  method: get
  operationId: get_test_runs_for_test_public_assistants_tests__test_id__runs_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/tests/{test_id}/runs
  method: post
  operationId: trigger_test_run_public_assistants_tests__test_id__runs_post
  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: /ai/assistants/tests/{test_id}/runs/{run_id}
  method: get
  operationId: get_test_run_public_assistants_tests__test_id__runs__run_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/{assistant_id}
  method: delete
  operationId: delete_assistant_public_assistants__assistant_id__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: /ai/assistants/{assistant_id}
  method: get
  operationId: get_assistant_public_assistants__assistant_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/{assistant_id}
  method: post
  operationId: update_assistant_public_assistants__assistant_id__post
  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: /ai/assistants/{assistant_id}/canary-deploys
  method: delete
  operationId: delete_canary_deploy_assistants__assistant_id__canary_deploys_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: /ai/assistants/{assistant_id}/canary-deploys
  method: get
  operationId: get_canary_deploy_assistants__assistant_id__canary_deploys_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/{assistant_id}/canary-deploys
  method: post
  operationId: create_canary_deploy_assistants__assistant_id__canary_deploys_post
  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: /ai/assistants/{assistant_id}/canary-deploys
  method: put
  operationId: update_canary_deploy_assistants__assistant_id__canary_deploys_put
  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: /ai/assistants/{assistant_id}/chat
  method: post
  operationId: assistant_chat_public_assistants__assistant_id__chat_post
  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: /ai/assistants/{assistant_id}/chat/sms
  method: post
  operationId: assistant_sms_chat_assistants__assistant_id__chat_sms_post
  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: /ai/assistants/{assistant_id}/clone
  method: post
  operationId: clone_assistant_public_assistants__assistant_id__clone_post
  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: /ai/assistants/{assistant_id}/scheduled_events
  method: get
  operationId: get_scheduled_events
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/{assistant_id}/scheduled_events
  method: post
  operationId: create_scheduled_event
  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: /ai/assistants/{assistant_id}/scheduled_events/{event_id}
  method: delete
  operationId: delete_scheduled_event
  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: /ai/assistants/{assistant_id}/scheduled_events/{event_id}
  method: get
  operationId: get_scheduled_event
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/{assistant_id}/tags
  method: post
  operationId: add_assistant_tag
  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: /ai/assistants/{assistant_id}/tags/{tag}
  method: delete
  operationId: remove_assistant_tag
  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: /ai/assistants/{assistant_id}/texml
  method: get
  operationId: get_assistant_texml_public_assistants__assistant_id__texml_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/{assistant_id}/tools/{tool_id}
  method: delete
  operationId: remove_assistant_tool
  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: /ai/assistants/{assistant_id}/tools/{tool_id}
  method: put
  operationId: add_assistant_tool
  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: /ai/assistants/{assistant_id}/tools/{tool_id}/test
  method: post
  operationId: test_assistant_tool_public_assistants__assistant_id__tools__tool_id__test_post
  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: /ai/assistants/{assistant_id}/versions
  method: get
  operationId: get_assistant_versions_public_assistants__assistant_id__versions_get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/{assistant_id}/versions/{version_id}
  method: delete
  operationId: delete_assistant_version_public_assistants__assistant_id__versions__version_id__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: /ai/assistants/{assistant_id}/versions/{version_id}
  method: get
  operationId: get_assistant_version_public_assistants__assistant_id__versions__version_id__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /ai/assistants/{assistant_id}/versions/{version_id}
  method: post
  operationId: update_assistant_version_public_assistants__assistant_id__versions__version_id__post
  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-val

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