Bakkt · Agentic Access

Bakkt Agentic Access

x-agentic-access generated

Bakkt exposes 54 API operations that an AI agent could call, of which 30 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: 24 read, 19 write, and 11 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.

CompanyCrypto Web3CryptocurrencyDigital AssetsTradingPaymentsFiat On-RampCustodyWebhooksFIX Protocol
Operations: 54 Acting: 30 Human-in-the-loop: 0 Method: generated

By consequence

read 24 write 19 physical 11

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 /apex-crypto/api/v2/accounts/kycTransferRecovery/{clientAccountId} physical conditional
POST /apex-crypto/api/v2/allocation/trade/batch/allocate physical conditional
POST /apex-crypto/api/v2/allocation/trade/batch/close physical conditional
POST /apex-crypto/api/v2/allocation/trade/batch/open physical conditional
POST /apex-crypto/api/v2/orders physical conditional
POST /apex-crypto/api/v2/orders/{clientOrderId}/cancel physical conditional
POST /apex-crypto/api/v2/transfers/deposit/coin/receiveAddress physical conditional
POST /apex-crypto/api/v2/transfers/verifyWalletAddress physical conditional
POST /apex-crypto/api/v2/transfers/withdraw/coin physical conditional
POST /apex-crypto/api/v2/transfers/withdraw/coin/estimate physical conditional
POST /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/transfer physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-18'
method: generated
source: openapi/bakkt-crypto-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: 54
  by_action_class:
    acting: 30
    connected: 24
  by_consequence:
    write: 19
    read: 24
    physical: 11
  human_in_the_loop_required: 0
operations:
- path: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/plaidAccount/link
  method: post
  operationId: addBankAccount
  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: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/bankAccount
  method: post
  operationId: addManualBankAccount
  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: /apex-crypto/api/v2/allocation/currency/batch/allocate
  method: post
  operationId: allocationCurrencyBatchAllocateCreate
  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: /apex-crypto/api/v2/allocation/currency/batch/allocate/{clientTransactionId}
  method: get
  operationId: allocationCurrencyBatchAllocateGet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/allocation/currency/batch/close
  method: post
  operationId: allocationCurrencyBatchClose
  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: /apex-crypto/api/v2/allocation/currency/batch/{batchTransactionId}
  method: get
  operationId: allocationCurrencyBatchGet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/allocation/currency/batch/open
  method: post
  operationId: allocationCurrencyBatchOpen
  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: /apex-crypto/api/v2/allocation/fiat/batch/allocate
  method: post
  operationId: allocationFiatBatchAllocateCreate
  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: /apex-crypto/api/v2/allocation/fiat/batch/allocate/{clientTransactionId}
  method: get
  operationId: allocationFiatBatchAllocateGet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/allocation/fiat/batch/close
  method: post
  operationId: allocationFiatBatchClose
  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: /apex-crypto/api/v2/allocation/fiat/batch/{batchTransactionId}
  method: get
  operationId: allocationFiatBatchGet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/allocation/fiat/batch/open
  method: post
  operationId: allocationFiatBatchOpen
  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: /apex-crypto/api/v2/allocation/gift
  method: post
  operationId: allocationGiftCreate
  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: /apex-crypto/api/v2/allocation/gift/{clientTransactionId}
  method: get
  operationId: allocationGiftGet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/allocation/trade/batch/allocate
  method: post
  operationId: allocationTradeBatchAllocateCreate
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /apex-crypto/api/v2/allocation/trade/batch/allocate/{clientTransactionId}
  method: get
  operationId: allocationTradeBatchAllocateGet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/allocation/trade/batch/close
  method: post
  operationId: allocationTradeBatchClose
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /apex-crypto/api/v2/allocation/trade/batch/{batchTransactionId}
  method: get
  operationId: allocationTradeBatchGet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/orders/{clientOrderId}/cancel
  method: post
  operationId: cancelOrder
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /apex-crypto/api/v2/accounts
  method: post
  operationId: createAccount
  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: /apex-crypto/api/v2/documents/{clientDocumentId}
  method: get
  operationId: downloadDocument
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /partner/v1/oauth2/token
  method: post
  operationId: generateAccessToken
  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: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/wire-instructions
  method: get
  operationId: generateWireInstructions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/accounts/{clientAccountId}
  method: get
  operationId: getAccount
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/accounts/{clientAccountId}/status
  method: get
  operationId: getAccountStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/status
  method: get
  operationId: getApiStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/config
  method: get
  operationId: getConfig
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/fiatAccount/balance
  method: get
  operationId: getFiatAccountBalance
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/instruments
  method: get
  operationId: getInstruments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/jurisdictions
  method: get
  operationId: getJurisdictions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/jurisdictions/all
  method: get
  operationId: getJurisdictionsAll
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/kyc/documentVerificationDetails
  method: get
  operationId: getKycDocumentVerificationDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/orders/{clientOrderId}
  method: get
  operationId: getOrder
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/positions/{account}
  method: get
  operationId: getPositions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/transfers/withdraw/coin/{clientTransactionId}
  method: get
  operationId: getWithdraw
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /partner/v1/heartbeat
  method: post
  operationId: heartbeat
  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: /apex-crypto/api/v2/accounts/kycTransferRecovery/{clientAccountId}
  method: post
  operationId: kycTransferRecovery
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/bankAccountLinking/ach
  method: post
  operationId: linkBankAccountAchAsync
  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: /apex-crypto/api/v2/login
  method: post
  operationId: login
  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: /apex-crypto/api/v2/transfers/vaspLookup/{receivingWallet}
  method: get
  operationId: lookupVasp
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/allocation/trade/batch/open
  method: post
  operationId: openBatchTradeAllocation
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /apex-crypto/api/v2/transfers/deposit/coin/receiveAddress
  method: post
  operationId: postReceiveAddress
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /apex-crypto/api/v2/transfers/withdraw/coin
  method: post
  operationId: postWithdraw
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /apex-crypto/api/v2/transfers/withdraw/coin/estimate
  method: post
  operationId: postWithdrawFee
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/fiatAccount/unlink
  method: post
  operationId: removeFiatAccount
  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: /apex-crypto/api/v2/documents/{clientAccountId}/accountDocumentMetadata
  method: get
  operationId: retrieveAccountDocumentMetadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/documents/{clientDocumentId}/metadata
  method: get
  operationId: retrieveDocumentMetadata
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /apex-crypto/api/v2/orders
  method: post
  operationId: submitOrder
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/transfer
  method: post
  operationId: transferFiatCurrency
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /apex-crypto/api/v2/accounts/triggerKYBScreening/{clientAccountId}
  method: post
  operationId: triggerKYBScreening
  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: /partner/v1/partner/{partnerId}/party/{partnerPartyRef}/bankAccountLinking/unlink
  method: post
  operationId: unlinkBankAccount
  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: /apex-crypto/api/v2/accounts/settlementMethod/update
  method: post
  operationId: updateAccountSettlement
  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: /apex-crypto/api/v2/documents
  method: post
  operationId: uploadDocument
  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: /apex-crypto/api/v2/transfers/verifyWalletAddress
  method: post
  operationId: verifyWalletAddress
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required