> For the complete documentation index, see [llms.txt](https://doc.wearepatchworks.com/product-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.wearepatchworks.com/product-documentation/api-reference/flow-actions/flows.md).

# Flows

## List Flows

> List all process flows associated with your company profile.\
> \
> \## Pagination\
> \
> Pagination is available for this request. Please see the section on using pagination for more details.\
> \
> \## Available Includes\
> \
> These are the includes that can be used to include addition related data in the results. Please see the section on using includes for more details.\
> \
> \- latestVersion\
> \- latestVersion\_count\
> \- latestVersionExists\
> \- latestVersion.variables\
> \- deployedVersion\
> \- deployedVersion\_count\
> \- deployedVersionExists\
> \- deployedVersion.variables\
> \- currentVersion\
> \- currentVersion\_count\
> \- currentVersionExists\
> \- currentVersion.latestRun\
> \- currentVersion.steps\
> \- currentVersion.steps.connector\
> \- currentVersion.steps.connector.authenticationImplementation\
> \- currentVersion.steps.connector.authenticationImplementation.system\
> \- currentVersion.steps.variables\
> \- currentVersion.steps.cache\
> \- currentVersion.steps.dataPool\
> \- currentVersion.steps.scriptVersion\
> \- currentVersion.steps.scriptVersion.script\
> \- currentVersion.schedules\
> \- currentVersion.variables\
> \- versions\
> \- versions\_count\
> \- versionsExists\
> \- versions.schedules\
> \- versions.variables\
> \- versions.deployedByUser\
> \- labels\
> \- labels\_count\
> \- labelsExists\
> \- webhooks\
> \- webhooks\_count\
> \- webhooksExists\
> \- callbacks\
> \- callbacks\_count\
> \- callbacksExists\
> \- notificationGroups\
> \- notificationGroups\_count\
> \- notificationGroupsExists\
> \- messageBrokers\
> \- messageBrokers\_count\
> \- messageBrokersExists\
> \- messageBrokerQueues\
> \- messageBrokerQueues\_count\
> \- messageBrokerQueuesExists\
> \- deployments\
> \- deployments\_count\
> \- deploymentsExists\
> \- deployments.virtualEnvironment\
> \- deployments.flowVersion\
> \- deployments.package\
> \- deployments.enabledBy\
> \
> \
> \## Available Filters\
> \
> These are the filters that can be used to specific the data to return. Please see the section on using filters for more details.\
> \
> \- name\
> \- marketplace\_app\_id\
> \- labelled\
> \- enabled\
> \- deployed\
> \
> \
> \## Available Fields\
> \
> These are the fields that can be requested to limit the data returned. Please see the section on using fields for more details.\
> \
> \- flows.id\
> \- flows.name\
> \- flows.enabled\_at\
> \
> \
> \## Available Sorts\
> \
> These are the sorts that can be used order the returned data. Please see the section on using sorting for more details.\
> \
> \- name\
> \- enabled\_at\
> \- created\_at\
> \- id

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"FlowsListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Flows"}},"meta":{"$ref":"#/components/schemas/PaginationMeta"},"links":{"$ref":"#/components/schemas/PaginationLinks"}}},"Flows":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier"},"name":{"type":"string"},"enabled_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["Draft","Inactive","Deployed"]},"format":{"type":"string","enum":["csv","json","txt","xml"]},"body":{"type":"string"},"deployed_at":{"type":"string"},"labels":{"type":"string","items":{"type":"object"}},"notification_groups":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":"string"},"layout_direction":{"type":"string"},"is_enabled":{"type":"object"},"latest_version":{"type":"object"},"current_version":{"type":"object"},"deployed_version":{"type":"object"},"latest_deployed_version":{"type":"array","items":{"type":"object"}},"versions":{"type":"array","items":{"type":"object"}},"version_type_counts":{"type":"array","items":{"type":"object"}},"message_brokers":{"type":"array","items":{"type":"object"}},"message_broker_queues":{"type":"array","items":{"type":"object"}},"notification_group_ids":{"type":"array","items":{"type":"object"}},"webhooks":{"type":"string"},"callbacks":{"type":"string"},"current_version_step_count":{"type":"integer"},"current_version_connector_count":{"type":"integer"},"current_version_script_count":{"type":"integer"},"current_version_cache_count":{"type":"integer"},"current_version_data_pool_count":{"type":"integer"},"current_version_cross_ref_count":{"type":"integer"},"use_queued_time":{"type":"string"},"remove_failed_payloads":{"type":"array","items":{"type":"object"}},"priority":{"type":"array","items":{"type":"object"}},"prod_flag":{"type":"array","items":{"type":"object"}},"deployments":{"type":"array","items":{"type":"object"}},"webhooks_count":{"type":"integer"},"callbacks_count":{"type":"integer"},"marketplace_app_id":{"type":"integer"},"blueprint_id":{"type":"integer"},"blueprint_version_number":{"type":"string"},"flow_folder_id":{"type":"integer"}}},"PaginationMeta":{"type":"object","properties":{"current_page":{"type":"integer"},"from":{"type":"integer","nullable":true},"last_page":{"type":"integer"},"path":{"type":"string"},"per_page":{"type":"integer"},"to":{"type":"integer","nullable":true},"total":{"type":"integer"}}},"PaginationLinks":{"type":"object","properties":{"first":{"type":"string","format":"uri"},"last":{"type":"string","format":"uri"},"prev":{"type":"string","format":"uri","nullable":true},"next":{"type":"string","format":"uri","nullable":true}}}}},"paths":{"/api/v1/flows":{"get":{"summary":"List Flows","description":"List all process flows associated with your company profile.\n\n## Pagination\n\nPagination is available for this request. Please see the section on using pagination for more details.\n\n## Available Includes\n\nThese are the includes that can be used to include addition related data in the results. Please see the section on using includes for more details.\n\n- latestVersion\n- latestVersion_count\n- latestVersionExists\n- latestVersion.variables\n- deployedVersion\n- deployedVersion_count\n- deployedVersionExists\n- deployedVersion.variables\n- currentVersion\n- currentVersion_count\n- currentVersionExists\n- currentVersion.latestRun\n- currentVersion.steps\n- currentVersion.steps.connector\n- currentVersion.steps.connector.authenticationImplementation\n- currentVersion.steps.connector.authenticationImplementation.system\n- currentVersion.steps.variables\n- currentVersion.steps.cache\n- currentVersion.steps.dataPool\n- currentVersion.steps.scriptVersion\n- currentVersion.steps.scriptVersion.script\n- currentVersion.schedules\n- currentVersion.variables\n- versions\n- versions_count\n- versionsExists\n- versions.schedules\n- versions.variables\n- versions.deployedByUser\n- labels\n- labels_count\n- labelsExists\n- webhooks\n- webhooks_count\n- webhooksExists\n- callbacks\n- callbacks_count\n- callbacksExists\n- notificationGroups\n- notificationGroups_count\n- notificationGroupsExists\n- messageBrokers\n- messageBrokers_count\n- messageBrokersExists\n- messageBrokerQueues\n- messageBrokerQueues_count\n- messageBrokerQueuesExists\n- deployments\n- deployments_count\n- deploymentsExists\n- deployments.virtualEnvironment\n- deployments.flowVersion\n- deployments.package\n- deployments.enabledBy\n\n\n## Available Filters\n\nThese are the filters that can be used to specific the data to return. Please see the section on using filters for more details.\n\n- name\n- marketplace_app_id\n- labelled\n- enabled\n- deployed\n\n\n## Available Fields\n\nThese are the fields that can be requested to limit the data returned. Please see the section on using fields for more details.\n\n- flows.id\n- flows.name\n- flows.enabled_at\n\n\n## Available Sorts\n\nThese are the sorts that can be used order the returned data. Please see the section on using sorting for more details.\n\n- name\n- enabled_at\n- created_at\n- id","parameters":[{"name":"filter[name]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by name."},{"name":"filter[marketplace_app_id]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by marketplace_app_id."},{"name":"filter[blueprint_id]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by blueprint_id."},{"name":"filter[blueprint_version_number]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by blueprint_version_number."},{"name":"filter[labelled]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by label `id`."},{"name":"filter[enabled]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by enabled."},{"name":"filter[deployed]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by deployed."},{"name":"filter[versions.id]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by versions.id."},{"name":"filter[,]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by ,."},{"name":"filter[versions]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by versions."},{"name":"filter[id]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by id."},{"name":"include","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated list of relationships to include. Available: latestVersion, latestVersion.variables, deployedVersion, deployedVersion.variables, latestDeployedVersion, latestDeployedVersion.variables, latestDeployedVersion.steps.connector.authenticationImplementation.system, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints.preScriptVersion, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints.postScriptVersion, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints.preScriptVersion.script, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints.postScriptVersion.script, latestDeployedVersion.steps.scriptVersion.script, latestDeployedVersion.steps.cache, latestDeployedVersion.steps.dataPool, deployedVersion.steps.connector.authenticationImplementation.system, deployedVersion.steps.connector.authenticationImplementation.system.endpoints, deployedVersion.steps.connector.authenticationImplementation.system.endpoints.preScriptVersion, deployedVersion.steps.connector.authenticationImplementation.system.endpoints.postScriptVersion, deployedVersion.steps.connector.authenticationImplementation.system.endpoints.preScriptVersion.script"},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sort field. Prefix with - for descending. Available: name, enabled_at, created_at, id"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page number for pagination."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100},"description":"Number of results per page."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsListResponse"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"}},"tags":["Flows"]}}}}
```

## Create Flow

> Create a new process flow.\
> \
> \## Validation Rules\
> \
> These are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\
> \
> \| Field | Type | Required |\
> \|---|---|---|\
> \| flow\.name | string | \&#x2611; |\
> \| flow\.description | string | |\
> \| flow\.prod\_flag | | \&#x2611; |

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"FlowsResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Flows"}}},"Flows":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier"},"name":{"type":"string"},"enabled_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["Draft","Inactive","Deployed"]},"format":{"type":"string","enum":["csv","json","txt","xml"]},"body":{"type":"string"},"deployed_at":{"type":"string"},"labels":{"type":"string","items":{"type":"object"}},"notification_groups":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":"string"},"layout_direction":{"type":"string"},"is_enabled":{"type":"object"},"latest_version":{"type":"object"},"current_version":{"type":"object"},"deployed_version":{"type":"object"},"latest_deployed_version":{"type":"array","items":{"type":"object"}},"versions":{"type":"array","items":{"type":"object"}},"version_type_counts":{"type":"array","items":{"type":"object"}},"message_brokers":{"type":"array","items":{"type":"object"}},"message_broker_queues":{"type":"array","items":{"type":"object"}},"notification_group_ids":{"type":"array","items":{"type":"object"}},"webhooks":{"type":"string"},"callbacks":{"type":"string"},"current_version_step_count":{"type":"integer"},"current_version_connector_count":{"type":"integer"},"current_version_script_count":{"type":"integer"},"current_version_cache_count":{"type":"integer"},"current_version_data_pool_count":{"type":"integer"},"current_version_cross_ref_count":{"type":"integer"},"use_queued_time":{"type":"string"},"remove_failed_payloads":{"type":"array","items":{"type":"object"}},"priority":{"type":"array","items":{"type":"object"}},"prod_flag":{"type":"array","items":{"type":"object"}},"deployments":{"type":"array","items":{"type":"object"}},"webhooks_count":{"type":"integer"},"callbacks_count":{"type":"integer"},"marketplace_app_id":{"type":"integer"},"blueprint_id":{"type":"integer"},"blueprint_version_number":{"type":"string"},"flow_folder_id":{"type":"integer"}}},"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"FlowsStoreRequest":{"type":"object","properties":{"flow":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":"string","maxLength":255,"nullable":true},"prod_flag":{"type":"boolean"}}}},"required":["flow"]}}},"paths":{"/api/v1/flows":{"post":{"summary":"Create Flow","description":"Create a new process flow.\n\n## Validation Rules\n\nThese are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\n\n| Field | Type | Required |\n|---|---|---|\n| flow.name | string | &#x2611; |\n| flow.description | string | |\n| flow.prod_flag | | &#x2611; |","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsResponse"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsStoreRequest"}}}},"tags":["Flows"],"parameters":[]}}}}
```

## Get Flow

> Retrieves details for a single process flow by the flow \`id\`.\
> \
> \## Available Includes\
> \
> These are the includes that can be used to include addition related data in the results. Please see the section on using includes for more details.\
> \
> \- latestVersion\
> \- latestVersion\_count\
> \- latestVersionExists\
> \- latestVersion.variables\
> \- deployedVersion\
> \- deployedVersion\_count\
> \- deployedVersionExists\
> \- deployedVersion.variables\
> \- currentVersion\
> \- currentVersion\_count\
> \- currentVersionExists\
> \- currentVersion.latestRun\
> \- currentVersion.steps\
> \- currentVersion.steps.connector\
> \- currentVersion.steps.connector.authenticationImplementation\
> \- currentVersion.steps.connector.authenticationImplementation.system\
> \- currentVersion.steps.variables\
> \- currentVersion.steps.cache\
> \- currentVersion.steps.dataPool\
> \- currentVersion.steps.scriptVersion\
> \- currentVersion.steps.scriptVersion.script\
> \- currentVersion.schedules\
> \- currentVersion.variables\
> \- versions\
> \- versions\_count\
> \- versionsExists\
> \- versions.schedules\
> \- versions.variables\
> \- versions.deployedByUser\
> \- labels\
> \- labels\_count\
> \- labelsExists\
> \- webhooks\
> \- webhooks\_count\
> \- webhooksExists\
> \- callbacks\
> \- callbacks\_count\
> \- callbacksExists\
> \- notificationGroups\
> \- notificationGroups\_count\
> \- notificationGroupsExists\
> \- messageBrokers\
> \- messageBrokers\_count\
> \- messageBrokersExists\
> \- messageBrokerQueues\
> \- messageBrokerQueues\_count\
> \- messageBrokerQueuesExists\
> \- deployments\
> \- deployments\_count\
> \- deploymentsExists\
> \- deployments.virtualEnvironment\
> \- deployments.flowVersion\
> \- deployments.package\
> \- deployments.enabledBy\
> \
> \
> \## Available Filters\
> \
> These are the filters that can be used to specific the data to return. Please see the section on using filters for more details.\
> \
> \- name\
> \- marketplace\_app\_id\
> \- labelled\
> \- enabled\
> \- deployed\
> \
> \
> \## Available Fields\
> \
> These are the fields that can be requested to limit the data returned. Please see the section on using fields for more details.\
> \
> \- flows.id\
> \- flows.name\
> \- flows.enabled\_at\
> \
> \
> \## Available Sorts\
> \
> These are the sorts that can be used order the returned data. Please see the section on using sorting for more details.\
> \
> \- name\
> \- enabled\_at\
> \- created\_at\
> \- id

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"FlowsResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Flows"}}},"Flows":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier"},"name":{"type":"string"},"enabled_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["Draft","Inactive","Deployed"]},"format":{"type":"string","enum":["csv","json","txt","xml"]},"body":{"type":"string"},"deployed_at":{"type":"string"},"labels":{"type":"string","items":{"type":"object"}},"notification_groups":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":"string"},"layout_direction":{"type":"string"},"is_enabled":{"type":"object"},"latest_version":{"type":"object"},"current_version":{"type":"object"},"deployed_version":{"type":"object"},"latest_deployed_version":{"type":"array","items":{"type":"object"}},"versions":{"type":"array","items":{"type":"object"}},"version_type_counts":{"type":"array","items":{"type":"object"}},"message_brokers":{"type":"array","items":{"type":"object"}},"message_broker_queues":{"type":"array","items":{"type":"object"}},"notification_group_ids":{"type":"array","items":{"type":"object"}},"webhooks":{"type":"string"},"callbacks":{"type":"string"},"current_version_step_count":{"type":"integer"},"current_version_connector_count":{"type":"integer"},"current_version_script_count":{"type":"integer"},"current_version_cache_count":{"type":"integer"},"current_version_data_pool_count":{"type":"integer"},"current_version_cross_ref_count":{"type":"integer"},"use_queued_time":{"type":"string"},"remove_failed_payloads":{"type":"array","items":{"type":"object"}},"priority":{"type":"array","items":{"type":"object"}},"prod_flag":{"type":"array","items":{"type":"object"}},"deployments":{"type":"array","items":{"type":"object"}},"webhooks_count":{"type":"integer"},"callbacks_count":{"type":"integer"},"marketplace_app_id":{"type":"integer"},"blueprint_id":{"type":"integer"},"blueprint_version_number":{"type":"string"},"flow_folder_id":{"type":"integer"}}}}},"paths":{"/api/v1/flows/{flow}":{"get":{"summary":"Get Flow","description":"Retrieves details for a single process flow by the flow `id`.\n\n## Available Includes\n\nThese are the includes that can be used to include addition related data in the results. Please see the section on using includes for more details.\n\n- latestVersion\n- latestVersion_count\n- latestVersionExists\n- latestVersion.variables\n- deployedVersion\n- deployedVersion_count\n- deployedVersionExists\n- deployedVersion.variables\n- currentVersion\n- currentVersion_count\n- currentVersionExists\n- currentVersion.latestRun\n- currentVersion.steps\n- currentVersion.steps.connector\n- currentVersion.steps.connector.authenticationImplementation\n- currentVersion.steps.connector.authenticationImplementation.system\n- currentVersion.steps.variables\n- currentVersion.steps.cache\n- currentVersion.steps.dataPool\n- currentVersion.steps.scriptVersion\n- currentVersion.steps.scriptVersion.script\n- currentVersion.schedules\n- currentVersion.variables\n- versions\n- versions_count\n- versionsExists\n- versions.schedules\n- versions.variables\n- versions.deployedByUser\n- labels\n- labels_count\n- labelsExists\n- webhooks\n- webhooks_count\n- webhooksExists\n- callbacks\n- callbacks_count\n- callbacksExists\n- notificationGroups\n- notificationGroups_count\n- notificationGroupsExists\n- messageBrokers\n- messageBrokers_count\n- messageBrokersExists\n- messageBrokerQueues\n- messageBrokerQueues_count\n- messageBrokerQueuesExists\n- deployments\n- deployments_count\n- deploymentsExists\n- deployments.virtualEnvironment\n- deployments.flowVersion\n- deployments.package\n- deployments.enabledBy\n\n\n## Available Filters\n\nThese are the filters that can be used to specific the data to return. Please see the section on using filters for more details.\n\n- name\n- marketplace_app_id\n- labelled\n- enabled\n- deployed\n\n\n## Available Fields\n\nThese are the fields that can be requested to limit the data returned. Please see the section on using fields for more details.\n\n- flows.id\n- flows.name\n- flows.enabled_at\n\n\n## Available Sorts\n\nThese are the sorts that can be used order the returned data. Please see the section on using sorting for more details.\n\n- name\n- enabled_at\n- created_at\n- id","parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"The flow identifier."},{"name":"filter[name]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by name."},{"name":"filter[marketplace_app_id]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by marketplace_app_id."},{"name":"filter[blueprint_id]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by blueprint_id."},{"name":"filter[blueprint_version_number]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by blueprint_version_number."},{"name":"filter[labelled]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by label `id`."},{"name":"filter[enabled]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by enabled."},{"name":"filter[deployed]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by deployed."},{"name":"filter[versions.id]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by versions.id."},{"name":"filter[,]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by ,."},{"name":"filter[versions]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by versions."},{"name":"filter[id]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by id."},{"name":"include","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated list of relationships to include. Available: latestVersion, latestVersion.variables, deployedVersion, deployedVersion.variables, latestDeployedVersion, latestDeployedVersion.variables, latestDeployedVersion.steps.connector.authenticationImplementation.system, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints.preScriptVersion, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints.postScriptVersion, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints.preScriptVersion.script, latestDeployedVersion.steps.connector.authenticationImplementation.system.endpoints.postScriptVersion.script, latestDeployedVersion.steps.scriptVersion.script, latestDeployedVersion.steps.cache, latestDeployedVersion.steps.dataPool, deployedVersion.steps.connector.authenticationImplementation.system, deployedVersion.steps.connector.authenticationImplementation.system.endpoints, deployedVersion.steps.connector.authenticationImplementation.system.endpoints.preScriptVersion, deployedVersion.steps.connector.authenticationImplementation.system.endpoints.postScriptVersion, deployedVersion.steps.connector.authenticationImplementation.system.endpoints.preScriptVersion.script"},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sort field. Prefix with - for descending. Available: name, enabled_at, created_at, id"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page number for pagination."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100},"description":"Number of results per page."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsResponse"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"}},"tags":["Flows"]}}}}
```

## Update Flow

> Updates an existing process flow.\
> \
> \## Validation Rules\
> \
> These are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\
> \
> \| Field | Type | Required |\
> \|---|---|---|\
> \| flow\.name | string | |\
> \| flow\.description | string | |\
> \| flow\.enabled\_at | | |\
> \| labels | | |\
> \| labels.\*.id | | \&#x2611; |\
> \| notification\_groups | | |\
> \| flow\.use\_queued\_time | | |\
> \| flow\.remove\_failed\_payloads | | |\
> \| flow\.priority | integer | |\
> \| flow\.prod\_flag | | |

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"FlowsResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Flows"}}},"Flows":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier"},"name":{"type":"string"},"enabled_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["Draft","Inactive","Deployed"]},"format":{"type":"string","enum":["csv","json","txt","xml"]},"body":{"type":"string"},"deployed_at":{"type":"string"},"labels":{"type":"string","items":{"type":"object"}},"notification_groups":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":"string"},"layout_direction":{"type":"string"},"is_enabled":{"type":"object"},"latest_version":{"type":"object"},"current_version":{"type":"object"},"deployed_version":{"type":"object"},"latest_deployed_version":{"type":"array","items":{"type":"object"}},"versions":{"type":"array","items":{"type":"object"}},"version_type_counts":{"type":"array","items":{"type":"object"}},"message_brokers":{"type":"array","items":{"type":"object"}},"message_broker_queues":{"type":"array","items":{"type":"object"}},"notification_group_ids":{"type":"array","items":{"type":"object"}},"webhooks":{"type":"string"},"callbacks":{"type":"string"},"current_version_step_count":{"type":"integer"},"current_version_connector_count":{"type":"integer"},"current_version_script_count":{"type":"integer"},"current_version_cache_count":{"type":"integer"},"current_version_data_pool_count":{"type":"integer"},"current_version_cross_ref_count":{"type":"integer"},"use_queued_time":{"type":"string"},"remove_failed_payloads":{"type":"array","items":{"type":"object"}},"priority":{"type":"array","items":{"type":"object"}},"prod_flag":{"type":"array","items":{"type":"object"}},"deployments":{"type":"array","items":{"type":"object"}},"webhooks_count":{"type":"integer"},"callbacks_count":{"type":"integer"},"marketplace_app_id":{"type":"integer"},"blueprint_id":{"type":"integer"},"blueprint_version_number":{"type":"string"},"flow_folder_id":{"type":"integer"}}},"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"FlowsUpdateRequest":{"type":"object","properties":{"flow":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":"string","maxLength":255,"nullable":true},"enabled_at":{"type":"string","format":"date-time","nullable":true},"use_queued_time":{"type":"boolean"},"remove_failed_payloads":{"type":"boolean"},"priority":{"type":"integer","maximum":5,"minimum":1},"prod_flag":{"type":"boolean"}}},"labels":{"type":"string","properties":{"*":{"type":"object","properties":{"id":{"type":"string"}}}}},"notification_groups":{"type":"string"}},"required":["labels"]}}},"paths":{"/api/v1/flows/{flow}":{"put":{"summary":"Update Flow","description":"Updates an existing process flow.\n\n## Validation Rules\n\nThese are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\n\n| Field | Type | Required |\n|---|---|---|\n| flow.name | string | |\n| flow.description | string | |\n| flow.enabled_at | | |\n| labels | | |\n| labels.*.id | | &#x2611; |\n| notification_groups | | |\n| flow.use_queued_time | | |\n| flow.remove_failed_payloads | | |\n| flow.priority | integer | |\n| flow.prod_flag | | |","parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"The flow identifier."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsResponse"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsUpdateRequest"}}}},"tags":["Flows"]}}}}
```

## Delete Flow

> Deletes a given process flow.

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"MessageResponse":{"type":"object","properties":{"message":{"type":"string"}}}}},"paths":{"/api/v1/flows/{flow}":{"delete":{"summary":"Delete Flow","description":"Deletes a given process flow.","parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"The flow identifier."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"}},"tags":["Flows"]}}}}
```

## Export Flow

> Export process flow as a JSON file.\
> \
> \## Validation Rules\
> \
> These are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\
> \
> \| Field | Type | Required |\
> \|---|---|---|\
> \| flow\_id | integer | \&#x2611; |

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"FlowsExportExportRequest":{"type":"object","properties":{"flow_id":{"type":"integer"}},"required":["flow_id"]}}},"paths":{"/api/v1/flows/export":{"post":{"summary":"Export Flow","description":"Export process flow as a JSON file.\n\n## Validation Rules\n\nThese are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\n\n| Field | Type | Required |\n|---|---|---|\n| flow_id | integer | &#x2611; |","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsExportExportRequest"}}}},"tags":["Flows"],"parameters":[]}}}}
```

## Import Flow

> Import a previously exported process flow (from a JSON file).\
> \
> \## Validation Rules\
> \
> These are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\
> \
> \| Field | Type | Required |\
> \|---|---|---|\
> \| flow | | \&#x2611; |\
> \| metadata | | \&#x2611; |\
> \| as\_marketplace | | |

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"FlowsImportImportRequest":{"type":"object","properties":{"flow":{"type":"string"},"metadata":{"type":"string"},"as_marketplace":{"type":"string"}},"required":["flow","metadata"]}}},"paths":{"/api/v1/flows/import":{"post":{"summary":"Import Flow","description":"Import a previously exported process flow (from a JSON file).\n\n## Validation Rules\n\nThese are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\n\n| Field | Type | Required |\n|---|---|---|\n| flow | | &#x2611; |\n| metadata | | &#x2611; |\n| as_marketplace | | |","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsImportImportRequest"}}}},"tags":["Flows"],"parameters":[]}}}}
```

## Initialise Flow Manually

> Initialise a process flow manually - the equivalent of using the \`initialise flow\` button on the canvas. The flow starts immediately (it is not added to a queue).\
> You can make up to 10 requests to this endpoint per minute. If you are implementing an automated, programmtic integration with Patchworks with greater request volumes, consider using the \[Start Flow]\(<https://doc.wearepatchworks.com/product-documentation/api-reference/process-flows/flows#post-api-v1-flows-flow\\_id-start-version\\_id>) endpoint instead.\
> \
> \## Validation Rules\
> \
> These are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\
> \
> \| Field | Type | Required |\
> \|---|---|---|\
> \| flow\_id | integer | \&#x2611; |\
> \| version\_id | integer | |\
> \| payload | string | |\
> \| flow\_variables | | |\
> \| virtual\_environment\_id | integer | |

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://start.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"FlowsManualManualRequest":{"type":"object","properties":{"flow_id":{"type":"integer"},"version_id":{"type":"integer"},"payload":{"type":"string"},"flow_variables":{"type":"string"},"virtual_environment_id":{"type":"integer"}},"required":["flow_id","payload"]}}},"paths":{"/api/v1/flows/{flow_id}/manual/{version_id}":{"post":{"summary":"Initialise Flow Manually","description":"Initialise a process flow manually - the equivalent of using the `initialise flow` button on the canvas. The flow starts immediately (it is not added to a queue).\nYou can make up to 10 requests to this endpoint per minute. If you are implementing an automated, programmtic integration with Patchworks with greater request volumes, consider using the [Start Flow](https://doc.wearepatchworks.com/product-documentation/api-reference/process-flows/flows#post-api-v1-flows-flow_id-start-version_id) endpoint instead.\n\n## Validation Rules\n\nThese are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\n\n| Field | Type | Required |\n|---|---|---|\n| flow_id | integer | &#x2611; |\n| version_id | integer | |\n| payload | string | |\n| flow_variables | | |\n| virtual_environment_id | integer | |","parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string"},"description":"The unique identifier of the flow."},{"name":"version_id","in":"path","required":true,"schema":{"type":"string"},"description":"The unique identifier of the version."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsManualManualRequest"}}}},"tags":["Flows"]}}}}
```

## Start Flow

> Intended for programmatic, system-to-system integrations, where flows are scheduled via the API. In this case, flow runs are added to a queue and picked up when concurrency is available.\
> \
> \## Validation Rules\
> \
> These are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\
> \
> \| Field | Type | Required |\
> \|---|---|---|\
> \| flow\_id | integer | \&#x2611; |\
> \| version\_id | integer | |\
> \| payload | string | \&#x2611; |\
> \| flow\_variables | | |\
> \| virtual\_environment\_id | integer | |

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://start.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"FlowsStartStartRequest":{"type":"object","properties":{"flow_id":{"type":"integer"},"version_id":{"type":"integer"},"payload":{"type":"string"},"flow_variables":{"type":"string"},"virtual_environment_id":{"type":"integer"}},"required":["flow_id","payload"]}}},"paths":{"/api/v1/flows/{flow_id}/start/{version_id}":{"post":{"summary":"Start Flow","description":"Intended for programmatic, system-to-system integrations, where flows are scheduled via the API. In this case, flow runs are added to a queue and picked up when concurrency is available.\n\n## Validation Rules\n\nThese are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\n\n| Field | Type | Required |\n|---|---|---|\n| flow_id | integer | &#x2611; |\n| version_id | integer | |\n| payload | string | &#x2611; |\n| flow_variables | | |\n| virtual_environment_id | integer | |","parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string"},"description":"The unique identifier of the flow."},{"name":"version_id","in":"path","required":true,"schema":{"type":"string"},"description":"The unique identifier of the version."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsStartStartRequest"}}}},"tags":["Flows"]}}}}
```

## Duplicate Flow

> Duplicates - i.e. clones - an existing process flow.\
> This is the API equivalent of what happens when you use the \[duplicate option in the dashboard]\(<https://doc.wearepatchworks.com/product-documentation/process-flows/managing-process-flows/duplicating-a-process-flow).\\>
> The result is a new process flow in the same company, with the same name appended with an incremental number.\
> \
> \## Validation Rules\
> \
> These are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\
> \
> \| Field | Type | Required |\
> \|---|---|---|\
> \| flow\_version\_id | | \&#x2611; |

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"FlowsDuplicateDuplicateRequest":{"type":"object","properties":{"flow_version_id":{"type":"string"}},"required":["flow_version_id"]}}},"paths":{"/api/v1/flows/{flow}/duplicate":{"post":{"summary":"Duplicate Flow","description":"Duplicates - i.e. clones - an existing process flow.\nThis is the API equivalent of what happens when you use the [duplicate option in the dashboard](https://doc.wearepatchworks.com/product-documentation/process-flows/managing-process-flows/duplicating-a-process-flow).\nThe result is a new process flow in the same company, with the same name appended with an incremental number.\n\n## Validation Rules\n\nThese are the basic validation rules for the request. More detailed validation may apply depending on the data being sent. Please see the response for any extra requirements\n\n| Field | Type | Required |\n|---|---|---|\n| flow_version_id | | &#x2611; |","parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"The flow identifier."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowsDuplicateDuplicateRequest"}}}},"tags":["Flows"]}}}}
```

## Update Flow Layout Direction

> Toggles the canvas layout direction for a specific flow. If the flow is currently set to vertical then it switches to horizontal, and vice versa.

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/api/v1/flows/{flow}/layout-direction":{"patch":{"summary":"Update Flow Layout Direction","description":"Toggles the canvas layout direction for a specific flow. If the flow is currently set to vertical then it switches to horizontal, and vice versa.","tags":["Flows"],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"The flow identifier."}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Update Flow Label Display Order

> Apply a global label display order across all flows. Accepts an ordered array of label IDs and updates the position on every flow that has those labels attached. Only labels already attached to a flow are affected — label attachment is not changed.

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/api/v1/flows/labels/reorder":{"patch":{"summary":"Update Flow Label Display Order","description":"Apply a global label display order across all flows. Accepts an ordered array of label IDs and updates the position on every flow that has those labels attached. Only labels already attached to a flow are affected — label attachment is not changed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["label_ids"],"properties":{"label_ids":{"type":"array","items":{"type":"string"},"description":"Ordered array of label IDs. The position of each label is set to its index in this array."}}}}}},"responses":{"200":{"description":"Label order updated","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Flows"]}}}}
```

## Initialise Flow Manually (Raw)

> The raw variant of the \[Initialise Flow Manually]\(<https://doc.wearepatchworks.com/product-documentation/api-reference/process-flows/flows#post-api-v1-flows-flow\\_id-manual-version\\_id>) endpoint. The flow starts immediately and is not added to a queue.\
> \
> Instead of wrapping the payload inside a \`payload\` string field, the entire request body is passed directly as the JSON payload to the flow. Pass \`flow\_variables\` and \`virtual\_environment\_id\` as query parameters if needed.\
> \
> You can make up to 10 requests to this endpoint per minute. If you are implementing an automated, programmatic integration with Patchworks with greater request volumes, consider using the \[Start Flow (Raw)]\(<https://doc.wearepatchworks.com/product-documentation/api-reference/flow-actions/flows#post-api-v1-flows-flow\\_id-start-raw-version\\_id>) endpoint instead.

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/api/v1/flows/{flow_id}/manual/raw/{version_id}":{"post":{"summary":"Initialise Flow Manually (Raw)","description":"The raw variant of the [Initialise Flow Manually](https://doc.wearepatchworks.com/product-documentation/api-reference/process-flows/flows#post-api-v1-flows-flow_id-manual-version_id) endpoint. The flow starts immediately and is not added to a queue.\n\nInstead of wrapping the payload inside a `payload` string field, the entire request body is passed directly as the JSON payload to the flow. Pass `flow_variables` and `virtual_environment_id` as query parameters if needed.\n\nYou can make up to 10 requests to this endpoint per minute. If you are implementing an automated, programmatic integration with Patchworks with greater request volumes, consider using the [Start Flow (Raw)](https://doc.wearepatchworks.com/product-documentation/api-reference/flow-actions/flows#post-api-v1-flows-flow_id-start-raw-version_id) endpoint instead.","parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"integer"},"description":"The unique identifier of the flow."},{"name":"version_id","in":"path","required":false,"schema":{"type":"integer"},"description":"The unique identifier of the flow version. Defaults to the latest deployed version."},{"name":"flow_variables","in":"query","required":false,"schema":{"type":"object"},"description":"Key-value pairs of flow variables to pass to the flow run."},{"name":"virtual_environment_id","in":"query","required":false,"schema":{"type":"integer"},"description":"The ID of the virtual environment to use for the flow run."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","description":"Any valid JSON object. This is passed directly as the payload to the flow — there is no wrapping `payload` field."}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"404":{"description":"Flow or version not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Flows"]}}}}
```

## Start Flow (Raw)

> The raw variant of the \[Start Flow]\(<https://doc.wearepatchworks.com/product-documentation/api-reference/process-flows/flows#post-api-v1-flows-flow\\_id-start-version\\_id>) endpoint. Intended for programmatic, system-to-system integrations where flows are scheduled via the API. Flow runs are added to a queue and picked up when concurrency is available.\
> \
> Instead of wrapping the payload inside a \`payload\` string field, the entire request body is passed directly as the JSON payload to the flow. Pass \`flow\_variables\` and \`virtual\_environment\_id\` as query parameters if needed.

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/api/v1/flows/{flow_id}/start/raw/{version_id}":{"post":{"summary":"Start Flow (Raw)","description":"The raw variant of the [Start Flow](https://doc.wearepatchworks.com/product-documentation/api-reference/process-flows/flows#post-api-v1-flows-flow_id-start-version_id) endpoint. Intended for programmatic, system-to-system integrations where flows are scheduled via the API. Flow runs are added to a queue and picked up when concurrency is available.\n\nInstead of wrapping the payload inside a `payload` string field, the entire request body is passed directly as the JSON payload to the flow. Pass `flow_variables` and `virtual_environment_id` as query parameters if needed.","parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"integer"},"description":"The unique identifier of the flow."},{"name":"version_id","in":"path","required":false,"schema":{"type":"integer"},"description":"The unique identifier of the flow version. Defaults to the latest deployed version."},{"name":"flow_variables","in":"query","required":false,"schema":{"type":"object"},"description":"Key-value pairs of flow variables to pass to the flow run."},{"name":"virtual_environment_id","in":"query","required":false,"schema":{"type":"integer"},"description":"The ID of the virtual environment to use for the flow run."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","description":"Any valid JSON object. This is passed directly as the payload to the flow — there is no wrapping `payload` field."}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"404":{"description":"Flow or version not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Flows"]}}}}
```

## List Flow Changelogs

> Return a paginated list of changelog entries for a flow, ordered most recent first.

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}}},"paths":{"/api/v1/flows/{flow}/changelogs":{"get":{"summary":"List Flow Changelogs","description":"Return a paginated list of changelog entries for a flow, ordered most recent first.","parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"integer"},"description":"The unique identifier of the flow."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer"},"description":"Number of results per page."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"404":{"description":"Flow not found"}},"tags":["Flows"]}}}}
```

## Move Flow to Folder

> Move a flow into a folder, or remove it from its current folder by passing \`null\`.

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/api/v1/flows/{flow}/folder":{"patch":{"summary":"Move Flow to Folder","description":"Move a flow into a folder, or remove it from its current folder by passing `null`.","parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"integer"},"description":"The unique identifier of the flow."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_folder_id":{"type":"integer","nullable":true,"description":"The ID of the destination folder. Pass `null` to remove the flow from its current folder."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"404":{"description":"Flow not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Flows"]}}}}
```

## List Flow Labels

> List all labels attached to a flow, ordered alphabetically by name.

```json
{"openapi":"3.0.0","info":{"title":"Patchworks Core API","version":"1.0.0"},"tags":[{"name":"Flows"}],"servers":[{"url":"https://core.wearepatchworks.com"}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key passed in the Authorization header. Format: `<api-key>`"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2 Bearer token obtained from POST /fabric/api/login"}}},"paths":{"/api/v1/flows/{flow}/labels":{"get":{"summary":"List Flow Labels","description":"List all labels attached to a flow, ordered alphabetically by name.","parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"integer"},"description":"The unique identifier of the flow."},{"name":"filter[name]","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results by name."},{"name":"include","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated list of relationships to include. Available: name, colour"},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sort field. Prefix with - for descending. Available: created_at"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page number for pagination."},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100},"description":"Number of results per page."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthenticated"},"403":{"description":"Unauthorized"},"404":{"description":"Flow not found"}},"tags":["Flows"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://doc.wearepatchworks.com/product-documentation/api-reference/flow-actions/flows.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
