B3

B3 Public API

The Public API from B3 — 3 operation(s) for public.

OpenAPI Specification

b3-public-api-openapi.yml Raw ↑
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