Ripple Labs Policies API
Used to manage connections policies
Used to manage connections policies
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ripple-labs-policies-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Palisade 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
schema:
# --- 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