> Source: https://builder-docs.ema.ai/api-reference/workflows/workflow-api
> Title: Workflow API

# Workflow API

This page documents the gRPC-Web API endpoints for querying workflows and actions. All endpoints use the gRPC-Web over HTTP protocol.

For instructions on encoding and decoding gRPC-Web requests, see [Handling gRPC-Web Requests](/legacy-docs/api-reference/misc/grpc-web).

## ListActions

List all available action types.

Property

Value

URL

`/workflows.v1.ActionManager/ListActions`

HTTP Method

POST

Protocol

gRPC-Web over HTTP

### Headers

Header

Type

Required

Description

`Authorization`

string

Yes

Bearer token

`Content-Type`

string

Yes

`application/grpc-web+proto`

`x-grpc-web`

string

Yes

`1`

### Request

Field

Type

Required

Description

`include_deprecated_actions`

bool

No

Whether to include deprecated actions

### Response

Field

Type

Description

`actions`

repeated ActionType

List of available action types

Each `ActionType` includes the action's name, category, inputs, outputs, and metadata. See [Action Data Model](/legacy-docs/api-reference/workflows/action-data-model) for structure details.

## ListActionsFromWorkflow

List action types used in a specific workflow.

Property

Value

URL

`/workflows.v1.ActionManager/ListActionsFromWorkflow`

HTTP Method

POST

Protocol

gRPC-Web over HTTP

### Headers

Header

Type

Required

Description

`Authorization`

string

Yes

Bearer token

`Content-Type`

string

Yes

`application/grpc-web+proto`

`x-grpc-web`

string

Yes

`1`

### Request

Field

Type

Required

Description

`workflow_name`

RegisteredWorkflowName

Yes

The workflow to query

### Response

Field

Type

Description

`actions`

repeated ActionType

Action types used in the specified workflow

## ListExternalActions

List available external actions from third-party providers.

Property

Value

URL

`/workflows.v1.ActionManager/ListExternalActions`

HTTP Method

POST

Protocol

gRPC-Web over HTTP

### Headers

Header

Type

Required

Description

`Authorization`

string

Yes

Bearer token

`Content-Type`

string

Yes

`application/grpc-web+proto`

`x-grpc-web`

string

Yes

`1`

### Request

Field

Type

Required

Description

`provider`

ActionProvider

No

Filter by provider (Paragon, Composio, etc.)

### Response

Field

Type

Description

`actions`

repeated ActionType

List of external action types

## GetEdgeCandidates

Retrieve valid edge candidates for connecting actions in a workflow graph. This endpoint helps determine which actions can be connected as inputs/outputs while maintaining a valid DAG structure (no cycles).

Property

Value

URL

`/workflows.v1.WorkflowManager/GetEdgeCandidates`

HTTP Method

POST

Protocol

gRPC-Web over HTTP

### Headers

Header

Type

Required

Description

`Authorization`

string

Yes

Bearer token

`Content-Type`

string

Yes

`application/grpc-web+proto`

`x-grpc-web`

string

Yes

`1`

### Request

Field

Type

Required

Description

`workflow_name`

RegisteredWorkflowName

Yes

The workflow to query

`source_action`

string

Yes

Name of the source action instance

`source_output`

string

Yes

Name of the output parameter

### Response

Field

Type

Description

`candidates`

repeated EdgeCandidate

Valid target actions and inputs

### EdgeCandidate

Field

Type

Description

`action_name`

string

Name of the target action instance

`input_name`

string

Name of the target input parameter

`type_match`

bool

Whether the types are compatible

## CreateWorkflow

Create a new workflow definition.

Property

Value

URL

`/workflows.v1.WorkflowManager/CreateWorkflow`

HTTP Method

POST

Protocol

gRPC-Web over HTTP

### Headers

Header

Type

Required

Description

`Authorization`

string

Yes

Bearer token

`Content-Type`

string

Yes

`application/grpc-web+proto`

`x-grpc-web`

string

Yes

`1`

### Request

Field

Type

Required

Description

`workflow_def`

WorkflowDef

Yes

The workflow definition

### Response

Field

Type

Description

`workflow_name`

RegisteredWorkflowName

Name of the created workflow

## UpdateWorkflow

Update an existing workflow definition.

Property

Value

URL

`/workflows.v1.WorkflowManager/UpdateWorkflow`

HTTP Method

POST

Protocol

gRPC-Web over HTTP

### Headers

Header

Type

Required

Description

`Authorization`

string

Yes

Bearer token

`Content-Type`

string

Yes

`application/grpc-web+proto`

`x-grpc-web`

string

Yes

`1`

### Request

Field

Type

Required

Description

`workflow_def`

WorkflowDef

Yes

Updated workflow definition

### Response

Field

Type

Description

`workflow_name`

RegisteredWorkflowName

Name of the updated workflow

## GetWorkflow

Retrieve a workflow definition.

Property

Value

URL

`/workflows.v1.WorkflowManager/GetWorkflow`

HTTP Method

POST

Protocol

gRPC-Web over HTTP

### Headers

Header

Type

Required

Description

`Authorization`

string

Yes

Bearer token

`Content-Type`

string

Yes

`application/grpc-web+proto`

`x-grpc-web`

string

Yes

`1`

### Request

Field

Type

Required

Description

`workflow_name`

RegisteredWorkflowName

Yes

Name of the workflow

### Response

Field

Type

Description

`workflow_def`

WorkflowDef

The workflow definition

## Related

-   [Workflow Overview](/legacy-docs/api-reference/workflows/overview) -- Concepts and architecture
-   [Workflow Data Model](/legacy-docs/api-reference/workflows/workflow-data-model) -- WorkflowDef structure
-   [Action Data Model](/legacy-docs/api-reference/workflows/action-data-model) -- ActionType structure
-   [Handling gRPC-Web Requests](/legacy-docs/api-reference/misc/grpc-web) -- Encoding guide
