Skip to content

API Workflows

Create an API workflow

POST /views/{viewId}/api-workflows

Code samples

curl -X POST https://localhost:9543/api/v0.9/views/{viewId}/api-workflows \
  -u {username}:{password} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}' \
  -d @payload.json

Creates an API workflow in the selected view. If id is omitted, the service generates one from the display name. ARAZZO content is parsed from JSON or YAML; invalid Arazzo content returns a bad request.

Payload

{
  "displayName": "Weather onboarding",
  "id": "weather-onboarding",
  "description": "Guides users through the Weather API onboarding workflow.",
  "contentType": "ARAZZO",
  "apiWorkflowDefinition": {
    "arazzo": "1.0.1",
    "info": {
      "title": "Weather onboarding",
      "version": "1.0.0"
    },
    "workflows": []
  }
}

Authentication

Parameters

Name In Type Required Description
body body APIWorkflowCreateRequest true API workflow creation payload. Use contentType ARAZZO for JSON/YAML workflow content or MD for Markdown workflow content.
viewId path string true The view's handle (unique per org). Not the internal database uuid.

Example responses

201 Response

{
  "id": "workflow-12345",
  "displayName": "Weather onboarding",
  "status": "PUBLISHED"
}

400 Response

{
  "message": "string"
}

Responses

Status Meaning Description Schema
201 Created Created API workflow summary. APIWorkflowCreateResponse
400 Bad Request JSON message response. MessageResponse
409 Conflict JSON message response. MessageResponse
500 Internal Server Error JSON message response. MessageResponse

List API workflows

GET /views/{viewId}/api-workflows

Code samples

curl -X GET https://localhost:9543/api/v0.9/views/{viewId}/api-workflows \
  -u {username}:{password} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Lists all API workflows for the selected organization view.

Authentication

Parameters

Name In Type Required Description
limit query integer false Maximum number of records to return.
offset query integer false Number of records to skip before returning results.
viewId path string true The view's handle (unique per org). Not the internal database uuid.

Example responses

200 Response

{
  "list": [
    {
      "id": "workflow-12345",
      "displayName": "Weather onboarding",
      "description": "string",
      "agentPrompt": "string",
      "status": "PUBLISHED",
      "agentVisibility": "VISIBLE",
      "contentType": "ARAZZO",
      "apiWorkflowDefinition": "string",
      "markdownContent": "string",
      "createdAt": "May 7, 2026",
      "updatedAt": "string",
      "createdBy": "string",
      "updatedBy": "string"
    }
  ],
  "count": 1,
  "pagination": {
    "total": 42,
    "limit": 20,
    "offset": 0
  }
}

Responses

Status Meaning Description Schema
200 OK List of API workflow DTOs. Inline
500 Internal Server Error JSON message response. MessageResponse

Response Schema

Status Code 200

Name Type Required Restrictions Description
» list [APIWorkflowResponse] false none none
»» id string false none The workflow's handle (unique per org and view). Not the internal database uuid.
»» displayName string false none none
»» description string false none none
»» agentPrompt string false none none
»» status string false none none
»» agentVisibility string false none none
»» contentType string false none none
»» apiWorkflowDefinition string¦null false none none
»» markdownContent string¦null false none none
»» createdAt string false none none
»» updatedAt string¦null false none none
»» createdBy string¦null false none none
»» updatedBy string¦null false none none
» count integer false none Number of items returned in this page.
» pagination Pagination false none Standard pagination metadata returned with collection responses.
»» total integer true none Total number of records matching the query.
»» limit integer true none Maximum number of records returned in this response.
»» offset integer true none Number of records skipped before this page.

Enumerated Values

Property Value
status DRAFT
status PUBLISHED
agentVisibility VISIBLE
agentVisibility HIDDEN
contentType ARAZZO
contentType MD

Get an API workflow

GET /views/{viewId}/api-workflows/{apiWorkflowId}

Code samples

curl -X GET https://localhost:9543/api/v0.9/views/{viewId}/api-workflows/{apiWorkflowId} \
  -u {username}:{password} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Retrieves a single API workflow by ID from the selected view.

Authentication

Parameters

Name In Type Required Description
viewId path string true The view's handle (unique per org). Not the internal database uuid.
apiWorkflowId path string true The API workflow's handle (unique per org and view).

Example responses

200 Response

{
  "id": "workflow-12345",
  "displayName": "Weather onboarding",
  "description": "Guides users through the Weather API onboarding workflow.",
  "agentPrompt": "Follow this workflow to onboard a Weather API user.",
  "status": "PUBLISHED",
  "agentVisibility": "VISIBLE",
  "contentType": "ARAZZO",
  "apiWorkflowDefinition": "{\"arazzo\":\"1.0.1\",\"info\":{\"title\":\"Weather onboarding\",\"version\":\"1.0.0\"},\"workflows\":[]}",
  "markdownContent": null,
  "createdAt": "May 7, 2026",
  "updatedAt": "2026-05-07T08:30:00Z"
}

404 Response

{
  "message": "string"
}

Responses

Status Meaning Description Schema
200 OK API workflow DTO. APIWorkflowResponse
404 Not Found JSON message response. MessageResponse
500 Internal Server Error JSON message response. MessageResponse

Update an API workflow

PUT /views/{viewId}/api-workflows/{apiWorkflowId}

Code samples

curl -X PUT https://localhost:9543/api/v0.9/views/{viewId}/api-workflows/{apiWorkflowId} \
  -u {username}:{password} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}' \
  -d @payload.json

Updates API workflow metadata and content for the selected view. Duplicate handles return a conflict.

Payload

{
  "displayName": "Weather onboarding v2",
  "id": "weather-onboarding-v2",
  "description": "Updated Weather API onboarding workflow.",
  "agentPrompt": "string",
  "status": "PUBLISHED",
  "agentVisibility": "VISIBLE",
  "contentType": "ARAZZO",
  "apiWorkflowDefinition": {},
  "markdownContent": "string"
}

Authentication

Parameters

Name In Type Required Description
body body APIWorkflowUpdateRequest true API workflow update payload. Include only the fields that should change.
viewId path string true The view's handle (unique per org). Not the internal database uuid.
apiWorkflowId path string true The API workflow's handle (unique per org and view).

Example responses

200 Response

{
  "message": "string"
}

Responses

Status Meaning Description Schema
200 OK JSON message response. MessageResponse
400 Bad Request JSON message response. MessageResponse
404 Not Found JSON message response. MessageResponse
409 Conflict JSON message response. MessageResponse
500 Internal Server Error JSON message response. MessageResponse

Delete an API workflow

DELETE /views/{viewId}/api-workflows/{apiWorkflowId}

Code samples

curl -X DELETE https://localhost:9543/api/v0.9/views/{viewId}/api-workflows/{apiWorkflowId} \
  -u {username}:{password} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

Deletes an API workflow from the selected view.

Authentication

Parameters

Name In Type Required Description
viewId path string true The view's handle (unique per org). Not the internal database uuid.
apiWorkflowId path string true The API workflow's handle (unique per org and view).

Example responses

200 Response

{
  "message": "string"
}

Responses

Status Meaning Description Schema
200 OK JSON message response. MessageResponse
404 Not Found JSON message response. MessageResponse
500 Internal Server Error JSON message response. MessageResponse

Generate an API workflow agent prompt

POST /views/{viewId}/api-workflows/generate-prompt

Code samples

curl -X POST https://localhost:9543/api/v0.9/views/{viewId}/api-workflows/generate-prompt \
  -u {username}:{password} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}' \
  -d @payload.json

Generates the default agent prompt text for a proposed API workflow using the supplied name, description, APIs, and view context.

Payload

{
  "displayName": "Weather onboarding",
  "description": "Guides users through the Weather API onboarding workflow.",
  "apis": [
    {}
  ],
  "orgHandle": "acme",
  "viewName": "default",
  "id": "weather-onboarding"
}

Authentication

Parameters

Name In Type Required Description
body body APIWorkflowPromptRequest true API workflow prompt-generation payload.
viewId path string true The view's handle (unique per org). Not the internal database uuid.

Example responses

200 Response

{
  "agentPrompt": "You are an API workflow assistant. Help the user complete Weather onboarding."
}

500 Response

{
  "message": "string"
}

Responses

Status Meaning Description Schema
200 OK Generated API workflow agent prompt. APIWorkflowPromptResponse
500 Internal Server Error JSON message response. MessageResponse