Socket · Agentic Access

Socket Agentic Access

x-agentic-access generated

Socket exposes 96 API operations that an AI agent could call, of which 44 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: 52 read, 43 write, and 1 safety-critical.

1 operation 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.

CompanySecuritySoftware Supply Chain SecurityDependency ScanningSoftware Composition AnalysisVulnerability ManagementOpen Source SecurityDevSecOpsSBOMPackage Analysis
Operations: 96 Acting: 44 Human-in-the-loop: 1 Method: generated

By consequence

read 52 write 43 safety-critical 1

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 /orgs/{org_slug}/api-tokens/revoke safety-critical required

Source

Agentic Access

Raw ↑
generated: '2026-07-21'
method: generated
source: openapi/socket-openapi-original.json
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 96
  by_action_class:
    acting: 44
    connected: 52
  by_consequence:
    write: 43
    read: 52
    safety-critical: 1
  human_in_the_loop_required: 1
operations:
- path: /purl
  method: post
  operationId: batchPackageFetch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - packages:list
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /dependencies/search
  method: post
  operationId: searchDependencies
  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: /dependencies/upload
  method: post
  operationId: createDependenciesSnapshot
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - report:write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/full-scans
  method: get
  operationId: getOrgFullScanList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - full-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/full-scans
  method: post
  operationId: CreateOrgFullScan
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - full-scans:create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/full-scans/{full_scan_id}
  method: get
  operationId: getOrgFullScan
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - full-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/full-scans/{full_scan_id}
  method: delete
  operationId: deleteOrgFullScan
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - full-scans:delete
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/full-scans/{full_scan_id}/metadata
  method: get
  operationId: getOrgFullScanMetadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - full-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/full-scans/diff
  method: get
  operationId: GetOrgDiffScan
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - full-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/full-scans/diff/gfm
  method: get
  operationId: GetOrgFullScanDiffGfm
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - full-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/full-scans/{full_scan_id}/files/tar
  method: get
  operationId: downloadOrgFullScanFilesAsTar
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - full-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/full-scans/archive
  method: post
  operationId: CreateOrgFullScanArchive
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - full-scans:create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/full-scans/{full_scan_id}/rescan
  method: post
  operationId: rescanOrgFullScan
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - full-scans:create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/full-scans/{full_scan_id}/format/csv
  method: post
  operationId: getOrgFullScanCsv
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - full-scans:list
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/full-scans/{full_scan_id}/format/pdf
  method: post
  operationId: getOrgFullScanPdf
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - full-scans:list
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/export/cdx/{id}
  method: get
  operationId: exportCDX
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - report:read
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/export/openvex/{id}
  method: get
  operationId: exportOpenVEX
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - report:read
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/export/spdx/{id}
  method: get
  operationId: exportSPDX
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - report:read
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/diff-scans
  method: get
  operationId: listOrgDiffScans
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - diff-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/diff-scans/{diff_scan_id}
  method: get
  operationId: getDiffScanById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - diff-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/diff-scans/{diff_scan_id}
  method: delete
  operationId: deleteOrgDiffScan
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - diff-scans:delete
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/diff-scans/{diff_scan_id}/gfm
  method: get
  operationId: GetDiffScanGfm
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - diff-scans:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/diff-scans/from-repo/{repo_slug}
  method: post
  operationId: createOrgRepoDiff
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - diff-scans:create
    - full-scans:create
    - repo:list
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/diff-scans/from-ids
  method: post
  operationId: createOrgDiffScanFromIds
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - diff-scans:create
    - full-scans:list
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/triage/alerts
  method: get
  operationId: getOrgTriage
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - triage:alerts-list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/triage/alerts
  method: post
  operationId: updateOrgAlertTriage
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - triage:alerts-update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/triage/alerts/{uuid}
  method: delete
  operationId: deleteOrgAlertTriage
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - triage:alerts-update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/alerts/resolutions
  method: get
  operationId: getOrgAlertResolutions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alert-resolution:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/alerts/resolutions/{uuid}
  method: get
  operationId: getOrgAlertResolution
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alert-resolution:read
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/alerts/resolutions/{uuid}
  method: delete
  operationId: deleteOrgAlertResolution
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alert-resolution:delete
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos
  method: get
  operationId: getOrgRepoList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - repo:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/repos
  method: post
  operationId: createOrgRepo
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo:create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/{repo_slug}
  method: get
  operationId: getOrgRepo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - repo:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/repos/{repo_slug}
  method: post
  operationId: updateOrgRepo
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/{repo_slug}
  method: delete
  operationId: deleteOrgRepo
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo:delete
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/labels/{label_id}/associate
  method: post
  operationId: associateOrgRepoLabel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo-label:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/labels
  method: post
  operationId: createOrgRepoLabel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo-label:create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/labels
  method: get
  operationId: getOrgRepoLabelList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - repo-label:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/repos/labels/{label_id}
  method: delete
  operationId: deleteOrgRepoLabel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo-label:delete
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/labels/{label_id}
  method: get
  operationId: getOrgRepoLabel
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - repo-label:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/repos/labels/{label_id}
  method: put
  operationId: updateOrgRepoLabel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo-label:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/labels/{label_id}/label-setting
  method: delete
  operationId: deleteOrgRepoLabelSetting
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo-label:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/labels/{label_id}/label-setting
  method: get
  operationId: getOrgRepoLabelSetting
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - repo-label:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/repos/labels/{label_id}/label-setting
  method: put
  operationId: updateOrgRepoLabelSetting
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo-label:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/repos/labels/{label_id}/disassociate
  method: post
  operationId: disassociateOrgRepoLabel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - repo-label:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/settings/integrations/{integration_id}/events
  method: get
  operationId: getIntegrationEvents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - integration:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/settings/security-policy
  method: get
  operationId: getOrgSecurityPolicy
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - security-policy:read
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/settings/security-policy
  method: post
  operationId: updateOrgSecurityPolicy
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - security-policy:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/settings/license-policy
  method: get
  operationId: getOrgLicensePolicy
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - license-policy:read
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/settings/license-policy
  method: post
  operationId: updateOrgLicensePolicy
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - license-policy:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/settings/license-policy/view
  method: get
  operationId: viewLicensePolicy
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - license-policy:read
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/settings/socket-basics
  method: get
  operationId: getSocketBasicsConfig
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - socket-basics:read
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/historical/alerts
  method: get
  operationId: historicalAlertsList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - historical:alerts-list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/historical/alerts/trend
  method: get
  operationId: historicalAlertsTrend
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - historical:alerts-trend
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/historical/dependencies/trend
  method: get
  operationId: historicalDependenciesTrend
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - historical:dependencies-trend
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/historical/snapshots
  method: get
  operationId: historicalSnapshotsList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - historical:snapshots-list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/historical/snapshots
  method: post
  operationId: historicalSnapshotsStart
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - historical:snapshots-start
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/audit-log
  method: get
  operationId: getAuditLogEvents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - audit-log:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/api-tokens
  method: post
  operationId: postAPIToken
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - api-tokens:create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/api-tokens
  method: get
  operationId: getAPITokens
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - api-tokens:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/api-tokens/update
  method: post
  operationId: postAPITokenUpdate
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - api-tokens:create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/api-tokens/rotate
  method: post
  operationId: postAPITokensRotate
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - api-tokens:rotate
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/api-tokens/revoke
  method: post
  operationId: postAPITokensRevoke
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    scope:
    - api-tokens:revoke
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /orgs/{org_slug}/supported-files
  method: get
  operationId: getSupportedFiles
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /threat-feed
  method: get
  operationId: getThreatFeedItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - threat-feed:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/threat-feed
  method: get
  operationId: getOrgThreatFeedItems
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - threat-feed:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/purl
  method: post
  operationId: batchPackageFetchByOrg
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - packages:list
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/fixes
  method: get
  operationId: fetch-fixes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - fixes:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/telemetry/config
  method: get
  operationId: getOrgTelemetryConfig
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/telemetry/config
  method: put
  operationId: updateOrgTelemetryConfig
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - telemetry-policy:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/webhooks
  method: get
  operationId: getOrgWebhooksList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - webhooks:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/webhooks
  method: post
  operationId: createOrgWebhook
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - webhooks:create
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/webhooks/{webhook_id}
  method: get
  operationId: getOrgWebhook
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - webhooks:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/webhooks/{webhook_id}
  method: put
  operationId: updateOrgWebhook
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - webhooks:update
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/webhooks/{webhook_id}
  method: delete
  operationId: deleteOrgWebhook
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - webhooks:delete
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /orgs/{org_slug}/alerts
  method: get
  operationId: alertsList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alerts:list
    token:
      max-ttl: 3600
    audit: none
- path: /orgs/{org_slug}/alert-full-scan-search
  method: get
  operationId: alertFullScans
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alerts:list
    token:
      max-ttl: 3600
    audit: none
- path: /license-policy
  method: post
  operationId: licensePolicy
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - license-policy:read
    - packages:list
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /saturate-license-policy
  method: post
  operationId: saturateLicensePolicy
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - packages:list
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /license-metadata
  method: post
  operationId: licenseMetadata
  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: /alert-types
  method: post
  operationId: alertTypes
  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: /openapi
  method: get
  operationId: getOpenAPI
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /openapi.json
  method: get
  operationId: getOpenAPIJSON
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /quota
  method: get
  operationId: getQuota
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /organizations
  method: get
  operationId: getOrganizations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /settings
  method: post
  operationId: postSettings
  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: /report/supported
  method: get
  operationId: getReportSupportedFiles
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /report/delete/{id}
  method: delete
  operationId: deleteReport
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - report:write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /report/list
  method: get
  operationId: getReportList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - report:list
    token:
      max-ttl: 3600
    audit: none
- path: /report/upload
  method: put
  operationId: createReport
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - report:write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /report/view/{id}
  method: get
  operationId: getReport
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - report:read
    token:
      max-ttl: 3600
    audit: none
- path: /repo/list
  method: get
  operationId: getRepoList
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - repo:list
    token:
      max-ttl: 3600
    audit: none
- path: /npm/{package}/{version}/issues
  method: get
  operationId: getIssuesByNPMPackage
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /npm/{package}/{version}/score
  method: get
  operationId: getScoreByNPMPackage
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /analytics/org/{filter}
  method: get
  operationId: getOrgAnalytics
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - report:write
    token:
      max-ttl: 3600
    audit: none
- path: /analytics/repo/{name}/{filter}
  method: get
  operationId: getRepoAnalytics
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - report:write
    token:
      max-ttl: 3600
    audit: none