B3

B3 Workflow Variables API

The WorkflowVariables API from B3 — 6 operation(s) for workflowvariables.

Operations 7

GET /v1/runs/{runId}/variable-writes Variable writes for a run
GET /v1/workflows/{workflowId}/variables List workflow variables
DELETE /v1/workflows/{workflowId}/variables/{name} Delete workflow variable
PUT /v1/workflows/{workflowId}/variables/{name} Create or update workflow variable definition
GET /v1/workflows/{workflowId}/variables/{name}/history Workflow variable write history
POST /v1/workflows/{workflowId}/variables/{name}/reset Reset workflow variable to default
POST /v1/workflows/{workflowId}/variables/{name}/value Manually set workflow variable value

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/b3-workflowvariables-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

b3-workflowvariables-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Workflow management API for B3OS
  title: B3OS Workflow Workflow Variables API
  version: '1.0'
tags:
- name: WorkflowVariables
paths:
  /v1/runs/{runId}/variable-writes:
    get:
      parameters:
      - description: Run ID
        in: path
        name: runId
        required: true
        schema:
          type: string
      - description: Max rows per page
        in: query
        name: limit
        schema:
          type: integer
      - description: Offset for pagination (default 0)
        in: query
        name: offset
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRunVariableWritesResponse'
          description: OK
      summary: Variable writes for a run
      tags:
      - WorkflowVariables
  /v1/workflows/{workflowId}/variables:
    get:
      parameters:
      - description: Workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWorkflowVariablesResponse'
          description: OK
      summary: List workflow variables
      tags:
      - WorkflowVariables
  /v1/workflows/{workflowId}/variables/{name}:
    delete:
      parameters:
      - description: Workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      - description: Variable name
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse'
          description: OK
      summary: Delete workflow variable
      tags:
      - WorkflowVariables
    put:
      parameters:
      - description: Workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      - description: Variable name
        in: path
        name: name
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
              - $ref: '#/components/schemas/UpsertWorkflowVariableDefParams'
                summary: body
                description: Variable definition
        description: Variable definition
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableDef'
          description: OK
      summary: Create or update workflow variable definition
      tags:
      - WorkflowVariables
  /v1/workflows/{workflowId}/variables/{name}/history:
    get:
      parameters:
      - description: Workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      - description: Variable name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Max rows per page
        in: query
        name: limit
        schema:
          type: integer
      - description: Offset for pagination (default 0)
        in: query
        name: offset
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVariableHistoryResponse'
          description: OK
      summary: Workflow variable write history
      tags:
      - WorkflowVariables
  /v1/workflows/{workflowId}/variables/{name}/reset:
    post:
      parameters:
      - description: Workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      - description: Variable name
        in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse'
          description: OK
      summary: Reset workflow variable to default
      tags:
      - WorkflowVariables
  /v1/workflows/{workflowId}/variables/{name}/value:
    post:
      parameters:
      - description: Workflow ID
        in: path
        name: workflowId
        required: true
        schema:
          type: string
      - description: Variable name
        in: path
        name: name
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
              - $ref: '#/components/schemas/SetWorkflowVariableValueParams'
                summary: body
                description: New value
        description: New value
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse'
          description: OK
      summary: Manually set workflow variable value
      tags:
      - WorkflowVariables
components:
  schemas:
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CommentReply:
      properties:
        createdAt:
          type: string
        createdBy:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser'
        id:
          type: string
        text:
          type: string
        updatedAt:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableValueWithMeta:
      properties:
        def:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableDef'
        hasValue:
          type: boolean
        lastRunId:
          type: string
        updatedAt:
          type: string
        value: {}
        version:
          type: integer
      type: object
    PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_VariableWrite:
      properties:
        hasMore:
          type: boolean
        items:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableWrite'
          type: array
          uniqueItems: false
        limit:
          type: integer
        offset:
          type: integer
      type: object
    UpsertWorkflowVariableDefParams:
      properties:
        default: {}
        description:
          type: string
        lifetime:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableLifetime'
        name:
          type: string
        type:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableType'
      required:
      - lifetime
      - type
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteSize:
      properties:
        height:
          type: number
        width:
          type: number
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowInput:
      properties:
        description:
          type: string
        key:
          type: string
        required:
          type: boolean
        type:
          description: '"string", "number", "boolean", "object", "array"'
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowNode:
      properties:
        blockContext:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockNodeContext'
        branch:
          description: '"then"/"else" (if parent), "resumed"/"timed_out" (wait parent)'
          type: string
        children:
          items:
            type: string
          type: array
          uniqueItems: false
        connector:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ConnectorReference'
        description:
          description: AI-generated 1-sentence description
          type: string
        loopBody:
          description: Loop body nodes (only for for-each nodes)
          items:
            type: string
          type: array
          uniqueItems: false
        payload:
          additionalProperties: {}
          type: object
        resultSchema:
          additionalProperties: {}
          description: 'ResultSchema describes the output structure of this node (populated dynamically for x402 endpoints).

            This is used by the frontend to show available output variables in the variable picker.'
          type: object
        titleOverride:
          description: AI-generated short title (2-6 words), only when more descriptive than default
          type: string
        type:
          type: string
      required:
      - payload
      - type
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockOutputProperty:
      properties:
        description:
          type: string
        properties:
          additionalProperties:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockOutputProperty'
          type: object
        type:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropVisibleWhen:
      description: 'VisibleWhen controls conditional visibility: show this prop only when

        the referenced prop has the specified value.'
      properties:
        propKey:
          type: string
        value: {}
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchemaSummaryAggregate:
      properties:
        column:
          description: Column key in PropSchema.Columns.
          type: string
        label:
          description: 'Optional override for the displayed label. If empty, the frontend

            derives a label from the column + reducer (e.g. "Total amount").'
          type: string
        reduce:
          description: 'Reducer name. Matches the key in the frontend cell-spec''s

            `aggregate` map (currently: "sum", "count"). Unknown reducers are

            silently skipped on the frontend.'
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateProp:
      properties:
        default: {}
        description:
          type: string
        key:
          type: string
        name:
          type: string
        properties:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchema'
        required:
          type: boolean
        sensitive:
          type: boolean
        type:
          description: '"string", "number", "integer", "boolean", "object" (for csvTable)'
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateVisibility:
      enum:
      - org
      - public
      - org
      - public
      type: string
      x-enum-comments:
        TemplateVisibilityOrg: Only visible to organization members
        TemplateVisibilityPublic: Visible to everyone
      x-enum-varnames:
      - TemplateVisibilityOrg
      - TemplateVisibilityPublic
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSource:
      properties:
        fieldPath:
          type: string
        nodeId:
          type: string
        nodeLabel:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNote:
      properties:
        color:
          type: string
        createdAt:
          type: string
        createdBy:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser'
        id:
          type: string
        position:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.NodePosition'
        size:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteSize'
        text:
          type: string
        updatedAt:
          type: string
        zIndex:
          type: integer
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowDefinition:
      description: 'Definition is the inline workflow graph to analyze. Same shape as a

        saved workflow''s definition. Unlike the ephemeral-run endpoint there

        is no trigger restriction — analysis is read-only and method-agnostic.'
      properties:
        blockExpansions:
          additionalProperties:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockExpansionMeta'
          description: Set on run snapshots only (not workflow DB)
          type: object
        inputSchema:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowInput'
          type: array
          uniqueItems: false
        nodes:
          additionalProperties:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowNode'
          type: object
        sensitivePropKeys:
          description: 'Legacy: kept for old runs; no longer populated for new workflows'
          items:
            type: string
          type: array
          uniqueItems: false
        triggerNodeIds:
          description: 'TriggerNodeIDs lists the node IDs that are trigger (root) nodes. Every

            workflow declares this — single-trigger workflows ship ["root"] (the

            legacy node id), multi-trigger workflows list every trigger node id.

            Treating single-trigger as a forest-of-1 removes the two-path branching

            throughout the BE + FE; older rows without the field are backfilled by

            migration 000282 and the field-missing path stays as a read-side safety

            net (see FindTriggerNodeIDs) but is no longer exercised by saves.


            "root" is also a runtime alias for "the trigger that fired this run" —

            {{root.X}} variable references resolve to the firing trigger regardless

            of which trigger fired. Don''t repurpose the literal "root" as a trigger

            id on a multi-trigger workflow.'
          items:
            type: string
          type: array
          uniqueItems: false
        variableDefs:
          description: 'VariableDefs is a snapshot of the workflow''s declared variables at run

            creation time. The canonical source lives on the workflows row

            (Workflow.VariableDefs column). Snapshotted into the run definition

            so the worker can resolve {{$vars.x}} lookups and route variable-action

            writes to the right scope without an extra DB round trip.'
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableDef'
          type: array
          uniqueItems: false
      required:
      - nodes
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockNodeContext:
      description: 'BlockContext is set on nodes that were expanded from a block.

        It traces the node back to its source block and carries the inputMapping

        needed to resolve {{$inputs.key}} references at execution time.'
      properties:
        blockId:
          description: Block entity ID
          type: string
        blockNodeId:
          description: Original block node ID in the workflow
          type: string
        blockVersion:
          description: Pinned block version
          type: integer
        inputMapping:
          additionalProperties: {}
          description: From block node payload (consumer-authored)
          type: object
      type: object
    SetWorkflowVariableValueParams:
      properties:
        value: {}
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchemaSummary:
      description: 'Summary drives the csvTable footer summary. Nil means no summary is

        rendered. See PropSchemaSummary for details.'
      properties:
        aggregates:
          description: Aggregates declared in display order, left-to-right.
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchemaSummaryAggregate'
          type: array
          uniqueItems: false
        position:
          description: 'Position in the grid. "footer" (default) renders inline under the

            table. "none" suppresses even when aggregates are declared — use to

            disable inherited summaries. Other values reserved.'
          type: string
      type: object
    ? github_com_b3-fun_b3-mono_services_b3os-workflow_PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_Template
    : properties:
        hasMore:
          type: boolean
        items:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Template'
          type: array
          uniqueItems: false
        limit:
          type: integer
        offset:
          type: integer
      type: object
    ListRunVariableWritesResponse:
      properties:
        code:
          example: 200
          type: integer
        data:
          $ref: '#/components/schemas/PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_VariableWrite'
        message:
          example: success
          type: string
        requestId:
          example: abc-123
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.StickyNoteUser:
      properties:
        clientId:
          type: string
        name:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.SuccessResponse:
      allOf:
      - $ref: '#/components/schemas/data'
      properties:
        code:
          type: integer
        data: {}
        message:
          type: string
        requestId:
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TableSchema:
      properties:
        columns:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ColumnSchema'
          type: array
          uniqueItems: false
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableDef:
      properties:
        default: {}
        description:
          type: string
        lifetime:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableLifetime'
        name:
          type: string
        type:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableType'
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchema:
      properties:
        accountType:
          description: 'AccountType filters the wallet picker by account type on

            inputType="walletConnector" fields (e.g. "polymarket_deposit_wallet").'
          type: string
        allowWalletPicker:
          description: 'AllowWalletPicker controls the org-wallet picker on inputType="address"

            fields. When false, the frontend hides the inline "Wallets" badge and

            the org-wallet autocomplete popover. Use for third-party address fields

            (e.g. a deployer filter) where suggesting org wallets is misleading.

            Pointer so explicit false survives JSON round-trip (default true on FE).'
          type: boolean
        allowedChannels:
          description: 'AllowedChannels constrains the notification-channel picker

            (inputType: "notification-channel") to a subset of channels. Used by

            templates whose downstream nodes only work with one channel type

            (e.g. ["slack"] for a Slack-only approval flow). Frontend ignores

            unknown keys; a length-1 list auto-selects in the picker.'
          items:
            type: string
          type: array
          uniqueItems: false
        autoFillFromWallet:
          description: 'AutoFillFromWallet, when true, auto-fills this prop with the selected

            workflow wallet address and hides it from the form. Pointer so an

            explicit false survives the JSON round-trip (same rationale as

            AllowWalletPicker).'
          type: boolean
        bindsConnectorNodes:
          description: 'BindsConnectorNodes lists workflow node IDs whose wallet-type connector

            should be prefilled from this prop''s picked wallet (inputType:

            "walletConnector"). The connector stays a plain, editable connector —

            this is a prefill, not a permanent bind.'
          items:
            type: string
          type: array
          uniqueItems: false
        chainId:
          description: 'For tokenAmount: hardcoded chain ID'
          type: integer
        chainPropKey:
          description: 'For tokenSelector/tokenAmount: prop key providing chainId'
          type: string
        columns:
          description: 'Columns describes a csvTable prop (inputType: "csvTable"). The stored

            value is an object-of-columnar-arrays: {colKey: []value}. Payload

            templates reference each column via {{$props.<propKey>.<colKey>}}.'
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropColumn'
          type: array
          uniqueItems: false
        dex:
          description: 'For hyperliquidAsset: hardcoded DEX name (fallback when no dexPropKey)'
          type: string
        dexPropKey:
          description: 'For hyperliquidAsset: prop key providing HIP-3 DEX name'
          type: string
        enum:
          items: {}
          type: array
          uniqueItems: false
        enumLabels:
          items:
            type: string
          type: array
          uniqueItems: false
        excludeNative:
          description: 'For tokenSelector/multiTokenSelector: hide native tokens (field only accepts ERC-20 contract addresses)'
          type: boolean
        groupKey:
          description: Groups related props for unified UI rendering
          type: string
        inputType:
          description: 'InputType is a UI rendering hint. The frontend uses it to pick a rich

            selector component instead of a plain text input. Unknown values are

            silently ignored (falls back to default input).

            Valid values: chainSelector, tokenSelector, multiTokenSelector, tokenAmount,

            coinSelector, multiCoinSelector, address, contractAddress, recipientAddress,

            email, telegram-chat, slack-channel, pushover-recipient, pushbullet-device,

            webpush-subscription, textarea, password, polymarketUser, twitterUsername,

            storkAsset, hyperliquidAsset, morphoVault, morphoMarket, csvTable,

            notification-channel, googleSheetUrl, rrule, walletConnector'
          type: string
        maxRows:
          description: 'csvTable: maximum allowed rows (0 = no cap)'
          type: integer
        maximum:
          type: number
        minRows:
          description: 'csvTable: minimum required rows (0 = default 1)'
          type: integer
        minimum:
          type: number
        pattern:
          type: string
        placeholder:
          type: string
        showWalletBalances:
          description: 'For tokenSelector: show wallet balances (useful for "sell" tokens)'
          type: boolean
        sources:
          description: 'Sources lists the workflow node fields this prop was created from.

            Each entry identifies a node + field path so the frontend can

            reliably match props back to their source fields on reload.

            Multiple entries indicate the prop was merged from fields with

            identical values across different nodes.'
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSource'
          type: array
          uniqueItems: false
        summary:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropSchemaSummary'
        tokenAddress:
          description: 'For tokenAmount: hardcoded token address'
          type: string
        tokenAddressPropKey:
          description: 'For tokenAmount: prop key providing tokenAddress'
          type: string
        visibleWhen:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropVisibleWhen'
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ColumnSchema:
      properties:
        default:
          type: string
        name:
          type: string
        notNull:
          type: boolean
        primaryKey:
          type: boolean
        type:
          type: string
        unique:
          type: boolean
      type: object
    data:
      properties:
        data:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_Template'
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Template:
      properties:
        archived:
          type: boolean
        category:
          description: 'Deprecated: Use Tags instead'
          type: string
        cooldownMs:
          type: integer
        createdAt:
          type: string
        createdBy:
          type: string
        definition:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowDefinition'
        description:
          type: string
        forkCount:
          type: integer
        generatedAppId:
          description: 'Generated-app attachment (nil when the template ships no app). On

            adoption the referenced app is CLONED into the adopting org''s new

            workflow. GeneratedAppVersionID optionally pins a specific version

            whose manifest is used as the clone source.'
          type: string
        generatedAppVersionId:
          type: string
        id:
          type: string
        isPromoted:
          type: boolean
        maxRuns:
          type: integer
        moderationStatus:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateModerationStatus'
        name:
          type: string
        organizationDescription:
          type: string
        organizationId:
          description: Fields for user-generated templates (nil for built-in templates)
          type: string
        organizationName:
          type: string
        organizationPhoto:
          type: string
        promotedAt:
          type: string
        promotedBy:
          type: string
        promotedOrder:
          type: integer
        rejectionReason:
          type: string
        reviewedAt:
          type: string
        reviewedBy:
          type: string
        slug:
          type: string
        sourceWorkflowId:
          description: Source workflow link (nil for built-in or legacy templates)
          type: string
        submittedAt:
          type: string
        tableSchemas:
          additionalProperties:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TableSchema'
          type: object
        tags:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.Tag'
          type: array
          uniqueItems: false
        templateProps:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateProp'
          type: array
          uniqueItems: false
        uiMetadata:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.WorkflowUIMetadata'
        updatedAt:
          type: string
        updatedBy:
          type: string
        version:
          type: integer
        visibility:
          $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.TemplateVisibility'
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.ConnectorReference:
      description: nil if action doesn't need connector
      properties:
        chainId:
          type: integer
        id:
          type: string
        type:
          type: string
        walletAddress:
          description: 'WalletAddress is the wallet''s on-chain address, only meaningful for

            type:"wallet" refs. Not used by ConnectorResolver (which resolves the

            address from the wallet DB record); exists for frontend round-trip fidelity.'
          type: string
      type: object
    ListVariableHistoryResponse:
      properties:
        code:
          example: 200
          type: integer
        data:
          $ref: '#/components/schemas/PaginatedData-github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity_VariableWrite'
        message:
          example: success
          type: string
        requestId:
          example: abc-123
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableOp:
      enum:
      - set
      - manual_set
      - manual_reset
      type: string
      x-enum-varnames:
      - VariableOpSet
      - VariableOpManualSet
      - VariableOpManualReset
    ListWorkflowVariablesResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableValueWithMeta'
          type: array
          uniqueItems: false
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.PropColumn:
      properties:
        chainId:
          type: integer
        chainPropKey:
          description: For tokenAmount cells
          type: string
        inputType:
          description: address, recipientAddress, tokenAmount, text (see frontend CELL_REGISTRY)
          type: string
        key:
          type: string
        name:
          type: string
        pattern:
          type: string
        placeholder:
          type: string
        required:
          type: boolean
        tokenAddress:
          type: string
        tokenAddressPropKey:
          description: For tokenAmount cells
          type: string
        type:
          description: '"string", "number", "integer"'
          type: string
      type: object
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.VariableLifetime:
      enum:
      - persist
      - reset
      type: string
      x-enum-varnames:
      - VariableLifetimePersist
      - VariableLifetimeReset
    github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.BlockExpansionMeta:
      properties:
        blockId:
          type: string
        blockVersion:
          type: integer
        entryNodeIds:
          description: Subset of ExpandedIDs that are entry points
          items:
            type: strin

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/b3/refs/heads/main/openapi/b3-workflowvariables-api-openapi.yml