---
title: "Update a Workflow draft with optimistic concurrency"
method: PUT
path: "/credits/workflows/{workflowId}"
tags: ["Hosted Workflows"]
---

# Update a Workflow draft with optimistic concurrency

`PUT /credits/workflows/{workflowId}`

## Request

- Base URL: `https://api.paywithlocus.com/api`
- URL: `https://api.paywithlocus.com/api/credits/workflows/{workflowId}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer

Replaces the source of a Workflow draft. expected_revision must equal the current draft revision; otherwise the update fails with 409 and nothing changes.

## Path parameters

- `workflowId` string, uuid, required

## Request body

- object
  - `expected_revision` integer, required
  - `source` union, required
    - object
      - `files` WorkflowFile[], required
        - `path` string, required
        - `content` string, required
    - object
      - `artifact_id` string, uuid, required

## Response `200`

Tenant-scoped Workflow definition envelope

- object
  - `success` unknown, required
  - `workflow` object, required

## Other responses

- `409`: Draft revision conflict

---

[API](https://skmtc.dev/paywithlocus/apis/locus-pro-api.md) - [All operations](https://skmtc.dev/paywithlocus/apis/locus-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paywithlocus/apis/locus-pro-api/revisions/aab8fa5d6cef?raw)
