Lean Technologies · Agentic Access

Lean Technologies Agentic Access

x-agentic-access generated

Lean Technologies exposes 218 API operations that an AI agent could call, of which 70 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: 148 read, 40 write, 29 physical, 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.

Open BankingOpen FinancePaymentsFinancial DataFintechMENAUAESaudi ArabiaPay by BankBank DataAccount VerificationPayouts
Operations: 218 Acting: 70 Human-in-the-loop: 1 Method: generated

By consequence

read 148 write 40 physical 29 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 /consents/v1/{consent_id}/revocation safety-critical required
DELETE /customers/v1/{customer_id}/payment-sources/{payment_source_id} physical conditional
DELETE /customers/v1/{customer_id}/payment-sources/{payment_source_id} physical conditional
POST /payment-links/v1 physical conditional
PUT /payment-links/v1/{payment_link_id} physical conditional
POST /payments/account-on-file physical conditional
POST /payments/v1/account-on-file physical conditional
POST /payments/v1/destinations physical conditional
POST /payments/v1/destinations physical conditional
POST /payments/v1/intents physical conditional
POST /payments/v1/intents physical conditional
POST /payouts/refunds physical conditional
POST /payouts/refunds physical conditional
PUT /payouts/refunds physical conditional
POST /payouts/v1/bulk-payments physical conditional
POST /payouts/v1/bulk-payments physical conditional
POST /payouts/v1/payment physical conditional
POST /payouts/v1/payment physical conditional
POST /payouts/v1/payment physical conditional
POST /payouts/v1/payment/destinations physical conditional
POST /payouts/v1/payment/destinations physical conditional
POST /payouts/v1/payment/destinations physical conditional
POST /payouts/v1/split-payments physical conditional
POST /payouts/v1/split-payments physical conditional
POST /reconciliation/v1/payments physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-19'
method: generated
source: openapi/lean-technologies-account-on-file-openapi.yml, openapi/lean-technologies-bank-data-openapi.yml,
  openapi/lean-technologies-banks-openapi.yml, openapi/lean-technologies-consents-openapi.yml,
  openapi/lean-technologies-core-resources-openapi.yml, openapi/lean-technologies-customers-openapi.yml,
  openapi/lean-technologies-data-openapi.yml, openapi/lean-technologies-enrichment-openapi.yml,
  openapi/lean-technologies-entities-openapi.yml, openapi/lean-technologies-files-openapi.yml,
  openapi/lean-technologies-insights-openapi.yml, openapi/lean-technologies-ksa-accounts-access-consents-openapi.yml,
  openapi/lean-technologies-ksa-bank-data-openapi.yml, openapi/lean-technologies-ksa-core-resources-openapi.yml,
  openapi/lean-technologies-ksa-customers-openapi.yml, openapi/lean-technologies-ksa-enrichment-openapi.yml,
  openapi/lean-technologies-ksa-insights-openapi.yml, openapi/lean-technologies-ksa-open-banking-openapi.yml,
  openapi/lean-technologies-ksa-payouts-openapi.yml, openapi/lean-technologies-ksa-reports-openapi.yml,
  openapi/lean-technologies-ksa-verifications-openapi.yml, openapi/lean-technologies-payment-links-openapi.yml,
  openapi/lean-technologies-payments-core-openapi.yml, openapi/lean-technologies-payments-customers-openapi.yml,
  openapi/lean-technologies-payments-openapi.yml, openapi/lean-technologies-payouts-extended-openapi.yml,
  openapi/lean-technologies-payouts-openapi.yml, openapi/lean-technologies-reconciliation-extended-openapi.yml,
  openapi/lean-technologies-reconciliation-openapi.yml, openapi/lean-technologies-refunds-openapi.yml,
  openapi/lean-technologies-schedules-openapi.yml, openapi/lean-technologies-sessions-openapi.yml,
  openapi/lean-technologies-verifications-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: 218
  by_action_class:
    acting: 70
    connected: 148
  by_consequence:
    write: 40
    physical: 29
    read: 148
    safety-critical: 1
  human_in_the_loop_required: 1
operations:
- path: /consents/v1/account-on-file
  method: post
  operationId: createAccountOnFileConsent
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - api
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /payments/v1/account-on-file
  method: post
  operationId: initiateAccountOnFilePayment
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - api
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /customers/v1/{customer_id}/entities
  method: get
  operationId: getCustomerEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: get
  operationId: getEntityById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: delete
  operationId: deleteEntity
  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: /data/v2/accounts
  method: get
  operationId: fetchAccounts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/balances
  method: get
  operationId: fetchBalances
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/transactions
  method: get
  operationId: fetchTransactions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/identity
  method: get
  operationId: fetchCurrentIdentity
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /banks/v1
  method: get
  operationId: getBanks
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /consents/v1/{consent_id}
  method: get
  operationId: fetchConsent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - api
    token:
      max-ttl: 3600
    audit: none
- path: /consents/v1/{consent_id}/balance
  method: get
  operationId: fetchConsentBalance
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - api
    token:
      max-ttl: 3600
    audit: none
- path: /consents/v1
  method: get
  operationId: fetchConsents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - api
    token:
      max-ttl: 3600
    audit: none
- path: /consents/v1/{consent_id}/revocation
  method: post
  operationId: revokeConsent
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    scope:
    - api
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /customers/v1/
  method: get
  operationId: getCustomers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/
  method: post
  operationId: createCustomer
  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: /customers/v1/{customer_id}/
  method: get
  operationId: getCustomerById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/
  method: put
  operationId: updateCustomer
  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: /customers/v1/app-user-id/{app_user_id}
  method: get
  operationId: getCustomerByUserId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /banks/v1
  method: get
  operationId: getBanks
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /events/v1
  method: get
  operationId: getEvents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities
  method: get
  operationId: getCustomerEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: get
  operationId: getEntityById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: delete
  operationId: deleteEntity
  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: /customers/v1/entities
  method: get
  operationId: listEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts
  method: get
  operationId: fetchAccountsV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/balances
  method: get
  operationId: fetchBalancesV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/beneficiaries
  method: get
  operationId: fetchBeneficiariesV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/direct-debits
  method: get
  operationId: fetchDirectDebits
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/identities
  method: get
  operationId: fetchAllIdentities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/identity
  method: get
  operationId: fetchIdentitiesV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/refreshes
  method: post
  operationId: triggerDataRefresh
  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: /data/v2/refreshes
  method: get
  operationId: getDataRefreshes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/refreshes/{refresh_id}
  method: get
  operationId: getDataRefreshStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/results/{results_id}
  method: get
  operationId: getResultsV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/scheduled-payments
  method: get
  operationId: fetchScheduledPayments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/standing-orders
  method: get
  operationId: getStandingOrders
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/transactions
  method: get
  operationId: fetchTransactionsV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/income
  method: post
  operationId: getIncome
  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: /insights/v2/expenses
  method: get
  operationId: getExpenses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: get
  operationId: getEntityById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: delete
  operationId: deleteEntity
  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: /customers/v1/{customer_id}/entities
  method: get
  operationId: getCustomerEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/entities
  method: get
  operationId: listEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /files/kyc/poa/{document_id}.pdf
  method: get
  operationId: getPoaDocument
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/account-controls
  method: get
  operationId: getAccountControls
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/assets/cashflows
  method: get
  operationId: getCashflows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/assets/balances
  method: get
  operationId: getBalances
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/behaviors
  method: get
  operationId: getBehavioralInsights
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/cashflow-patterns
  method: get
  operationId: getCashFlow
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/credit-assessments
  method: get
  operationId: getCreditAssessments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/credit-obligations
  method: get
  operationId: getCreditObligationsV3
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/expenses
  method: get
  operationId: getExpenses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/income
  method: post
  operationId: verifyIncome
  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: /insights/v2/liabilities/credit-obligations
  method: get
  operationId: getCreditObligations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/liabilities/non-credit-obligations
  method: get
  operationId: getNonCreditObligations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/customers/{customer_id}/reports/verification-of-income
  method: post
  operationId: createVerificationOfIncomeReport
  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: /insights/v2/customers/{customer_id}/reports/verification-of-income/{report_id}
  method: get
  operationId: getVerificationOfIncomeReport
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/customers/{customer_id}/reports/bank-statements
  method: post
  operationId: createBankStatementsReport
  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: /insights/v2/customers/{customer_id}/reports/bank-statements/{report_id}
  method: get
  operationId: getBankStatementsReport
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v1/name-verification
  method: post
  operationId: nameVerification
  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: /v2/accounts-access-consents
  method: post
  operationId: createConnectLink
  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: /customers/v1/{customerId}/consents
  method: get
  operationId: getCustomerConsents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customerId}/consents/{consentId}
  method: get
  operationId: getCustomerConsentById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/refreshes
  method: post
  operationId: trigger_data_refresh_v2
  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: /customers/v1/entities
  method: get
  operationId: listEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities
  method: get
  operationId: getEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: get
  operationId: getEntityById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: delete
  operationId: deleteEntity
  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: /customers/v1/{customer_id}/entities/{entity_id}/consent/{consent_id}
  method: delete
  operationId: deleteConsent
  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: /data/v2/accounts
  method: get
  operationId: fetchAccounts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/balances
  method: get
  operationId: fetchBalances
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/transactions
  method: get
  operationId: fetchTransactions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/identity
  method: get
  operationId: fetchCurrentIdentity
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/identities
  method: get
  operationId: fetchAllIdentities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/beneficiaries
  method: get
  operationId: fetchBeneficiaries
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/direct-debits
  method: get
  operationId: fetchDirectDebits
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/scheduled-payments
  method: get
  operationId: fetchScheduledPayments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/accounts/{account_id}/standing-orders
  method: get
  operationId: getStandingOrders
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1
  method: post
  operationId: createCustomer
  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: /customers/v1
  method: get
  operationId: getCustomers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}
  method: get
  operationId: getCustomerById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/app-user-id/{app_user_id}
  method: get
  operationId: getCustomerByAppUserId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /banks/v1/
  method: get
  operationId: listBanks
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/v2/results/{results_id}
  method: get
  operationId: getResults
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities
  method: get
  operationId: getCustomerEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: get
  operationId: getEntityById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/v1/{customer_id}/entities/{entity_id}
  method: delete
  operationId: deleteEntity
  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: /customers/v1/entities
  method: get
  operationId: listEntities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/income
  method: post
  operationId: getIncome
  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: /insights/v2/income/employment?async=true
  method: get
  operationId: getEmployment
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/assets/cashflows?async=true
  method: get
  operationId: GetCashflow
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/assets/balances
  method: get
  operationId: getBalances
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/expenses
  method: get
  operationId: getExpenses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/liabilities/credit-obligations
  method: get
  operationId: getCreditObligations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/liabilities/non-credit-obligations
  method: get
  operationId: getNonCreditObligations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/account-controls
  method: get
  operationId: getAccountControls
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/assets/cashflows
  method: get
  operationId: getCashflows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/assets/balances
  method: get
  operationId: getBalances
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/behaviors
  method: get
  operationId: getBehavioralInsights
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/cashflow-patterns
  method: get
  operationId: getCashFlow
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/credit-assessments
  method: get
  operationId: getCreditAssessments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v3/credit-obligations
  method: get
  operationId: getCreditObligationsV3
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/expenses
  method: get
  operationId: getExpenses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/assets/freelancers/cashflows
  method: get
  operationId: getFreelancersCashflows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/income
  method: post
  operationId: verifyIncome
  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: /insights/v2/income/employment
  method: get
  operationId: getEmploymentDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/liabilities/credit-obligations
  method: get
  operationId: getCreditObligations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/liabilities/non-credit-obligations
  method: get
  operationId: getNonCreditObligations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/customers/{customer_id}/reports/verification-of-income
  method: post
  operationId: createVerificationOfIncomeReport
  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: /insights/v2/customers/{customer_id}/reports/verification-of-income/{report_id}
  method: get
  operationId: getVerificationOfIncomeReport
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /insights/v2/customers/{customer_id}/reports/bank-statements
  method: post
  operationId: createBankStatementsReport
  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: /insights/v2/customers/{customer_id}/reports/bank-statements/{report_id}
  method: get
  operationId: getBankStatementsReport
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /open-banking/account-information/2022.11.01-final-errata2/accounts/{AccountId}/parties
  method: get
  operationId: GetAccountPartiesV1
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /open-banking/account-information/2022.11.01-final-errata2/accounts
  method: get
  operationId: GetAccountsV1
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /open-banking/account-information/2022.11.01-final-errata2/accounts/{AccountId}/balances
  method: get
  operationId: GetAccountBalancesV1
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /open-banking/account-information/2022.11.01-final-errata2/accounts/{AccountId}/beneficiaries
  method: get
  operationId: GetAccountBeneficiariesV1
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /open-banking/account-information/2022.11.01-final-errata2/accounts/{AccountId}/direct-debits
  method: get
  operationId: GetAccountDirectDebitsV1
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: o

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