async
The calculation of rebalancings might take some seconds depending on how many assets are involved. Therefore all rebalancing endpoints have the option to calculate them async. If async
is set to true
you receive an id
for your rebalancing and you can then periodically fetch the progress of the rebalancing. If its done, percent
will have the value 100
and you will also receive the rebalancing.
/rebalancing/calculation-progress/{id}
Fetch the current progress or receive the final rebalancing if it's done.
Returns progress state of running rebalancing
Path parameters
idstringRequired
Header parameters
x-api-keystringOptional
31Third API key (Request via [email protected])
accept-languagestringRequired
Responses
200Success
application/json
get
GET /1.3/rebalancing/calculation-progress/{id} HTTP/1.1
Host:
accept-language: text
Accept: */*
200Success
{
"percent": 100,
"message": "Finished",
"failed": false,
"rebalancing": {
"id": "0096124c-19df-4459-8cbb-7615fdc7c157",
"creationDate": "2025-09-15T21:19:56.520Z",
"baseValueInUsd": 12345.67,
"sellValueInUsd": 12345.67,
"estimatedValueLossInUsd": 12.34,
"estimatedTargetValueInUsd": 12345.67,
"estimatedReceiveValueInUsd": 12345.67,
"minReceiveValueInUsd": 12325.67,
"estimatedImpact": 0.0023,
"maxImpact": 0.0027,
"estimatedGasUnits": "20000000000000000",
"suggestedGasPrice": "20000000000000000",
"estimatedGasFees": "20000000000000000",
"estimatedGasFeesInUsd": 23.45,
"estimatedProtocolFeesInUsd": 23.45,
"requiredAllowances": [
{
"token": {
"address": "0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce",
"name": "Shiba Inu",
"symbol": "SHIB",
"imageUrl": "https://assets.31third.com/images/tokens/SHIB.svg",
"decimals": 18,
"sliderColor": "#C47438",
"chain": {
"name": "Ethereum",
"identifier": "0x1",
"enabled": true,
"batchTradeSupported": true,
"batchTradeAddress": "0x1ee8b39f09c5299526db65428ab2a8a23ebf08a7",
"blockExplorerLink": "https://etherscan.io",
"nativeTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"wrappedNativeTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenHelperAddress": "0x6af90502f49E3B4151018F7aE82d10079c29Bc97",
"portfolioEnabled": true
},
"tags": [
"text"
],
"deflationary": true
},
"allowanceTarget": "text",
"neededAllowance": 1,
"currentAllowance": 1,
"resetNeeded": true
}
],
"trades": [
{
"from": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"fromAmount": "100000000",
"toAmount": "99500000",
"minToReceiveBeforeFees": "99000000",
"minToReceive": "99000000",
"fromValueInUsd": 100,
"toValueInUsd": 99.5,
"minToReceiveBeforeFeesInUsd": 99,
"minToReceiveInUsd": 99,
"estimatedPriceImpact": 0.005,
"maxSlippage": 0.005,
"price": 0.999955,
"guaranteedPrice": 0.99,
"previouslyRequiredTrades": [],
"allowanceTarget": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
"estimatedGasUnits": "5000000000000000",
"suggestedGasPrice": "5000000000000000",
"estimatedGasFees": "5000000000000000",
"expirationTimestamp": "2025-09-15T21:19:56.520Z",
"transactions": [
"text"
],
"fill": {
"liquiditySource": {
"identifier": "text",
"readableName": "text",
"iconUrl": "text",
"enabled": true
},
"proportionInBps": 1,
"from": {
"address": "0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce",
"name": "Shiba Inu",
"symbol": "SHIB",
"imageUrl": "https://assets.31third.com/images/tokens/SHIB.svg",
"decimals": 18,
"sliderColor": "#C47438",
"chain": {
"name": "Ethereum",
"identifier": "0x1",
"enabled": true,
"batchTradeSupported": true,
"batchTradeAddress": "0x1ee8b39f09c5299526db65428ab2a8a23ebf08a7",
"blockExplorerLink": "https://etherscan.io",
"nativeTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"wrappedNativeTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenHelperAddress": "0x6af90502f49E3B4151018F7aE82d10079c29Bc97",
"portfolioEnabled": true
},
"tags": [
"text"
],
"deflationary": true
},
"to": {
"address": "0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce",
"name": "Shiba Inu",
"symbol": "SHIB",
"imageUrl": "https://assets.31third.com/images/tokens/SHIB.svg",
"decimals": 18,
"sliderColor": "#C47438",
"chain": {
"name": "Ethereum",
"identifier": "0x1",
"enabled": true,
"batchTradeSupported": true,
"batchTradeAddress": "0x1ee8b39f09c5299526db65428ab2a8a23ebf08a7",
"blockExplorerLink": "https://etherscan.io",
"nativeTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"wrappedNativeTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenHelperAddress": "0x6af90502f49E3B4151018F7aE82d10079c29Bc97",
"portfolioEnabled": true
},
"tags": [
"text"
],
"deflationary": true
},
"subFills": [
"text"
]
}
}
],
"txHandler": "text",
"txData": {},
"txValue": 1,
"tokensWithoutPricePair": [
"0x3ed3b47dd13ec9a98b44e6204a523e766b225811"
],
"executable": [
"true"
],
"expirationTimestamp": "2025-09-12T13:23:30.202Z",
"earliestRefreshQuotesTimestamp": "2025-09-15T21:19:56.520Z",
"suggestedRefreshQuotesTimestamp": "2025-09-15T21:19:56.520Z",
"tenderlySimulation": {
"status": true,
"errorMessage": "text",
"blockNumber": 313313,
"gas": "313313",
"gasUsed": "310313"
}
}
}
/rebalancing/cancel/{id}
Cancel the calculation of a requested rebalancing.
Cancel async rebalancing with id
Path parameters
idstringRequired
Query parameters
walletAddressstringRequired
Header parameters
x-api-keystringOptional
31Third API key (Request via [email protected])
Responses
200Success
No content
get
GET /1.3/rebalancing/cancel/{id}?walletAddress=text HTTP/1.1
Host:
Accept: */*
200Success
No content
Last updated