---
title: "Accept workflow update"
method: POST
path: "/workflows/{id}/accept-update"
tags: ["Workflows"]
---

# Accept workflow update

`POST /workflows/{id}/accept-update`

## Request

- Base URL: `https://api.edgaze.ai/v1`
- URL: `https://api.edgaze.ai/v1/workflows/{id}/accept-update`
- Auth: HTTP bearer

Re-pin the caller's purchase to the workflow's current active version. Requires the `workflow:write` scope (kept out of the default key scopes on purpose). Idempotent: accepting when already on the active version returns 200 with the current pin unchanged. Owner keys do not have a purchase to re-pin and receive 403.

## Path parameters

- `id` string, required: UUID of the workflow.

## Response `200`

Purchase pin updated.

- AcceptWorkflowUpdateResponse: Confirms the buyer's purchase pin was re-pinned to the workflow's current active version.
  - `ok` true, required
  - `workflowId` string, uuid, required
  - `pinnedVersionId` string, uuid, required

## Other responses

- `400`: Missing or malformed workflow id.
- `401`: Invalid or missing API key.
- `403`: Rejected for one of two reasons that need different client handling. `insufficient_scope`: the key lacks `workflow:write` — mint a key with that scope. `forbidden`: the key is valid and scoped, but the caller has no purchase to re-pin (including owner keys, which have no purchase) — there is nothing to retry. Branch on `error.code`.
- `409`: Workflow has no active version to accept.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/edgaze/apis/edgaze-api.md) · [All operations](https://skmtc.dev/edgaze/apis/edgaze-api/llms.txt) · [OpenAPI document](https://skmtc.dev/edgaze/apis/edgaze-api/revisions/cfc6436d2f90?raw)
