List Approvals

Retrieves a paginated list of approval requests. You can filter approvals by status, initiator, or approver.

HTTP request
GET/v2/ppolicy-approvals
Authentication
Authentication Type Supported
Organization User (CustomerEmployee) Yes
Delegated User (EndUser) No
Service Account Yes
Required permissions
Policies:Approvals:Read (always required)
Authorization requirements
Header Type Required Description
Authorization string Yes Bearer token used to authenticate the request. See Authentication flows for instructions on generating this token.
Query parameters
Parameter Type Default Description
limit string None Maximum number of items to return.
paginationToken string None Opaque token used to retrieve the next page. Minimum length is 1.
status enum string None Filter by approval status. Allowed values: Pending, Approved, Denied, Expired.
initiatorId string None
approverId string None
Request body
curl --request GET \
  --url https://api.digitalassets.ibm.com/v2/policy-approvals \
  --header 'Authorization: Bearer <token>'
Response
200: Success

Example response:

{
  "items": [
    {
      "id": "<string>",
      "initiatorId": "<string>",
      "activity": {
        "kind": "Wallets:Sign",
        "transferRequest": {
          "id": "xfr-20g4k-nsdpo-mg6arrifgvid4orn",
          "walletId": "wa-5pfuu-9euek-h0odgb6snva8ph3k",
          "network": "Algorand",
          "requester": {
            "userId": "us-6b58p-r53sr-rlrd3l5cj3uc4ome",
            "tokenId": "to-202a0-cdo33-o65mbt6q758lvvnt"
          },
          "requestBody": {
            "kind": "Native",
            "to": "<string>",
            "amount": "<string>",
            "memo": "<string>",
            "priority": "Slow",
            "createDestinationAccount": true,
            "offer": true,
            "expiresAt": "2023-11-07T05:31:56Z",
            "externalId": "<string>",
            "travelRule": {
              "kind": "Notabene",
              "originator": {},
              "beneficiary": {},
              "beneficiaryVASPdid": "<string>",
              "beneficiaryProof": {}
            },
            "feeSponsorId": "fs-5vqdl-gliqk-b4rfukqauov1sp7j"
          },
          "metadata": {
            "asset": {
              "symbol": "<string>",
              "decimals": 123,
              "verified": true,
              "quotes": {
                "EUR": 123,
                "USD": 123
              }
            }
          },
          "status": "Pending",
          "dateRequested": "2023-04-14T20:41:28.715Z",
          "reason": "<string>",
          "txHash": "<string>",
          "fee": "<string>",
          "datePolicyResolved": "2023-04-14T20:41:28.715Z",
          "dateBroadcasted": "2023-04-14T20:41:28.715Z",
          "dateConfirmed": "2023-04-14T20:41:28.715Z",
          "approvalId": "ap-2a9in-tt2a1-983lho480p35ejd0",
          "externalId": "<string>",
          "feeSponsorId": "fs-5vqdl-gliqk-b4rfukqauov1sp7j"
        },
        "transactionRequest": {
          "id": "tx-583hu-sp2p7-slvb9nqpa3hd8bus",
          "walletId": "wa-5pfuu-9euek-h0odgb6snva8ph3k",
          "network": "Algorand",
          "requester": {
            "userId": "us-6b58p-r53sr-rlrd3l5cj3uc4ome",
            "tokenId": "to-202a0-cdo33-o65mbt6q758lvvnt"
          },
          "requestBody": {
            "kind": "Transaction",
            "transaction": "<string>",
            "externalId": "<string>"
          },
          "status": "Pending",
          "dateRequested": "2023-04-14T20:41:28.715Z",
          "reason": "<string>",
          "txHash": "<string>",
          "fee": "<string>",
          "approvalId": "ap-2a9in-tt2a1-983lho480p35ejd0",
          "datePolicyResolved": "2023-04-14T20:41:28.715Z",
          "dateBroadcasted": "2023-04-14T20:41:28.715Z",
          "dateConfirmed": "2023-04-14T20:41:28.715Z",
          "externalId": "<string>"
        },
        "signatureRequest": {
          "id": "sig-4sfvl-f4iha-umighfi3hk4t54dr",
          "keyId": "key-01snl-t56gb-j8tsok0vn802p80i",
          "requester": {
            "userId": "us-6b58p-r53sr-rlrd3l5cj3uc4ome",
            "tokenId": "to-202a0-cdo33-o65mbt6q758lvvnt"
          },
          "requestBody": {
            "kind": "Hash",
            "hash": "<string>",
            "taprootMerkleRoot": "<string>",
            "network": "Algorand",
            "blockchainKind": "Algorand",
            "externalId": "<string>"
          },
          "status": "Pending",
          "dateRequested": "2023-04-14T20:41:28.715Z",
          "reason": "<string>",
          "signature": {
            "r": "<string>",
            "s": "<string>",
            "recid": 123,
            "encoded": "<string>"
          },
          "signatures": [
            {
              "r": "<string>",
              "s": "<string>",
              "recid": 123,
              "encoded": "<string>"
            }
          ],
          "signedData": "<string>",
          "network": "Algorand",
          "txHash": "<string>",
          "fee": "<string>",
          "approvalId": "ap-2a9in-tt2a1-983lho480p35ejd0",
          "datePolicyResolved": "2023-04-14T20:41:28.715Z",
          "dateSigned": "2023-04-14T20:41:28.715Z",
          "dateConfirmed": "2023-04-14T20:41:28.715Z",
          "externalId": "<string>"
        },
        "swapRequest": {
          "id": "swap-6a3ku-bn8d7-8u5rs1oukojms7k8",
          "quoteId": "swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t",
          "reference": null,
          "walletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
          "targetWalletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
          "status": "PendingPolicyApproval",
          "provider": "UniswapClassic",
          "quotedSourceAsset": {
            "kind": "Native",
            "amount": "10000000000",
            "metadata": {
              "network": "EthereumSepolia",
              "name": "Ethereum",
              "symbol": "SepoliaETH",
              "decimals": 18,
              "tid": "native:eth"
            }
          },
          "quotedTargetAsset": {
            "kind": "Erc20",
            "contract": "0xda0be7efd234295395d4204d0df4358339b57b27",
            "amount": "6467571553831928182",
            "metadata": {
              "network": "EthereumSepolia",
              "name": "Test",
              "symbol": "Test",
              "decimals": 18,
              "tid": "erc20:0xda0be7efd234295395d4204d0df4358339b57b27"
            }
          },
          "slippageBps": 100,
          "dateCreated": "2025-09-11T10:57:55.758Z",
          "requestBody": {
            "quoteId": "swapQuote-3hgv4-q8tbf-8v2ajmrbmg6m4i9t",
            "walletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
            "targetWalletId": "wa-3l3cj-l8mq7-8q78f9nopq7f1qjv",
            "provider": "UniswapClassic",
            "slippageBps": 100,
            "sourceAsset": {
              "kind": "Native",
              "amount": "10000000000"
            },
            "targetAsset": {
              "kind": "Erc20",
              "contract": "0xda0be7efd234295395d4204d0df4358339b57b27",
              "amount": "653003161"
            }
          },
          "requester": {
            "userId": "us-48r5q-eshfg-9pmr2lo6bmpr4i4i",
            "tokenId": "to-4etah-smoal-9n3rmhul4dpaueg5"
          }
        }
      },
      "status": "Pending",
      "dateUpdated": "<string>",
      "policyEvaluations": [
        {
          "policyId": "<string>",
          "triggered": true,
          "reason": "<string>",
          "context": "<unknown>"
        }
      ],
      "decisions": [
        {
          "userId": "<string>",
          "date": "<string>",
          "reason": "<string>",
          "value": "Approved"
        }
      ],
      "expirationDate": "<string>",
      "dateCreated": "<string>",
      "dateResolved": "<string>"
    }
  ],
  "nextPageToken": "<string>"
}