GoRunner

Replace a workflow's tags

Requires scope workflow:write
PUT
/api/workflows/{id}/tags

REPLACES the whole tag set — send the complete list you want, not a delta; {"tags": []} clears every tag. To merge instead, use POST /api/workflows/bulk with op: addTags.

This is a dedicated column write: it never touches the definition, never mints a version and never bumps definitionRev, so it is safe on a live workflow and cannot conflict with an in-flight editor save. Tags are trimmed, blank entries dropped, and deduplicated case-insensitively with the first spelling kept — so ["Prod", "prod"] stores one tag, Prod. The response is a bare acknowledgement, not the workflow: read the tags back with GET /api/workflows/{id} if you need them.

Authorization

bearerAuth
AuthorizationBearer <token>

An API token: Authorization: Bearer grt_…. Mint one in the app under Settings → Workspace → API tokens; the raw value is shown once. Scopes confine the token — see x-permission on each operation.

In: header

Path Parameters

id*string

Workflow id.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/api/workflows/497f6eca-6276-4993-bfeb-53cbbbba6f08/tags" \  -H "Content-Type: application/json" \  -d '{    "tags": [      "prod",      "billing"    ]  }'
{  "data": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "updated": true  }}