# Bitpont API Reference | Endpoints, Parameters & Examples

Explore Bitpont API endpoints and parameter schemas. Generate JavaScript, cURL and Python requests for market reads, quotes and unsigned treasury proposals.

Canonical: https://www.bitpont.com/developers/api-reference/

LOCAL REQUEST BUILDER

## Make the request explicit.

Choose an operation, fill its parameters and copy a server-side example. No API key is requested and no live request is sent here.

OperationRead a resourcePlan up to 500 paymentsPrepare up to 50 Safe paymentsPrepare Safe lendingCompare EVM swapsResourceconnected-vaults.marketsconnected-vaults.marketconnected-vaults.accountconnected.positionssparklend.marketssparklend.accountfluid-credit.marketsfluid-credit.accountetherfi.accountetherfi.requestsetherfi.requestllamalend.marketsllamalend.accountostium.marketsostium.marketostium.accountthorchain.progresstreasury.tokentreasury.accounttreasury.lendingtransactions.statushyperliquid.marketshyperliquid.bookhyperliquid.charthyperliquid.accountpendle.marketspendle.marketmorpho.marketsmorpho.marketmorpho.positionsliquidity.positionliquidity.positionssolana-liquidity.poolsolana-liquidity.positionsolana-liquidity.positionsboros.marketsboros.marketboros.portfoliogmx.marketsgmx.account

Code languageJavaScript SDKcURLPythonGenerated requestCopy request
```

```

## Typed resources

Search resources40 resources

### connected-vaults.markets

GET/api/v1/read/connected-vaults.markets

discovery:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "protocol": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "euler",
        "fluid",
        "spark",
        "yearn"
      ]
    },
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "protocol",
    "network"
  ]
}
```
Build request →
### connected-vaults.market

GET/api/v1/read/connected-vaults.market

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "protocol": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "euler",
        "fluid",
        "spark",
        "yearn"
      ]
    },
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "vault": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "protocol",
    "network",
    "vault"
  ]
}
```
Build request →
### connected-vaults.account

GET/api/v1/read/connected-vaults.account

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "protocol": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "euler",
        "fluid",
        "spark",
        "yearn"
      ]
    },
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "vault": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "subaccount": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,2})$"
    }
  },
  "required": [
    "protocol",
    "network",
    "vault",
    "wallet"
  ]
}
```
Build request →
### connected.positions

GET/api/v1/read/connected.positions

positions:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "protocol": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "euler",
        "fluid",
        "spark",
        "yearn",
        "sparklend",
        "fluid-credit",
        "etherfi",
        "llamalend",
        "ostium"
      ]
    },
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    },
    "subaccount": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,2})$"
    }
  },
  "required": [
    "protocol",
    "network",
    "wallet"
  ]
}
```
Build request →
### sparklend.markets

GET/api/v1/read/sparklend.markets

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {},
  "required": []
}
```
Build request →
### sparklend.account

GET/api/v1/read/sparklend.account

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "asset": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "asset",
    "wallet"
  ]
}
```
Build request →
### fluid-credit.markets

GET/api/v1/read/fluid-credit.markets

discovery:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": []
}
```
Build request →
### fluid-credit.account

GET/api/v1/read/fluid-credit.account

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "vault": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "nftId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "vault",
    "wallet"
  ]
}
```
Build request →
### etherfi.account

GET/api/v1/read/etherfi.account

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "wallet"
  ]
}
```
Build request →
### etherfi.requests

GET/api/v1/read/etherfi.requests

positions:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "wallet"
  ]
}
```
Build request →
### etherfi.request

GET/api/v1/read/etherfi.request

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "requestId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "wallet",
    "requestId"
  ]
}
```
Build request →
### llamalend.markets

GET/api/v1/read/llamalend.markets

discovery:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": []
}
```
Build request →
### llamalend.account

GET/api/v1/read/llamalend.account

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "vault": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "vault",
    "wallet"
  ]
}
```
Build request →
### ostium.markets

GET/api/v1/read/ostium.markets

discovery:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": []
}
```
Build request →
### ostium.market

GET/api/v1/read/ostium.market

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "pairId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "pairId"
  ]
}
```
Build request →
### ostium.account

GET/api/v1/read/ostium.account

positions:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "pairId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    },
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "wallet",
    "pairId"
  ]
}
```
Build request →
### thorchain.progress

GET/api/v1/read/thorchain.progress

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "sourceHash": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{64}$"
    }
  },
  "required": [
    "wallet",
    "sourceHash"
  ]
}
```
Build request →
### treasury.token

GET/api/v1/read/treasury.token

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "chainId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "1",
        "8453",
        "42161"
      ]
    },
    "safe": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "tokenAddress": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "chainId",
    "safe",
    "tokenAddress"
  ]
}
```
Build request →
### treasury.account

GET/api/v1/read/treasury.account

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "chainId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "1",
        "8453",
        "42161"
      ]
    },
    "safe": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "chainId",
    "safe"
  ]
}
```
Build request →
### treasury.lending

GET/api/v1/read/treasury.lending

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "chainId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "1",
        "8453"
      ]
    },
    "safe": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "chainId",
    "safe"
  ]
}
```
Build request →
### transactions.status

GET/api/v1/read/transactions.status

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "hash": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{64}$"
    }
  },
  "required": [
    "network",
    "hash"
  ]
}
```
Build request →
### hyperliquid.markets

GET/api/v1/read/hyperliquid.markets

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "perp",
        "spot"
      ]
    },
    "dex": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[a-zA-Z0-9_-]{0,40}$"
    }
  },
  "required": []
}
```
Build request →
### hyperliquid.book

GET/api/v1/read/hyperliquid.book

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "perp",
        "spot"
      ]
    },
    "dex": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[a-zA-Z0-9_-]{0,40}$"
    },
    "market": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$"
    }
  },
  "required": [
    "market"
  ]
}
```
Build request →
### hyperliquid.chart

GET/api/v1/read/hyperliquid.chart

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "perp",
        "spot"
      ]
    },
    "dex": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[a-zA-Z0-9_-]{0,40}$"
    },
    "market": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$"
    },
    "interval": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "5m",
        "15m",
        "1h",
        "4h",
        "1d"
      ]
    }
  },
  "required": [
    "market"
  ]
}
```
Build request →
### hyperliquid.account

GET/api/v1/read/hyperliquid.account

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "user": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "dex": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[a-zA-Z0-9_-]{0,40}$"
    }
  },
  "required": [
    "wallet"
  ]
}
```
Build request →
### pendle.markets

GET/api/v1/read/pendle.markets

discovery:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{0,300}$"
    },
    "expired": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "0",
        "1"
      ]
    }
  },
  "required": [
    "network"
  ]
}
```
Build request →
### pendle.market

GET/api/v1/read/pendle.market

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "market": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "network",
    "market"
  ]
}
```
Build request →
### morpho.markets

GET/api/v1/read/morpho.markets

discovery:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{0,300}$"
    }
  },
  "required": [
    "network"
  ]
}
```
Build request →
### morpho.market

GET/api/v1/read/morpho.market

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "marketId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{64}$"
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "network",
    "marketId"
  ]
}
```
Build request →
### morpho.positions

GET/api/v1/read/morpho.positions

positions:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "skip": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "network",
    "wallet"
  ]
}
```
Build request →
### liquidity.position

GET/api/v1/read/liquidity.position

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "protocol": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "uniswap-v3",
        "pancakeswap-v3",
        "aerodrome",
        "aerodrome-caps",
        "aerodrome-v3",
        "camelot",
        "quickswap"
      ]
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "tokenId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "network",
    "wallet",
    "tokenId"
  ]
}
```
Build request →
### liquidity.positions

GET/api/v1/read/liquidity.positions

positions:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "network": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon",
        "bnb",
        "avalanche"
      ]
    },
    "protocol": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "uniswap-v3",
        "pancakeswap-v3",
        "aerodrome",
        "aerodrome-caps",
        "aerodrome-v3",
        "camelot",
        "quickswap"
      ]
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "network",
    "wallet"
  ]
}
```
Build request →
### solana-liquidity.pool

GET/api/v1/read/solana-liquidity.pool

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "provider": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "orca",
        "meteora",
        "raydium"
      ]
    },
    "address": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
    }
  },
  "required": [
    "provider",
    "address"
  ]
}
```
Build request →
### solana-liquidity.position

GET/api/v1/read/solana-liquidity.position

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "provider": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "orca",
        "meteora",
        "raydium"
      ]
    },
    "pool": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
    },
    "position": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
    }
  },
  "required": [
    "provider",
    "pool",
    "position",
    "wallet"
  ]
}
```
Build request →
### solana-liquidity.positions

GET/api/v1/read/solana-liquidity.positions

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "provider": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "orca",
        "meteora",
        "raydium"
      ]
    },
    "pool": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
    },
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
    },
    "fresh": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "0",
        "1"
      ]
    }
  },
  "required": [
    "provider",
    "pool",
    "wallet"
  ]
}
```
Build request →
### boros.markets

GET/api/v1/read/boros.markets

discovery:read · Paginated

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "cursor": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{0,300}$"
    },
    "matured": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^[^\\u0000-\\u001f]{1,300}$",
      "enum": [
        "0",
        "1"
      ]
    }
  },
  "required": []
}
```
Build request →
### boros.market

GET/api/v1/read/boros.market

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "marketId": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^(0|[1-9][0-9]{0,77})$"
    }
  },
  "required": [
    "marketId"
  ]
}
```
Build request →
### boros.portfolio

GET/api/v1/read/boros.portfolio

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "wallet"
  ]
}
```
Build request →
### gmx.markets

GET/api/v1/read/gmx.markets

discovery:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {},
  "required": []
}
```
Build request →
### gmx.account

GET/api/v1/read/gmx.account

positions:read · Bounded response

Parameters & schema
```
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "wallet": {
      "type": "string",
      "maxLength": 300,
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "required": [
    "wallet"
  ]
}
```
Build request →

## Planning, preparation & contracts

Public discovery and supported unsigned workflow drafts have bounded free access. Account reads, swap quotes and treasury preparation require a scoped bearer key. API operations do not sign or submit transactions.

GET/api/v1/capabilities Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "responses": {
    "200": {
      "description": "Capability or integration contract"
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
GET/api/v1/resources Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "responses": {
    "200": {
      "description": "Capability or integration contract"
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
GET/api/v1/workflows Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "responses": {
    "200": {
      "description": "Capability or integration contract"
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
GET/api/v1/compositions Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "responses": {
    "200": {
      "description": "Capability or integration contract"
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
GET/api/v1/openapi.json Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "responses": {
    "200": {
      "description": "Capability or integration contract"
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
GET/api/v1/usage Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "responses": {
    "200": {
      "description": "Capability or integration contract"
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
GET/api/v1/integrations/manifestAny authenticated API key. Reports configured adapters and the current key’s authorization. Does not probe provider health or financial eligibility. Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "operationId": "integrationManifest",
  "description": "Any authenticated API key. Reports configured adapters and the current key’s authorization. Does not probe provider health or financial eligibility. Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.",
  "responses": {
    "200": {
      "description": "Resource and operation readiness, explicit limits, documentation links; signs:false and submits:false."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true
}
```
GET/api/v1/workflows/startersRequires discovery:read. Supported route shortcuts without a wallet, amount or signing authority. Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "operationId": "workflowStarters",
  "description": "Requires discovery:read. Supported route shortcuts without a wallet, amount or signing authority. Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.",
  "responses": {
    "200": {
      "description": "Route catalogue with network-specific Bitpont review links."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true
}
```
POST/api/v1/portfolio/planRequires positions:read. Constructs bounded read requests for selected EVM wallets and networks. Does not execute reads or compute total net worth. Inspect excluded coverage, follow all cursors and retain item-level errors.

```
{
  "operationId": "planPortfolio",
  "description": "Requires positions:read. Constructs bounded read requests for selected EVM wallets and networks. Does not execute reads or compute total net worth. Inspect excluded coverage, follow all cursors and retain item-level errors.",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "wallets",
            "networks"
          ],
          "properties": {
            "wallets": {
              "type": "array",
              "minItems": 1,
              "maxItems": 2,
              "items": {
                "type": "string",
                "maxLength": 300,
                "pattern": "^0x[0-9a-fA-F]{40}$"
              }
            },
            "networks": {
              "type": "array",
              "minItems": 1,
              "maxItems": 7,
              "items": {
                "type": "string",
                "maxLength": 300,
                "pattern": "^[^\\u0000-\\u001f]{1,300}$",
                "enum": [
                  "ethereum",
                  "base",
                  "arbitrum",
                  "optimism",
                  "polygon",
                  "bnb",
                  "avalanche"
                ]
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Read plan with requests, configured coverage, explicit exclusions, completePortfolio:false and submitted:false."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}
```
POST/api/v1/read/batch Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "operationId": "readBatch",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "requests"
          ],
          "properties": {
            "requests": {
              "type": "array",
              "minItems": 1,
              "maxItems": 6,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "resource",
                  "params"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[a-zA-Z0-9_-]{1,64}$"
                  },
                  "resource": {
                    "enum": [
                      "connected-vaults.markets",
                      "connected-vaults.market",
                      "connected-vaults.account",
                      "connected.positions",
                      "sparklend.markets",
                      "sparklend.account",
                      "fluid-credit.markets",
                      "fluid-credit.account",
                      "etherfi.account",
                      "etherfi.requests",
                      "etherfi.request",
                      "llamalend.markets",
                      "llamalend.account",
                      "ostium.markets",
                      "ostium.market",
                      "ostium.account",
                      "thorchain.progress",
                      "treasury.token",
                      "treasury.account",
                      "treasury.lending",
                      "transactions.status",
                      "hyperliquid.markets",
                      "hyperliquid.book",
                      "hyperliquid.chart",
                      "hyperliquid.account",
                      "pendle.markets",
                      "pendle.market",
                      "morpho.markets",
                      "morpho.market",
                      "morpho.positions",
                      "liquidity.position",
                      "liquidity.positions",
                      "solana-liquidity.pool",
                      "solana-liquidity.position",
                      "solana-liquidity.positions",
                      "boros.markets",
                      "boros.market",
                      "boros.portfolio",
                      "gmx.markets",
                      "gmx.account"
                    ]
                  },
                  "params": {
                    "type": "object"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Ordered independent results. A successful HTTP response can contain failed or partial items."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
POST/api/v1/transactions/treasury/prepareRequires transactions:prepare. Prepares a bounded unsigned Aave USDC Safe proposal; does not approve, sign or submit. Amount is human-readable USDC, not base units.

```
{
  "operationId": "prepareTreasury",
  "description": "Requires transactions:prepare. Prepares a bounded unsigned Aave USDC Safe proposal; does not approve, sign or submit. Amount is human-readable USDC, not base units.",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "chainId",
            "safe",
            "owner",
            "action",
            "amount"
          ],
          "properties": {
            "chainId": {
              "type": "integer",
              "minimum": 1,
              "maximum": 8453,
              "enum": [
                1,
                8453
              ]
            },
            "safe": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "owner": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "action": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^[^\\u0000-\\u001f]{1,300}$",
              "enum": [
                "lending-supply",
                "lending-withdraw",
                "lending-repay",
                "lending-repay-supply"
              ]
            },
            "amount": {
              "type": "string",
              "maxLength": 70,
              "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$"
            },
            "repayAll": {
              "type": "boolean"
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "ReadResult containing the exact Safe proposal, calls, fresh state, explicit simulation coverage, costs not quoted and an opt-in Bitpont review link."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}
```
POST/api/v1/transactions/treasury/payments/planRequires transactions:prepare. Validate up to 500 recipients and return bounded batch inputs. No nonce, approvals or execution are prepared by this planning endpoint. Prepare each batch separately with fresh state.

```
{
  "operationId": "planTreasuryPayments",
  "description": "Requires transactions:prepare. Validate up to 500 recipients and return bounded batch inputs. No nonce, approvals or execution are prepared by this planning endpoint. Prepare each batch separately with fresh state.",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "chainId",
            "safe",
            "owner",
            "asset",
            "payments"
          ],
          "properties": {
            "chainId": {
              "type": "integer",
              "minimum": 1,
              "maximum": 42161,
              "enum": [
                1,
                8453,
                42161
              ]
            },
            "safe": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "owner": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "asset": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^[^\\u0000-\\u001f]{1,300}$",
              "enum": [
                "USDC",
                "ETH",
                "USDCx",
                "ERC20"
              ]
            },
            "tokenAddress": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "payments": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100000,
              "description": "One address,amount per line. 1 to 500 unique recipients, split into batches of at most 50."
            }
          },
          "allOf": [
            {
              "if": {
                "properties": {
                  "asset": {
                    "const": "ERC20"
                  }
                }
              },
              "then": {
                "required": [
                  "tokenAddress"
                ]
              },
              "else": {
                "not": {
                  "required": [
                    "tokenAddress"
                  ]
                }
              }
            }
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "ReadResult with an unsigned payment plan, exact per-batch totals and preparation requests."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}
```
POST/api/v1/transactions/treasury/payments/prepareRequires transactions:prepare. Constructs an unsigned Safe payment batch, verifies recipients, owners and balances. No transaction is submitted.

```
{
  "operationId": "prepareTreasuryPayments",
  "description": "Requires transactions:prepare. Constructs an unsigned Safe payment batch, verifies recipients, owners and balances. No transaction is submitted.",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "chainId",
            "safe",
            "owner",
            "asset",
            "payments"
          ],
          "properties": {
            "chainId": {
              "type": "integer",
              "minimum": 1,
              "maximum": 42161,
              "enum": [
                1,
                8453,
                42161
              ]
            },
            "safe": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "owner": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "asset": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^[^\\u0000-\\u001f]{1,300}$",
              "enum": [
                "USDC",
                "ETH",
                "USDCx",
                "ERC20"
              ]
            },
            "tokenAddress": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "payments": {
              "type": "string",
              "minLength": 1,
              "maxLength": 14000,
              "description": "One address,amount per line; 1 to 50 distinct recipients. Human-readable positive decimals. No header, self-recipient, ENS or arbitrary calldata."
            }
          },
          "allOf": [
            {
              "if": {
                "properties": {
                  "asset": {
                    "const": "ERC20"
                  }
                }
              },
              "then": {
                "required": [
                  "tokenAddress"
                ]
              },
              "else": {
                "not": {
                  "required": [
                    "tokenAddress"
                  ]
                }
              }
            }
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "ReadResult containing exact calls, Safe hash, unsigned owner approval and opt-in reviewUrl. Full execution simulation is required after owner approvals."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}
```
POST/api/v1/quotes/evm-swapInspect the OpenAPI contract for the accepted request and response.

```
{
  "operationId": "quoteEvmSwap",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "network",
            "from",
            "to",
            "amount",
            "wallet",
            "slippageBps"
          ],
          "properties": {
            "network": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^[^\\u0000-\\u001f]{1,300}$",
              "enum": [
                "ethereum",
                "base",
                "arbitrum",
                "optimism",
                "polygon",
                "bnb",
                "avalanche"
              ]
            },
            "from": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "to": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "amount": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^[1-9][0-9]{0,77}$"
            },
            "wallet": {
              "type": "string",
              "maxLength": 300,
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "slippageBps": {
              "type": "integer",
              "minimum": 1,
              "maximum": 300
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Bitpont response. Provider amounts remain decimal strings. See the resource data object for provider-specific units and pagination.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReadResult"
          }
        }
      }
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}
```
POST/api/v1/workflows/prepare Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "operationId": "prepareWorkflow",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "network",
            "source",
            "destination",
            "amount"
          ],
          "properties": {
            "network": {
              "enum": [
                "solana",
                "ethereum",
                "base"
              ]
            },
            "source": {
              "enum": [
                "wallet",
                "jupiter",
                "aave",
                "morpho"
              ]
            },
            "destination": {
              "enum": [
                "wallet",
                "jupiter",
                "aave",
                "morpho",
                "perps"
              ]
            },
            "amount": {
              "type": "string",
              "description": "Positive human-readable USDC amount, at most six fractional digits. Zero and unsupported source/destination combinations are rejected.",
              "pattern": "^[0-9]+(\\.[0-9]{1,6})?$"
            },
            "subAccountId": {
              "type": "integer",
              "minimum": 0,
              "maximum": 65535
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Unsigned draft only. No execution, quote or guaranteed cost."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
GET/api/v1/workflows/prepare Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "parameters": [
    {
      "name": "network",
      "in": "query",
      "schema": {
        "enum": [
          "solana",
          "ethereum",
          "base"
        ]
      },
      "required": true
    },
    {
      "name": "source",
      "in": "query",
      "schema": {
        "enum": [
          "wallet",
          "jupiter",
          "aave",
          "morpho"
        ]
      },
      "required": true
    },
    {
      "name": "destination",
      "in": "query",
      "schema": {
        "enum": [
          "wallet",
          "jupiter",
          "aave",
          "morpho",
          "perps"
        ]
      },
      "required": true
    },
    {
      "name": "amount",
      "in": "query",
      "schema": {
        "type": "string",
        "description": "Positive human-readable USDC amount, at most six fractional digits. Zero and unsupported source/destination combinations are rejected.",
        "pattern": "^[0-9]+(\\.[0-9]{1,6})?$"
      },
      "required": true
    },
    {
      "name": "subAccountId",
      "in": "query",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 65535
      },
      "required": false
    }
  ],
  "responses": {
    "200": {
      "description": "Unsigned draft"
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true,
  "description": " Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key."
}
```
POST/api/v1/compositions/prepareRequires workflows:prepare. Validates one to twelve compatible actions and returns an unsigned draft and Bitpont review link. No quote, execution or signing authority. Protocol availability is checked again at execution. Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.

```
{
  "operationId": "prepareComposition",
  "description": "Requires workflows:prepare. Validates one to twelve compatible actions and returns an unsigned draft and Bitpont review link. No quote, execution or signing authority. Protocol availability is checked again at execution. Free without a key for public resources only, subject to shared usage limits. Batch reads cannot include account resources without a scoped key.",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "steps"
          ],
          "properties": {
            "title": {
              "type": "string",
              "maxLength": 160
            },
            "steps": {
              "type": "array",
              "minItems": 1,
              "maxItems": 12,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "domain",
                  "product",
                  "action",
                  "asset",
                  "symbol",
                  "decimals",
                  "amount"
                ],
                "properties": {
                  "domain": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "family",
                      "network",
                      "chainId",
                      "wallet"
                    ],
                    "properties": {
                      "family": {
                        "enum": [
                          "evm",
                          "solana"
                        ]
                      },
                      "network": {
                        "enum": [
                          "solana",
                          "ethereum",
                          "base",
                          "arbitrum",
                          "optimism",
                          "polygon",
                          "bnb",
                          "avalanche"
                        ]
                      },
                      "chainId": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "wallet": {
                        "type": "string"
                      }
                    }
                  },
                  "product": {
                    "enum": [
                      "swap",
                      "bridge",
                      "aave",
                      "morpho",
                      "morpho-blue",
                      "pendle",
                      "jupiter",
                      "perps",
                      "boros",
                      "marinade",
                      "liquidity"
                    ]
                  },
                  "action": {
                    "type": "string"
                  },
                  "asset": {
                    "type": "string"
                  },
                  "symbol": {
                    "type": "string",
                    "maxLength": 32
                  },
                  "decimals": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 18
                  },
                  "amount": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Exact positive base units for the first step. Null for subsequent steps."
                  },
                  "destination": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "family",
                      "network",
                      "chainId",
                      "wallet"
                    ],
                    "properties": {
                      "family": {
                        "enum": [
                          "evm",
                          "solana"
                        ]
                      },
                      "network": {
                        "enum": [
                          "solana",
                          "ethereum",
                          "base",
                          "arbitrum",
                          "optimism",
                          "polygon",
                          "bnb",
                          "avalanche"
                        ]
                      },
                      "chainId": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "wallet": {
                        "type": "string"
                      }
                    }
                  },
                  "output": {
                    "type": "string"
                  },
                  "outputSymbol": {
                    "type": "string"
                  },
                  "market": {
                    "type": "string"
                  },
                  "token": {
                    "type": "string"
                  },
                  "maxAmount": {
                    "type": "string"
                  },
                  "minimumOutput": {
                    "type": "string"
                  },
                  "borrowAmount": {
                    "type": "string"
                  },
                  "collateralAmount": {
                    "type": "string"
                  },
                  "outputDecimals": {
                    "type": "integer"
                  },
                  "slippageBps": {
                    "type": "integer"
                  },
                  "maxLtvBps": {
                    "type": "integer"
                  },
                  "spotMarketIndex": {
                    "type": "integer"
                  },
                  "subAccountId": {
                    "type": "integer"
                  },
                  "tickLower": {
                    "type": "integer"
                  },
                  "tickUpper": {
                    "type": "integer"
                  },
                  "tokenId": {
                    "type": [
                      "string",
                      "integer"
                    ]
                  },
                  "liquidity": {
                    "type": "string"
                  },
                  "inputs": {
                    "type": "array",
                    "maxItems": 2,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "step",
                        "output"
                      ],
                      "properties": {
                        "step": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 11
                        },
                        "output": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 1
                        },
                        "maxAmount": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "tokens": {
                    "type": "array",
                    "minItems": 2,
                    "maxItems": 2,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "address",
                        "symbol",
                        "decimals"
                      ],
                      "properties": {
                        "address": {
                          "type": "string"
                        },
                        "symbol": {
                          "type": "string"
                        },
                        "decimals": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18
                        }
                      }
                    }
                  },
                  "pool": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "protocol",
                      "fee",
                      "spacing",
                      "hooks"
                    ],
                    "properties": {
                      "protocol": {
                        "type": "string"
                      },
                      "fee": {
                        "type": "integer"
                      },
                      "spacing": {
                        "type": "integer"
                      },
                      "hooks": {
                        "type": "string"
                      }
                    }
                  },
                  "full": {
                    "type": "boolean"
                  },
                  "native": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Version 3 single-output or version 4 multi-asset draft with exact input/output domains, per-step unquoted costs, executionModel and reviewUrl. executionModel describes minimum transaction prompts, participating accounts and networks, and separately reviewed execution. It does not grant signing authority or attest private submission."
    },
    "400": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "405": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "413": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "429": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "502": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "503": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "504": {
      "description": "Structured error, with requestId and retryable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "x-bitpont-free-access": true
}
```


