curl --request DELETE \
--url https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID} \
--header 'x-service-key: {YOUR_SERVICE_KEY}'
import requests
response = requests.delete(
"https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID}",
headers={"x-service-key": "{YOUR_SERVICE_KEY}"},
)
print(response.json())
const response = await fetch(
"https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID}",
{
method: "DELETE",
headers: { "x-service-key": "{YOUR_SERVICE_KEY}" },
}
);
const data = await response.json();
console.log(data);
{
"workflowId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isArchived": true,
"archivedAt": "2026-01-15T10:30:00.000Z",
"archivedBy": "Ada Lovelace"
}
{
"statusCode": 400,
"message": "WF_HAS_ACTIVE_VERSIONS"
}
Workflows
Archive a Workflow
Archive a workflow, removing it from listings
DELETE
/
api
/
v1
/
workflow
/
{workflowId}
curl --request DELETE \
--url https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID} \
--header 'x-service-key: {YOUR_SERVICE_KEY}'
import requests
response = requests.delete(
"https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID}",
headers={"x-service-key": "{YOUR_SERVICE_KEY}"},
)
print(response.json())
const response = await fetch(
"https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID}",
{
method: "DELETE",
headers: { "x-service-key": "{YOUR_SERVICE_KEY}" },
}
);
const data = await response.json();
console.log(data);
{
"workflowId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isArchived": true,
"archivedAt": "2026-01-15T10:30:00.000Z",
"archivedBy": "Ada Lovelace"
}
{
"statusCode": 400,
"message": "WF_HAS_ACTIVE_VERSIONS"
}
Archive a workflow. Archiving removes it from listings; it does not delete the workflow or its version history, and Restore a Workflow brings it back.
Requires the Workflow: Full permission on the workflow.
A workflow that still has an active version cannot be archived — the call returns
400 with WF_HAS_ACTIVE_VERSIONS. Deactivate the workflow first by setting activeStatus to inactive via Update a Workflow, then archive it.Path Parameters
string
required
The ID of the workflow to archive
Headers
string
required
Your API authentication key
Response
string
required
The workflow ID that was archived — the same ID you supplied in the path
boolean
required
Archive status after the call. Always
true on a 2xx response.string
When the workflow was archived, ISO 8601.
null if unknown.string
Display name of the user who archived the workflow.
null if unknown.Archiving is idempotent. Archiving a workflow that is already archived succeeds and changes nothing — and
archivedAt returns the original archive time, not the time of the repeat call.Errors
Bad Request
The workflow still has an active version (
WF_HAS_ACTIVE_VERSIONS) — deactivate it before archiving.Unauthorized
Missing, invalid, or expired API key.
Forbidden
No access to this workflow.
Not Found
The workflow does not exist.
curl --request DELETE \
--url https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID} \
--header 'x-service-key: {YOUR_SERVICE_KEY}'
import requests
response = requests.delete(
"https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID}",
headers={"x-service-key": "{YOUR_SERVICE_KEY}"},
)
print(response.json())
const response = await fetch(
"https://operator.opus.com/api/v1/workflow/{YOUR_WORKFLOW_ID}",
{
method: "DELETE",
headers: { "x-service-key": "{YOUR_SERVICE_KEY}" },
}
);
const data = await response.json();
console.log(data);
{
"workflowId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"isArchived": true,
"archivedAt": "2026-01-15T10:30:00.000Z",
"archivedBy": "Ada Lovelace"
}
{
"statusCode": 400,
"message": "WF_HAS_ACTIVE_VERSIONS"
}
Was this page helpful?