The Blend API provides programmatic access to strategy information, Safe operations, and TVL data. All endpoints are public and do not require authentication.
Base URL
Endpoints
Safe Operations
| Method | Endpoint | Description |
|---|
POST | /safe/request | Request deployment of a new Safe for a user address on a specific chain |
GET | /safe/resolve | Resolve the Safe address for a given user address and chain |
GET | /safe/balance/current | Get the current balance for a specific vault and address |
GET | /safe/yield | Get current yield information for a specific vault |
GET | /safe/rebalance/manual | Generate manual rebalance transaction data |
Strategy Data
| Method | Endpoint | Description |
|---|
GET | /strategy/available | Get available strategies for a specific integration type |
GET | /strategy/integrations | Get all available integration types |
TVL
| Method | Endpoint | Description |
|---|
GET | /vault/tvl | Get Total Value Locked for a specific integration |
GET | /vault/tvl/global | Get global TVL across all integrations |
Quick Start
Get available strategies for a specific integration:
curl "https://api.blend.money/strategy/available?integration=USX"
const response = await fetch('https://api.blend.money/strategy/available?integration=USX');
const strategies = await response.json();
console.log(strategies);
import requests
response = requests.get('https://api.blend.money/strategy/available', params={'integration': 'USX'})
strategies = response.json()
print(strategies)
Resolve a user’s Safe address:
curl "https://api.blend.money/safe/resolve?address=0x1234...&chainId=8453"
const response = await fetch('https://api.blend.money/safe/resolve?address=0x1234...&chainId=8453');
const safe = await response.json();
console.log(safe.safeAddress);
import requests
response = requests.get('https://api.blend.money/safe/resolve', params={
'address': '0x1234...',
'chainId': '8453'
})
safe = response.json()
print(safe['safeAddress'])
Get global TVL:
curl "https://api.blend.money/vault/tvl/global"
const response = await fetch('https://api.blend.money/vault/tvl/global');
const tvl = await response.json();
console.log(tvl.formattedValue); // e.g. "$1.25M"
import requests
response = requests.get('https://api.blend.money/vault/tvl/global')
tvl = response.json()
print(tvl['formattedValue'])
All API responses follow a consistent JSON format:
{
"status": "success",
"data": { ... }
}
Error responses include a message and error code:
{
"status": "error",
"message": "Error description",
"code": "ERROR_CODE"
}
Rate Limiting
- Rate Limit: 100 requests per minute per IP
- Headers: Rate limit information is included in response headers
- Retry: Use exponential backoff for rate-limited requests
Supported Chains
| Chain | Chain ID |
|---|
| Ethereum | 1 |
| Polygon | 137 |
| Arbitrum | 42161 |
| Base | 8453 |
| Scroll | 534352 |
| Botanix | 3637 |
| HyperEVM | 999 |
Interactive Playground
All endpoints above are available in the interactive playground - click any endpoint in the sidebar to try it directly in your browser with live requests.
The playground is automatically generated from the OpenAPI specification and includes examples in cURL, JavaScript, and Python.