GET /v1/workflows/{id}/versions/{versionNumber}
Get a specific version of a workflow by version number

Path Parameters

id string required path
Workflow ID
versionNumber integer required path
Version number

Responses

200 OK
application/json
code integer
data object
aiDescription string
aiName string
conversationId string
cooldownMs integer
createdAt string
createdBy string
definition object
Definition is the full workflow graph to execute. Must contain a "root" node with type "manual". All action nodes referenced in children arrays must be present.
blockExpansions object
Set on run snapshots only (not workflow DB)
inputSchema object[]
Array of:
description string
key string
required boolean
type string
"string", "number", "boolean", "object", "array"
nodes object REQUIRED
descManuallySet boolean
description string
fundAutoSwapConfig object
enabled boolean
maxSwapAmountUsd number
mode string
sources object[]
Array of:
chainId integer
ChainID is the source chain to sell from.
id string
ID is a unique identifier for this source (e.g., "src_abc123").
priority integer
Priority controls order of evaluation (lower = tried first).
slippageBps integer
SlippageBps is the slippage tolerance in basis points. Default 300 (3%).
tokenAddress string
TokenAddress is the token to sell. Use "native" for native gas tokens.
tokenDecimals integer
TokenDecimals is the number of decimal places for the token (e.g. 18 for ETH, 6 for USDC). Stored so the UI can display the human-readable amount without re-fetching on-chain metadata.
walletId string
WalletID is the org wallet to sell from.
hasDraft boolean
Response-only fields (not persisted to database) HasDraft indicates a draft exists (for live workflows in API responses)
hasLiveVersion boolean
HasLiveVersion indicates a live version exists (for drafts in API responses)
id string
lastTriggeredAt string
maxRuns integer
name string
nameManuallySet boolean
organizationId string
ownerUserId string
pausedReason string
Enum: cu_exhausted, disabled_action, consecutive_failures
publicRunCooldownSeconds integer
publicRunDailyLimit integer
publicWidgetConfig object
buttonLabel string
ButtonLabel is the text displayed on the trigger button
description string
Description explains what the workflow does
enabled boolean
Enabled controls whether the public widget is active
maxAmount string
MaxAmount is the maximum amount allowed per trigger (in smallest unit)
minAmount string
MinAmount is the minimum amount required to trigger (in smallest unit)
title string
Title is the display title for the widget
remainRuns integer
sourceTemplateId string
status string
Enum: draft, active, paused, archived
triggerSecret string
type string
Enum: token-price-cexes, evm-log, cronjob, schedule, manual, telegram-channel, polymarket-user-bet, polymarket-market-trade, polymarket-new-market, polymarket-market-close, slack-mentions, erc20-receive, erc20-send, anyspend, shopify-order-created, shopify-order-paid, shopify-inventory-level-updated, ramp-new-transaction, ramp-transaction-status-updated, ramp-transfer-payment-updated, slack-new-reaction-added, slack-new-message-in-channels, slack-new-channel-created, slack-new-direct-message, slack-new-keyword-mention, slack-new-user-added, slack-new-user-mention, slack-new-interaction-event, telegram-new-interaction-event, email-new-email-received, email-new-email-matching-criteria, gmail-new-email-received, gmail-new-email-matching-search, stripe-payment-receive, eth-receive, eth-send, farcaster-new-cast, farcaster-new-follower, farcaster-new-reaction, x-new-tweet, exchange-listing, coinbase-payment-received, coinbase-checkout-received, solana-transaction
uiMetadata object
comments object[]
Array of:
createdAt string
createdBy object
clientId string
name string
id string
nodeId string
position object
x number
y number
replies object[]
Array of:
createdAt string
createdBy object
...
id string
text string
updatedAt string
resolved boolean
text string
updatedAt string
nodePositions object
stickyNotes object[]
Array of:
color string
createdAt string
createdBy object
clientId string
name string
id string
position object
x number
y number
size object
height number
width number
text string
updatedAt string
zIndex integer
updatedAt string
updatedBy string
version integer
visibility string
Enum: private, org, public_view, public_execute
x402Config object
chainId integer
Chain ID where payment should be made (e.g., 8453 for Base)
discoverable boolean
Discoverable controls whether this workflow is listed in the Bazaar public catalog. Bazaar is a discovery marketplace where users can find and pay for x402-enabled endpoints. When true: Endpoint is publicly listed, anyone can trigger with payment only (no secret needed). When false: Endpoint is private, requires both secret and payment to trigger.
discoveryInput object
example unknown
Example provides a sample value for documentation and testing
schema object
Schema is a JSON Schema definition for validation
discoveryMetadata object
category string
Category groups workflows (e.g., "data", "automation", "ai")
description string
Description provides details about what the workflow does
documentation string
Documentation URL for additional documentation
logo string
Logo URL for the workflow/provider logo
name string
Name is the display name for the workflow
provider string
Provider is the name of the entity providing this workflow
tags string[]
Tags for searchable keywords
Array of:
discoveryOutput object
example unknown
Example provides a sample value for documentation and testing
schema object
Schema is a JSON Schema definition for validation
price string
Price in the smallest unit of the token (e.g., wei for ETH, 6 decimals for USDC)
recipient string
Recipient address that will receive the payment
token string
Token address (e.g., USDC contract address)
message string
requestId string
400 Bad Request
404 Not Found
curl -X GET 'https://api.example.com/v1/workflows/string/versions/0' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://api.example.com/v1/workflows/string/versions/0', {  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/versions/0', headers=headers)print(response.json())
package mainimport (	"fmt"	"io"	"net/http")func main() {	req, _ := http.NewRequest("GET", "https://api.example.com/v1/workflows/string/versions/0", 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": {    "aiDescription": "<string>",    "aiName": "<string>",    "conversationId": "<string>",    "cooldownMs": 123,    "createdAt": "<string>",    "createdBy": "<string>",    "definition": {      "blockExpansions": "<object>",      "inputSchema": [        {          "description": "<string>",          "key": "<string>",          "required": true,          "type": "<string>"        }      ],      "nodes": "<object>"    },    "descManuallySet": true,    "description": "<string>",    "fundAutoSwapConfig": {      "enabled": true,      "maxSwapAmountUsd": 123,      "mode": "<string>",      "sources": [        {          "chainId": 123,          "id": "<string>",          "priority": 123,          "slippageBps": 123,          "tokenAddress": "<string>",          "tokenDecimals": 123,          "walletId": "<string>"        }      ]    },    "hasDraft": true,    "hasLiveVersion": true,    "id": "<string>",    "lastTriggeredAt": "<string>",    "maxRuns": 123,    "name": "<string>",    "nameManuallySet": true,    "organizationId": "<string>",    "ownerUserId": "<string>",    "pausedReason": "cu_exhausted",    "publicRunCooldownSeconds": 123,    "publicRunDailyLimit": 123,    "publicWidgetConfig": {      "buttonLabel": "<string>",      "description": "<string>",      "enabled": true,      "maxAmount": "<string>",      "minAmount": "<string>",      "title": "<string>"    },    "remainRuns": 123,    "sourceTemplateId": "<string>",    "status": "draft",    "triggerSecret": "<string>",    "type": "token-price-cexes",    "uiMetadata": {      "comments": [        {          "createdAt": "<string>",          "createdBy": {            "clientId": {},            "name": {}          },          "id": "<string>",          "nodeId": "<string>",          "position": {            "x": {},            "y": {}          },          "replies": [            {}          ],          "resolved": true,          "text": "<string>",          "updatedAt": "<string>"        }      ],      "nodePositions": "<object>",      "stickyNotes": [        {          "color": "<string>",          "createdAt": "<string>",          "createdBy": {            "clientId": {},            "name": {}          },          "id": "<string>",          "position": {            "x": {},            "y": {}          },          "size": {            "height": {},            "width": {}          },          "text": "<string>",          "updatedAt": "<string>",          "zIndex": 123        }      ]    },    "updatedAt": "<string>",    "updatedBy": "<string>",    "version": 123,    "visibility": "private",    "x402Config": {      "chainId": 123,      "discoverable": true,      "discoveryInput": {        "example": "<unknown>",        "schema": "<object>"      },      "discoveryMetadata": {        "category": "<string>",        "description": "<string>",        "documentation": "<string>",        "logo": "<string>",        "name": "<string>",        "provider": "<string>",        "tags": [          "<string>"        ]      },      "discoveryOutput": {        "example": "<unknown>",        "schema": "<object>"      },      "price": "<string>",      "recipient": "<string>",      "token": "<string>"    }  },  "message": "success",  "requestId": "abc-123"}
Ask a question... ⌘I