Update workflow
curl -X PUT 'https://api.justcrawl.io/api/v1/workflows/a47ac10b-58cc-4372-a567-0e02b2c3d479' \ -H 'Authorization: Bearer $JUSTCRAWL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"name":"Updated name","dag":{"nodes":[{"id":"entry","type":"entry"},{"id":"svc","type":"service","providerId":"oxylabs"},{"id":"out","type":"result"}],"edges":[{"from":"entry","to":"svc"},{"from":"svc","to":"out"}]}}'Update a workflow. Each successful update creates a new version rather than
mutating in place — the previous version stays addressable via
GET /api/v1/workflows/{id}/versions/{version}. Smart workflows are read-only;
attempting to edit one returns 400 — clone it first via
POST /api/v1/workflows/{id}/clone. The DAG is validated server-side; structural
errors return 400 with a validationErrors array.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The workflow’s stable logical id — the workflowId field of a workflow object, NOT its id field. id is the per-version row key and 404s here.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
object
object
object
Responses
Section titled “Responses”The updated workflow header. Returns only workflowId, name, and the new version integer rather than the full Workflow schema — fetch via GET /api/v1/workflows/{id} if you need the full DAG echoed back.
object
The new version number created by this update.
Examplegenerated
{ "workflowId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "version": 1}Invalid name/dag field, DAG failed structural validation, or the workflow is a smart workflow that must be cloned before editing.
object
object
Examplegenerated
{ "error": "example", "validationErrors": [ {} ]}Missing or invalid authentication token
object
Example
{ "error": "Missing or invalid authentication token"}Insufficient permissions for this operation
object
Example
{ "error": "No organization. Complete onboarding first."}Resource not found
object
Example
{ "error": "Workflow not found"}Unexpected server error. Logs and PostHog $exception capture
object
Example
{ "error": "Something went wrong"}