OpenAPI Specification
openapi: 3.1.0
info:
description: Workflow management API for B3OS
title: B3OS Workflow Action Public API
version: '1.0'
tags:
- name: Public
paths:
/v1/public/runs/by-tx/{txHash}:
get:
description: Find a run by trigger transaction hash (no auth required)
parameters:
- description: Transaction Hash
in: path
name: txHash
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetPublicRunByTxSuccessResponse'
description: OK
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Not Found
tags:
- Public
/v1/public/workflows/{id}/meta:
get:
description: 'Get public metadata (name, description) for a workflow.
No auth required — intentionally unauthenticated for OG image generation.
Only returns title and description; no sensitive data is exposed.'
parameters:
- description: Workflow ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetPublicMetaSuccessResponse'
description: OK
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Not Found
tags:
- Public
/v1/public/workflows/{id}/widget:
get:
description: Get public widget configuration for a workflow (no auth required)
parameters:
- description: Workflow ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetPublicWidgetSuccessResponse'
description: OK
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Not Found
tags:
- Public
components:
schemas:
GetPublicMetaResponse:
properties:
description:
description: Description is a short summary of what the workflow does.
type: string
name:
description: Name is the display name of the workflow.
type: string
workflowId:
description: WorkflowID is the workflow identifier.
type: string
type: object
PublicNodeState:
properties:
finishedAt:
description: When execution finished
type: string
startedAt:
description: When execution started
type: string
status:
description: '"pending", "running", "success", "failure", "skipped"'
type: string
type:
description: Node type (e.g., "erc20-receive", "send-slack-message")
type: string
type: object
PublicWorkflowNode:
properties:
children:
description: Child node IDs
items:
type: string
type: array
uniqueItems: false
loopBody:
description: Loop body node IDs (for-each only)
items:
type: string
type: array
uniqueItems: false
type:
description: Node type
type: string
type: object
GetPublicRunByTxSuccessResponse:
properties:
code:
example: 0
type: integer
data:
$ref: '#/components/schemas/GetPublicRunByTxResponse'
message:
example: success
type: string
requestId:
example: abc-123
type: string
type: object
PublicWidgetData:
description: Widget contains the public widget configuration with derived trigger values
properties:
buttonLabel:
description: ButtonLabel is the text displayed on the trigger button
type: string
chainId:
description: ChainID is derived from the trigger's chainId
type: integer
description:
description: Description explains what the workflow does
type: string
enabled:
description: Enabled controls whether the public widget is active
type: boolean
maxAmount:
description: MaxAmount is the maximum amount allowed per trigger (in smallest unit)
type: string
minAmount:
description: MinAmount is the minimum amount required to trigger (in smallest unit)
type: string
recipientAddress:
description: RecipientAddress is derived from the trigger's toAddress/contractAddress
type: string
title:
description: Title is the display title for the widget
type: string
tokenAddress:
description: TokenAddress is derived from the trigger's tokenAddress (empty for native token)
type: string
type: object
GetPublicWidgetResponse:
properties:
widget:
$ref: '#/components/schemas/PublicWidgetData'
workflowId:
description: WorkflowID is the workflow identifier
type: string
workflowName:
description: WorkflowName is the display name of the workflow
type: string
type: object
GetPublicMetaSuccessResponse:
properties:
code:
example: 200
type: integer
data:
$ref: '#/components/schemas/GetPublicMetaResponse'
message:
example: success
type: string
requestId:
example: abc-123
type: string
type: object
GetPublicWidgetSuccessResponse:
properties:
code:
example: 200
type: integer
data:
$ref: '#/components/schemas/GetPublicWidgetResponse'
message:
example: success
type: string
requestId:
example: abc-123
type: string
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse:
properties:
code:
type: integer
details:
items: {}
type: array
uniqueItems: false
message:
type: string
requestId:
type: string
type: object
GetPublicRunByTxResponse:
properties:
executionState:
additionalProperties:
$ref: '#/components/schemas/PublicNodeState'
description: Current state of each node
type: object
finishedAt:
type: string
nodes:
additionalProperties:
$ref: '#/components/schemas/PublicWorkflowNode'
description: Step-by-step execution data
type: object
runId:
type: string
startedAt:
type: string
status:
description: '"running", "success", "failure"'
type: string
workflowId:
type: string
type: object