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
400 Response
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
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
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
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
500 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Generated API workflow agent prompt. | APIWorkflowPromptResponse |
| 500 | Internal Server Error | JSON message response. | MessageResponse |