Ripple Labs Policies API
Used to manage connections policies
Used to manage connections policies
openapi: 3.0.0
info:
title: Palisade Addresses Policies API
description: The Palisade API enables programmatic interaction with the various features of the Palisade platform
version: '2.0'
servers:
- url: https://api.sandbox.palisade.co
description: Sandbox server (uses TESTNET data, private keys and accounts)
- url: https://api.palisade.co
description: Palisade server (uses MAINNET data, private keys and accounts)
security:
- TokenAuth: []
tags:
- name: Policies
description: Used to manage connections policies
paths:
/v2/policy-rules/limits:
get:
summary: List organization wallet limits
description: List all wallet limits within the organization
operationId: PolicyService_ListGlobalWalletLimits
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v2ListGlobalWalletLimitsResponse'
'400':
description: Returned when the request is malformed or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: 'validation error: - name: value length must be at least 1 characters [string.min_len].'
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'401':
description: Returned when the request was unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authorization requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'403':
description: Returned when the request was forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authentication requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The resource does not exist.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
parameters:
- name: pageSize
description: The number of results to return per page (default 50, max 1000)
in: query
required: false
schema:
type: integer
format: int32
- name: pageToken
description: The token to retrieve the next page of results
in: query
required: false
schema:
type: string
- name: pagination.pageSize
description: Number of results per page (default 50, max 1000)
in: query
required: false
schema:
type: integer
format: int32
- name: pagination.pageToken
description: Token for pagination from previous response
in: query
required: false
schema:
type: string
- name: pagination.orderBy
description: Field to order results by
in: query
required: false
schema:
type: string
- name: pagination.order
description: Sort order (ASC or DESC)
in: query
required: false
schema:
type: string
enum:
- SORT_ORDER_ASC
- SORT_ORDER_DESC
- name: filter.id.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.id.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.id.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.id.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.id.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.id.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.id.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.id.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.vaultId.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.vaultId.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.vaultId.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.vaultId.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.vaultId.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.vaultId.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.vaultId.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.vaultId.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.walletId.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.walletId.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.walletId.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.walletId.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.walletId.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.walletId.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.walletId.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.walletId.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.assetSymbol.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.assetSymbol.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.assetSymbol.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.blockchain.eq
description: Exact blockchain match
in: query
required: false
schema:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: filter.blockchain.notEq
description: Exclude this blockchain
in: query
required: false
schema:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: filter.blockchain.in
description: Blockchain is in this list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: filter.blockchain.notIn
description: Blockchain is not in this list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: filter.limitType
description: Filter by limit type
in: query
required: false
schema:
type: string
enum:
- PER_TX
- CONSTANT
- ROLLING_DURATION
- name: filter.status
description: Filter by wallet limit status
in: query
required: false
schema:
type: string
enum:
- LIMIT_CREATED
- LIMIT_ENABLED
- LIMIT_REJECTED
- LIMIT_DELETED
- LIMIT_ERROR
- LIMIT_CREATION_APPROVAL_PENDING
- LIMIT_CREATION_APPROVAL_COMPLETE
- LIMIT_DELETION_APPROVAL_PENDING
- LIMIT_DELETION_APPROVAL_COMPLETE
- name: filter.active.eq
description: Equals
in: query
required: false
schema:
type: boolean
- name: filter.active.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.createdAt.eq
description: Exact timestamp match
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.notEq
description: Not equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.before
description: Before this timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.after
description: After this timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.gte
description: Greater than or equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.lte
description: Less than or equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.between.start
description: Start of time range (inclusive)
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.between.end
description: End of time range (inclusive)
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.createdAt.relativeDays
description: Relative days from now (negative for past, positive for future)
in: query
required: false
schema:
type: integer
format: int32
- name: filter.updatedAt.eq
description: Exact timestamp match
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.notEq
description: Not equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.before
description: Before this timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.after
description: After this timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.gte
description: Greater than or equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.lte
description: Less than or equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.between.start
description: Start of time range (inclusive)
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.between.end
description: End of time range (inclusive)
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.updatedAt.relativeDays
description: Relative days from now (negative for past, positive for future)
in: query
required: false
schema:
type: integer
format: int32
- name: search
description: Case-insensitive search over wallet limit ID, vault ID, wallet ID, and asset symbol.
in: query
required: false
schema:
type: string
tags:
- Policies
/v2/policy-rules/limits:list:
post:
summary: List organization wallet limits
description: List all wallet limits within the organization
operationId: PolicyService_ListGlobalWalletLimits2
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v2ListGlobalWalletLimitsResponse'
'400':
description: Returned when the request is malformed or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: 'validation error: - name: value length must be at least 1 characters [string.min_len].'
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'401':
description: Returned when the request was unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authorization requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'403':
description: Returned when the request was forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authentication requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The resource does not exist.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v2ListGlobalWalletLimitsRequest'
required: true
tags:
- Policies
/v2/vaults/{vaultId}/wallets/{walletId}/policy-rules/limits:
get:
summary: List wallet limit policies
description: List wallet limit policies for the specified wallet
operationId: PolicyService_ListWalletLimits
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v2ListWalletLimitsResponse'
'400':
description: Returned when the request is malformed or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: 'validation error: - name: value length must be at least 1 characters [string.min_len].'
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'401':
description: Returned when the request was unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authorization requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'403':
description: Returned when the request was forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authentication requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The resource does not exist.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
parameters:
- name: vaultId
description: The vault ID
in: path
required: true
schema:
type: string
- name: walletId
description: The wallet ID
in: path
required: true
schema:
type: string
- name: pageSize
description: The number of results to return per page (default 50, max 1000)
in: query
required: false
schema:
type: integer
format: int32
- name: pageToken
description: The token to retrieve the next page of results
in: query
required: false
schema:
type: string
- name: blockchain
description: Optional filter by blockchain. If not specified, returns policies for all blockchains.
in: query
required: false
schema:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: pagination.pageSize
description: Number of results per page (default 50, max 1000)
in: query
required: false
schema:
type: integer
format: int32
- name: pagination.pageToken
description: Token for pagination from previous response
in: query
required: false
schema:
type: string
- name: pagination.orderBy
description: Field to order results by
in: query
required: false
schema:
type: string
- name: pagination.order
description: Sort order (ASC or DESC)
in: query
required: false
schema:
type: string
enum:
- SORT_ORDER_ASC
- SORT_ORDER_DESC
- name: filter.id.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.id.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.id.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.id.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.id.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.id.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.id.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.id.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.vaultId.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.vaultId.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.vaultId.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.vaultId.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.vaultId.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.vaultId.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.vaultId.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.vaultId.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.walletId.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.walletId.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.walletId.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.walletId.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.walletId.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.walletId.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.walletId.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.walletId.isNull
description: Check if field is null
in: query
required: false
sch
# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ripple-labs/refs/heads/main/openapi/ripple-labs-policies-api-openapi.yml