Pipedrive · Agentic Access

Pipedrive Agentic Access

x-agentic-access generated

Pipedrive exposes 371 API operations that an AI agent could call, of which 191 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: 180 read, 188 write, and 3 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.

CRMSalesPipeline ManagementSaaSSmall Business
Operations: 371 Acting: 191 Human-in-the-loop: 0 Method: generated

By consequence

read 180 write 188 physical 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
POST /organizationRelationships physical conditional
DELETE /organizationRelationships/{id} physical conditional
PUT /organizationRelationships/{id} physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/pipedrive-v1-openapi.yml, openapi/pipedrive-v2-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: 371
  by_action_class:
    connected: 180
    acting: 191
  by_consequence:
    read: 180
    write: 188
    physical: 3
  human_in_the_loop_required: 0
operations:
- path: /activityFields
  method: get
  operationId: getActivityFields
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - activities:full
    - activities:read
    token:
      max-ttl: 3600
    audit: none
- path: /activityTypes
  method: get
  operationId: getActivityTypes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - activities:full
    - activities:read
    - admin
    token:
      max-ttl: 3600
    audit: none
- path: /activityTypes
  method: post
  operationId: addActivityType
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /activityTypes/{id}
  method: delete
  operationId: deleteActivityType
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /activityTypes/{id}
  method: put
  operationId: updateActivityType
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /billing/subscriptions/addons
  method: get
  operationId: getCompanyAddons
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - users:read
    token:
      max-ttl: 3600
    audit: none
- path: /callLogs
  method: post
  operationId: addCallLog
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - phone-integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /callLogs
  method: get
  operationId: getUserCallLogs
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - phone-integration
    token:
      max-ttl: 3600
    audit: none
- path: /callLogs/{id}
  method: delete
  operationId: deleteCallLog
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - phone-integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /callLogs/{id}
  method: get
  operationId: getCallLog
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - phone-integration
    token:
      max-ttl: 3600
    audit: none
- path: /callLogs/{id}/recordings
  method: post
  operationId: addCallLogAudioFile
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - phone-integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /channels
  method: post
  operationId: addChannel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - messengers-integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /channels/{id}
  method: delete
  operationId: deleteChannel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - messengers-integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /channels/messages/receive
  method: post
  operationId: receiveMessage
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - messengers-integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /channels/{channel-id}/conversations/{conversation-id}
  method: delete
  operationId: deleteConversation
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - messengers-integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /currencies
  method: get
  operationId: getCurrencies
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - base
    token:
      max-ttl: 3600
    audit: none
- path: /deals/archived
  method: get
  operationId: getArchivedDeals
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/summary
  method: get
  operationId: getDealsSummary
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/summary/archived
  method: get
  operationId: getArchivedDealsSummary
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/timeline
  method: get
  operationId: getDealsTimeline
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/timeline/archived
  method: get
  operationId: getArchivedDealsTimeline
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/{id}/changelog
  method: get
  operationId: getDealChangelog
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - recents:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/{id}/duplicate
  method: post
  operationId: duplicateDeal
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /deals/{id}/files
  method: get
  operationId: getDealFiles
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/{id}/flow
  method: get
  operationId: getDealUpdates
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - recents:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/{id}/participantsChangelog
  method: get
  operationId: getDealParticipantsChangelog
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/{id}/followers
  method: get
  operationId: getDealFollowers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/{id}/followers
  method: post
  operationId: addDealFollower
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /deals/{id}/followers/{follower_id}
  method: delete
  operationId: deleteDealFollower
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /deals/{id}/mailMessages
  method: get
  operationId: getDealMailMessages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - mail:full
    - mail:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/{id}/merge
  method: put
  operationId: mergeDeals
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /deals/{id}/participants
  method: get
  operationId: getDealParticipants
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /deals/{id}/participants
  method: post
  operationId: addDealParticipant
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /deals/{id}/participants/{deal_participant_id}
  method: delete
  operationId: deleteDealParticipant
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /deals/{id}/permittedUsers
  method: get
  operationId: getDealUsers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /dealFields
  method: get
  operationId: getDealFields
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - admin
    - deal-fields:full
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /dealFields
  method: post
  operationId: addDealField
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    - deal-fields:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /dealFields
  method: delete
  operationId: deleteDealFields
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    - deal-fields:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /dealFields/{id}
  method: get
  operationId: getDealField
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - admin
    - deal-fields:full
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /dealFields/{id}
  method: delete
  operationId: deleteDealField
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    - deal-fields:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /dealFields/{id}
  method: put
  operationId: updateDealField
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    - deal-fields:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files
  method: get
  operationId: getFiles
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - activities:full
    - activities:read
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /files
  method: post
  operationId: addFile
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files/remote
  method: post
  operationId: addFileAndLinkIt
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files/remoteLink
  method: post
  operationId: linkFileToItem
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files/{id}
  method: delete
  operationId: deleteFile
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files/{id}
  method: get
  operationId: getFile
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - activities:full
    - activities:read
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /files/{id}
  method: put
  operationId: updateFile
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files/{id}/download
  method: get
  operationId: downloadFile
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - activities:full
    - activities:read
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /filters
  method: delete
  operationId: deleteFilters
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /filters
  method: get
  operationId: getFilters
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - activities:full
    - activities:read
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /filters
  method: post
  operationId: addFilter
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /filters/helpers
  method: get
  operationId: getFilterHelpers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - activities:full
    - activities:read
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /filters/{id}
  method: delete
  operationId: deleteFilter
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /filters/{id}
  method: get
  operationId: getFilter
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - activities:full
    - activities:read
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /filters/{id}
  method: put
  operationId: updateFilter
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - activities:full
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /goals
  method: post
  operationId: addGoal
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - goals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /goals/find
  method: get
  operationId: getGoals
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - goals:full
    - goals:read
    token:
      max-ttl: 3600
    audit: none
- path: /goals/{id}
  method: put
  operationId: updateGoal
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - goals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /goals/{id}
  method: delete
  operationId: deleteGoal
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - goals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /goals/{id}/results
  method: get
  operationId: getGoalResult
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - goals:full
    - goals:read
    token:
      max-ttl: 3600
    audit: none
- path: /leads
  method: get
  operationId: getLeads
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - leads:full
    - leads:read
    token:
      max-ttl: 3600
    audit: none
- path: /leads
  method: post
  operationId: addLead
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - leads:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /leads/archived
  method: get
  operationId: getArchivedLeads
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - leads:full
    - leads:read
    token:
      max-ttl: 3600
    audit: none
- path: /leads/{id}
  method: get
  operationId: getLead
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - leads:full
    - leads:read
    token:
      max-ttl: 3600
    audit: none
- path: /leads/{id}
  method: patch
  operationId: updateLead
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - leads:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /leads/{id}
  method: delete
  operationId: deleteLead
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - leads:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /leads/{id}/permittedUsers
  method: get
  operationId: getLeadUsers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - leads:full
    - leads:read
    token:
      max-ttl: 3600
    audit: none
- path: /leads/search
  method: get
  operationId: searchLeads
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - leads:full
    - leads:read
    - search:read
    token:
      max-ttl: 3600
    audit: none
- path: /leadFields
  method: get
  operationId: getLeadFields
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - admin
    - leads:full
    - leads:read
    token:
      max-ttl: 3600
    audit: none
- path: /leadLabels
  method: get
  operationId: getLeadLabels
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - leads:full
    - leads:read
    token:
      max-ttl: 3600
    audit: none
- path: /leadLabels
  method: post
  operationId: addLeadLabel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - leads:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /leadLabels/{id}
  method: patch
  operationId: updateLeadLabel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - leads:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /leadLabels/{id}
  method: delete
  operationId: deleteLeadLabel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - leads:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /leadSources
  method: get
  operationId: getLeadSources
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - leads:full
    - leads:read
    token:
      max-ttl: 3600
    audit: none
- path: /legacyTeams
  method: get
  operationId: getTeams
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - users:read
    token:
      max-ttl: 3600
    audit: none
- path: /legacyTeams
  method: post
  operationId: addTeam
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /legacyTeams/{id}
  method: get
  operationId: getTeam
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - users:read
    token:
      max-ttl: 3600
    audit: none
- path: /legacyTeams/{id}
  method: put
  operationId: updateTeam
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /legacyTeams/{id}/users
  method: get
  operationId: getTeamUsers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - users:read
    token:
      max-ttl: 3600
    audit: none
- path: /legacyTeams/{id}/users
  method: post
  operationId: addTeamUser
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /legacyTeams/{id}/users
  method: delete
  operationId: deleteTeamUser
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - admin
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /legacyTeams/user/{id}
  method: get
  operationId: getUserTeams
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - users:read
    token:
      max-ttl: 3600
    audit: none
- path: /mailbox/mailMessages/{id}
  method: get
  operationId: getMailMessage
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - mail:full
    - mail:read
    token:
      max-ttl: 3600
    audit: none
- path: /mailbox/mailThreads
  method: get
  operationId: getMailThreads
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - mail:full
    - mail:read
    token:
      max-ttl: 3600
    audit: none
- path: /mailbox/mailThreads/{id}
  method: delete
  operationId: deleteMailThread
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - mail:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /mailbox/mailThreads/{id}
  method: get
  operationId: getMailThread
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - mail:full
    - mail:read
    token:
      max-ttl: 3600
    audit: none
- path: /mailbox/mailThreads/{id}
  method: put
  operationId: updateMailThreadDetails
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - mail:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /mailbox/mailThreads/{id}/mailMessages
  method: get
  operationId: getMailThreadMessages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - mail:full
    - mail:read
    token:
      max-ttl: 3600
    audit: none
- path: /meetings/userProviderLinks
  method: post
  operationId: saveUserProviderLink
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - video-calls
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /meetings/userProviderLinks/{id}
  method: delete
  operationId: deleteUserProviderLink
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - video-calls
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /notes
  method: get
  operationId: getNotes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /notes
  method: post
  operationId: addNote
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /notes/{id}
  method: delete
  operationId: deleteNote
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /notes/{id}
  method: get
  operationId: getNote
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /notes/{id}
  method: put
  operationId: updateNote
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /notes/{id}/comments
  method: get
  operationId: getNoteComments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /notes/{id}/comments
  method: post
  operationId: addNoteComment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /notes/{id}/comments/{commentId}
  method: get
  operationId: getComment
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - contacts:full
    - contacts:read
    - deals:full
    - deals:read
    token:
      max-ttl: 3600
    audit: none
- path: /notes/{id}/comments/{commentId}
  method: put
  operationId: updateCommentForNote
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - contacts:full
    - deals:full
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /notes/{id}/comm

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