GET /v1/workflows/{id}/analyze-funds
Analyze the fund requirements of a workflow without executing it. Returns resolved (wallet, chain, token, amount) tuples for every action that moves money, plus a `balance` row per requirement when the SimDune client is configured. The endpoint is read-only and does not consume CU.

Path Parameters

id string required path
Workflow ID

Query Parameters

version integer optional query
Pin analysis to a specific workflow version

Responses

200 OK
application/json
code integer
data object
balancesFetched boolean
requirements object[]
Array of:
amountIsHumanReadable boolean
balance object
amount string
raw units (wei)
amountUsd number
chainId integer
decimals integer
isInsufficient boolean
amount < requiredAmount
isLow boolean
gas only: balance below LowGasThreshold
symbol string
tokenAddress string
walletAddress string
chainId integer
chainName string
decimals integer
isNative boolean
nodeId string
nodeName string
nodeType string
reason string
requiredAmount string
source string
Enum: requiredTokens, fundsMovement.sent, requiresGas
symbol string
tokenAddress string
unresolved boolean
unresolvedReason string
Enum: chainId, tokenAddress, parseError
walletAddress string
unresolved object[]
Array of:
amountIsHumanReadable boolean
chainId integer
chainName string
decimals integer
isNative boolean
nodeId string
nodeName string
nodeType string
reason string
requiredAmount string
source string
Enum: requiredTokens, fundsMovement.sent, requiresGas
symbol string
tokenAddress string
unresolved boolean
unresolvedReason string
Enum: chainId, tokenAddress, parseError
walletAddress string
workflowId string
workflowVersion integer
message string
requestId string
400 Bad request
404 Workflow not found
curl -X GET 'https://api.example.com/v1/workflows/string/analyze-funds' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://api.example.com/v1/workflows/string/analyze-funds', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://api.example.com/v1/workflows/string/analyze-funds', headers=headers)print(response.json())
package mainimport (	"fmt"	"io"	"net/http")func main() {	req, _ := http.NewRequest("GET", "https://api.example.com/v1/workflows/string/analyze-funds", nil)	req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")	resp, _ := http.DefaultClient.Do(req)	defer resp.Body.Close()	result, _ := io.ReadAll(resp.Body)	fmt.Println(string(result))}
200 Response
{  "code": 200,  "data": {    "balancesFetched": true,    "requirements": [      {        "amountIsHumanReadable": true,        "balance": {          "amount": "<string>",          "amountUsd": 123,          "chainId": 123,          "decimals": 123,          "isInsufficient": true,          "isLow": true,          "symbol": "<string>",          "tokenAddress": "<string>",          "walletAddress": "<string>"        },        "chainId": 123,        "chainName": "<string>",        "decimals": 123,        "isNative": true,        "nodeId": "<string>",        "nodeName": "<string>",        "nodeType": "<string>",        "reason": "<string>",        "requiredAmount": "<string>",        "source": "requiredTokens",        "symbol": "<string>",        "tokenAddress": "<string>",        "unresolved": true,        "unresolvedReason": "chainId",        "walletAddress": "<string>"      }    ],    "unresolved": [      {        "amountIsHumanReadable": true,        "chainId": 123,        "chainName": "<string>",        "decimals": 123,        "isNative": true,        "nodeId": "<string>",        "nodeName": "<string>",        "nodeType": "<string>",        "reason": "<string>",        "requiredAmount": "<string>",        "source": "requiredTokens",        "symbol": "<string>",        "tokenAddress": "<string>",        "unresolved": true,        "unresolvedReason": "chainId",        "walletAddress": "<string>"      }    ],    "workflowId": "<string>",    "workflowVersion": 123  },  "message": "success",  "requestId": "abc-123"}