{"openapi":"3.0.0","info":{"title":"Afineo Webservices API — workflows","description":"Module `workflows` of the Afineo API v3 (5 endpoints).\n\nRetrieve workflow configurations: list available workflows and get complete workflow definitions including states, transitions and rules. Supports both repository and project contexts.\n\nFull specification: https://api.afineo.io/openapi.json","version":"3.0.0","contact":{"name":"Afineo Solutions","url":"https://www.afineo.com"},"x-logo":{"url":"./logo.png","altText":"Afineo - Powerful Data, Powerful People"}},"servers":[{"url":"https://{instance}.afineo.io","description":"Afineo instance","variables":{"instance":{"description":"Your Afineo instance name","default":"client"}}}],"tags":[{"name":"workflows","description":"Retrieve workflow configurations: list available workflows and get complete workflow definitions including states, transitions and rules. Supports both repository and project contexts."}],"paths":{"/api/v3/workflows/full/node/":{"post":{"tags":["workflows"],"summary":"Get full workflows for project node","description":"## Purpose\n\nReturns all workflows for a project node with complete configuration details.\n","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Workflow list with complete information response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Success Response","properties":{"status_code":{"type":"integer","example":1,"description":"Status code (1 = success)"},"status_message":{"type":"string","example":"","description":"Status message"},"result":{"type":"object","properties":{"results_total":{"type":"integer","example":2,"description":"Total number of workflows returned"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":15,"description":"Workflow ID"},"code":{"type":"string","example":"","description":"Workflow code"},"label":{"type":"string","example":"Workflow validation","description":"Workflow label"},"tags":{"type":"array","items":{"type":"string"},"example":["validation","review"],"description":"Array of tags (can be empty)"},"class_id":{"type":"integer","example":4,"description":"Associated class ID"},"project_node_id":{"type":"integer","example":1234,"description":"Project node ID (0 for repository project)"},"project_label":{"type":"string","example":"My Project","description":"Project label"},"started":{"type":"boolean","example":true,"description":"Whether the workflow is started"},"filters":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute_id":{"type":"integer","example":123,"description":"Attribute ID. Use POST /api/v3/attributes/list with class_id to get available attributes."},"attribute_label":{"type":"string","example":"Status","description":"Attribute label"},"value":{"type":"string","example":"active","description":"Filter value"}}},"description":"Workflow filters (array of filter objects or null)"},"supertype":{"type":"object","properties":{"id":{"type":"integer","example":3,"description":"Supertype ID"},"label":{"type":"string","example":"Products","description":"Supertype label"}},"required":["id","label"],"description":"Supertype information"},"types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":42,"description":"Type ID"},"label":{"type":"string","example":"Product","description":"Type label"}},"required":["id","label"]},"description":"Array of asset types associated with this workflow"},"configuration":{"type":"object","properties":{"step_groups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":1,"description":"Step group ID"},"label":{"type":"string","example":"Validation","description":"Step group label"},"order":{"type":"integer","example":1,"description":"Display order"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":101,"description":"Step ID"},"label":{"type":"string","example":"Draft","description":"Step label"},"order":{"type":"integer","example":1,"description":"Display order"},"color":{"type":"string","nullable":true,"example":"#28a745","description":"Step color"},"start":{"type":"boolean","example":false,"description":"Whether this is a start step"},"notification":{"type":"object","nullable":true,"properties":{"mail_template_id":{"type":"integer","example":5,"description":"Mail template ID"},"mail_template_label":{"type":"string","example":"Validation notification","description":"Mail template label"}},"description":"Notification configuration (null if not configured)"},"delay_days":{"type":"integer","nullable":true,"example":7,"description":"Delay in days for the step"},"contributors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":5,"description":"Contributor group ID"},"label":{"type":"string","example":"Validation Group","description":"Contributor group label"}},"required":["id","label"]},"description":"Array of contributors for this step"},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":201,"description":"Action ID"},"label":{"type":"string","example":"Validate","description":"Action label"},"goto_step":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":102,"description":"Destination step ID"},"label":{"type":"string","example":"Validated","description":"Destination step label"}},"required":["id","label"],"description":"Destination step (null if no destination)"},"mode":{"type":"string","enum":["send_the_brief","submit","reject","validate"],"example":"validate","description":"Action mode (send_the_brief, submit, reject or validate)"},"display_if_completeness":{"type":"boolean","example":false,"description":"Display button only if all completeness attributes are filled"}},"required":["id","label","mode","display_if_completeness"]},"description":"Array of actions for this step"},"completeness":{"type":"object","nullable":true,"properties":{"attributes":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"example":{"123":"Attribute Label","456":"Other Attribute"},"description":"Map of attribute IDs to their labels"},"automate_goto_step":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":102,"description":"Automatic transition step ID when complete"},"label":{"type":"string","example":"Validate","description":"Automatic transition step label when complete"}},"required":["id","label"],"description":"Automatic step transition when completeness is reached"}},"description":"Completeness configuration (null if not configured)"},"hotfolder":{"type":"object","nullable":true,"properties":{"action_on_update":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":201,"description":"Action ID to execute on update"},"label":{"type":"string","example":"Validate","description":"Action label"}},"required":["id","label"],"description":"Action to execute when hotfolder is updated (null for no automatic step change)"},"create_version":{"type":"boolean","example":true,"description":"Whether to create a version on update"}},"description":"Hotfolder configuration (null if not configured or not active)"},"status_piloting_view":{"type":"object","properties":{"status":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"1234","description":"Status id"},"label":{"type":"string","nullable":true,"example":"Admin Status","description":"Status label"}},"required":["id"],"description":"Status configuration (null if not configured)"},"default_view":{"type":"string","nullable":true,"enum":["default","completeness","list"],"example":"completeness","description":"Default view mode (default, completeness, or list)"},"children_piloting":{"type":"object","nullable":true,"oneOf":[{"type":"object","title":"Workflow Type","properties":{"type":{"type":"string","enum":["workflow"],"example":"workflow","description":"Children piloting type"},"items":{"type":"array","items":{"type":"object","properties":{"workflow":{"type":"object","properties":{"id":{"type":"integer","example":15,"description":"Target workflow ID"},"label":{"type":"string","nullable":true,"example":"Child Workflow","description":"Target workflow label"}},"required":["id"]},"step":{"type":"object","properties":{"id":{"type":"integer","example":101,"description":"Target step ID"},"label":{"type":"string","nullable":true,"example":"Draft","description":"Target step label"}},"required":["id"]}},"required":["workflow","step"]},"description":"Array of workflow step configurations"}},"required":["type","items"]},{"type":"object","title":"Status Type","properties":{"type":{"type":"string","enum":["status"],"example":"status","description":"Children piloting type"},"items":{"type":"array","items":{"type":"object","properties":{"status":{"type":"object","properties":{"id":{"type":"integer","example":123,"description":"Status ID"},"label":{"type":"string","nullable":true,"example":"Active","description":"Status label"}},"required":["id"]},"supertypes":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"integer","example":3,"description":"Supertype ID"},"label":{"type":"string","nullable":true,"example":"Products","description":"Supertype label"}},"required":["id"]},"description":"Array of supertypes (null if not configured)"},"types":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"integer","example":42,"description":"Type ID"},"label":{"type":"string","nullable":true,"example":"Product","description":"Type label"}},"required":["id"]},"description":"Array of types (null if not configured)"}},"required":["status"]},"description":"Array of status configurations"}},"required":["type","items"]}],"description":"Children piloting configuration (null if not configured)"}},"description":"Status, piloting and view configuration"},"reminder":{"type":"object","nullable":true,"properties":{"days_before":{"type":"integer","example":7,"description":"Days before deadline to send notification"},"recurrence_days":{"type":"integer","nullable":true,"example":1,"description":"Recurrence interval in days for notifications"}},"description":"Reminder configuration (null if not configured)"}},"required":["id","label","order","start","contributors","actions","status_piloting_view"]},"description":"Array of steps in this group"}},"required":["id","label","order","steps"]},"description":"Array of step groups containing steps with their nested data"}},"required":["step_groups"],"description":"Workflow configuration containing step groups hierarchy"}},"required":["id","code","label","class_id","project_node_id","project_label","tags","supertype","types","started","configuration"],"description":"Complete workflow information with hierarchical structure"},"description":"Array of workflow objects with complete information"}},"required":["results_total","items"]}},"required":["status_code","status_message","result"]},{"type":"object","title":"Error Response","properties":{"status_code":{"type":"integer","example":3,"description":"Status code (3 = error, 0 = not found)"},"status_message":{"type":"string","example":"Project not found or access denied","description":"Error message"},"result":{"type":"array","items":{"type":"object"},"example":[],"description":"Empty array on error"}},"required":["status_code","status_message","result"]}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_node_id":{"type":"integer","description":"Project node ID. Use POST /api/v3/projects/list with class_id to get available projects.","example":1234},"class_id":{"type":"integer","description":"Library ID. Use POST /api/v3/administration/classes/list to get available libraries.","example":4},"filters":{"type":"object","description":"Optional filters object. Currently supports filtering by type_id only.","example":{"type_id":42},"properties":{"type_id":{"type":"integer","description":"Filter workflows by type ID. Use POST /api/v3/types/list with class_id to get valid type IDs. Returns workflows that have this type in their types array, or if types is empty, have a supertype matching the type's supertype.","example":42}}}},"required":["project_node_id","class_id"]}}}}}},"/api/v3/workflows/full/repository/":{"post":{"tags":["workflows"],"summary":"Get full workflows for repository","description":"## Purpose\n\nReturns all workflows for the repository project with complete configuration details.\n","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Workflow list with complete information response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Success Response","properties":{"status_code":{"type":"integer","example":1,"description":"Status code (1 = success)"},"status_message":{"type":"string","example":"","description":"Status message"},"result":{"type":"object","properties":{"results_total":{"type":"integer","example":2,"description":"Total number of workflows returned"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":15,"description":"Workflow ID"},"code":{"type":"string","example":"","description":"Workflow code"},"label":{"type":"string","example":"Workflow validation","description":"Workflow label"},"tags":{"type":"array","items":{"type":"string"},"example":["validation","review"],"description":"Array of tags (can be empty)"},"class_id":{"type":"integer","example":4,"description":"Associated class ID"},"project_node_id":{"type":"integer","example":1234,"description":"Project node ID (0 for repository project)"},"project_label":{"type":"string","example":"My Project","description":"Project label"},"started":{"type":"boolean","example":true,"description":"Whether the workflow is started"},"filters":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute_id":{"type":"integer","example":123,"description":"Attribute ID. Use POST /api/v3/attributes/list with class_id to get available attributes."},"attribute_label":{"type":"string","example":"Status","description":"Attribute label"},"value":{"type":"string","example":"active","description":"Filter value"}}},"description":"Workflow filters (array of filter objects or null)"},"supertype":{"type":"object","properties":{"id":{"type":"integer","example":3,"description":"Supertype ID"},"label":{"type":"string","example":"Products","description":"Supertype label"}},"required":["id","label"],"description":"Supertype information"},"types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":42,"description":"Type ID"},"label":{"type":"string","example":"Product","description":"Type label"}},"required":["id","label"]},"description":"Array of asset types associated with this workflow"},"configuration":{"type":"object","properties":{"step_groups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":1,"description":"Step group ID"},"label":{"type":"string","example":"Validation","description":"Step group label"},"order":{"type":"integer","example":1,"description":"Display order"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":101,"description":"Step ID"},"label":{"type":"string","example":"Draft","description":"Step label"},"order":{"type":"integer","example":1,"description":"Display order"},"color":{"type":"string","nullable":true,"example":"#28a745","description":"Step color"},"start":{"type":"boolean","example":false,"description":"Whether this is a start step"},"notification":{"type":"object","nullable":true,"properties":{"mail_template_id":{"type":"integer","example":5,"description":"Mail template ID"},"mail_template_label":{"type":"string","example":"Validation notification","description":"Mail template label"}},"description":"Notification configuration (null if not configured)"},"delay_days":{"type":"integer","nullable":true,"example":7,"description":"Delay in days for the step"},"contributors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":5,"description":"Contributor group ID"},"label":{"type":"string","example":"Validation Group","description":"Contributor group label"}},"required":["id","label"]},"description":"Array of contributors for this step"},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":201,"description":"Action ID"},"label":{"type":"string","example":"Validate","description":"Action label"},"goto_step":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":102,"description":"Destination step ID"},"label":{"type":"string","example":"Validated","description":"Destination step label"}},"required":["id","label"],"description":"Destination step (null if no destination)"},"mode":{"type":"string","enum":["send_the_brief","submit","reject","validate"],"example":"validate","description":"Action mode (send_the_brief, submit, reject or validate)"},"display_if_completeness":{"type":"boolean","example":false,"description":"Display button only if all completeness attributes are filled"}},"required":["id","label","mode","display_if_completeness"]},"description":"Array of actions for this step"},"completeness":{"type":"object","nullable":true,"properties":{"attributes":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"example":{"123":"Attribute Label","456":"Other Attribute"},"description":"Map of attribute IDs to their labels"},"automate_goto_step":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":102,"description":"Automatic transition step ID when complete"},"label":{"type":"string","example":"Validate","description":"Automatic transition step label when complete"}},"required":["id","label"],"description":"Automatic step transition when completeness is reached"}},"description":"Completeness configuration (null if not configured)"},"hotfolder":{"type":"object","nullable":true,"properties":{"action_on_update":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":201,"description":"Action ID to execute on update"},"label":{"type":"string","example":"Validate","description":"Action label"}},"required":["id","label"],"description":"Action to execute when hotfolder is updated (null for no automatic step change)"},"create_version":{"type":"boolean","example":true,"description":"Whether to create a version on update"}},"description":"Hotfolder configuration (null if not configured or not active)"},"status_piloting_view":{"type":"object","properties":{"status":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"1234","description":"Status id"},"label":{"type":"string","nullable":true,"example":"Admin Status","description":"Status label"}},"required":["id"],"description":"Status configuration (null if not configured)"},"default_view":{"type":"string","nullable":true,"enum":["default","completeness","list"],"example":"completeness","description":"Default view mode (default, completeness, or list)"},"children_piloting":{"type":"object","nullable":true,"oneOf":[{"type":"object","title":"Workflow Type","properties":{"type":{"type":"string","enum":["workflow"],"example":"workflow","description":"Children piloting type"},"items":{"type":"array","items":{"type":"object","properties":{"workflow":{"type":"object","properties":{"id":{"type":"integer","example":15,"description":"Target workflow ID"},"label":{"type":"string","nullable":true,"example":"Child Workflow","description":"Target workflow label"}},"required":["id"]},"step":{"type":"object","properties":{"id":{"type":"integer","example":101,"description":"Target step ID"},"label":{"type":"string","nullable":true,"example":"Draft","description":"Target step label"}},"required":["id"]}},"required":["workflow","step"]},"description":"Array of workflow step configurations"}},"required":["type","items"]},{"type":"object","title":"Status Type","properties":{"type":{"type":"string","enum":["status"],"example":"status","description":"Children piloting type"},"items":{"type":"array","items":{"type":"object","properties":{"status":{"type":"object","properties":{"id":{"type":"integer","example":123,"description":"Status ID"},"label":{"type":"string","nullable":true,"example":"Active","description":"Status label"}},"required":["id"]},"supertypes":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"integer","example":3,"description":"Supertype ID"},"label":{"type":"string","nullable":true,"example":"Products","description":"Supertype label"}},"required":["id"]},"description":"Array of supertypes (null if not configured)"},"types":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"integer","example":42,"description":"Type ID"},"label":{"type":"string","nullable":true,"example":"Product","description":"Type label"}},"required":["id"]},"description":"Array of types (null if not configured)"}},"required":["status"]},"description":"Array of status configurations"}},"required":["type","items"]}],"description":"Children piloting configuration (null if not configured)"}},"description":"Status, piloting and view configuration"},"reminder":{"type":"object","nullable":true,"properties":{"days_before":{"type":"integer","example":7,"description":"Days before deadline to send notification"},"recurrence_days":{"type":"integer","nullable":true,"example":1,"description":"Recurrence interval in days for notifications"}},"description":"Reminder configuration (null if not configured)"}},"required":["id","label","order","start","contributors","actions","status_piloting_view"]},"description":"Array of steps in this group"}},"required":["id","label","order","steps"]},"description":"Array of step groups containing steps with their nested data"}},"required":["step_groups"],"description":"Workflow configuration containing step groups hierarchy"}},"required":["id","code","label","class_id","project_node_id","project_label","tags","supertype","types","started","configuration"],"description":"Complete workflow information with hierarchical structure"},"description":"Array of workflow objects with complete information"}},"required":["results_total","items"]}},"required":["status_code","status_message","result"]},{"type":"object","title":"Error Response","properties":{"status_code":{"type":"integer","example":3,"description":"Status code (3 = error, 0 = not found)"},"status_message":{"type":"string","example":"Repository project not found or access denied","description":"Error message"},"result":{"type":"array","items":{"type":"object"},"example":[],"description":"Empty array on error"}},"required":["status_code","status_message","result"]}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"class_id":{"type":"integer","description":"Library ID. Use POST /api/v3/administration/classes/list to get available libraries.","example":4},"filters":{"type":"object","description":"Optional filters object. Currently supports filtering by type_id only.","example":{"type_id":42},"properties":{"type_id":{"type":"integer","description":"Filter workflows by type ID. Use POST /api/v3/types/list with class_id to get valid type IDs. Returns workflows that have this type in their types array, or if types is empty, have a supertype matching the type's supertype.","example":42}}}},"required":["class_id"]}}}}}},"/api/v3/workflows/get/":{"post":{"tags":["workflows"],"summary":"Get workflow details","description":"## Purpose\n\nReturns complete workflow configuration including step groups hierarchy, steps with their actions, contributors, completeness rules, and notification settings.\n\n## When to Use\n\n- Use after POST /api/v3/workflows/list/repository/ or POST /api/v3/workflows/list/node/ to get full details of a workflow\n- Check `configuration.step_groups[].steps[]` to understand the workflow progression\n- Check each step's `actions` to see available transitions (validate, reject, submit)\n- Check `contributors` per step to see which user groups can act\n- Check `completeness` to understand automatic transitions based on data completeness\n","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Workflow information response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Success Response","properties":{"status_code":{"type":"integer","example":1,"description":"Status code (1 = success)"},"status_message":{"type":"string","example":"","description":"Status message"},"result":{"type":"object","properties":{"id":{"type":"integer","example":15,"description":"Workflow ID"},"code":{"type":"string","example":"","description":"Workflow code"},"label":{"type":"string","example":"Workflow validation","description":"Workflow label"},"tags":{"type":"array","items":{"type":"string"},"example":["validation","review"],"description":"Array of tags (can be empty)"},"class_id":{"type":"integer","example":4,"description":"Associated class ID"},"project_node_id":{"type":"integer","example":1234,"description":"Project node ID (0 for repository project)"},"project_label":{"type":"string","example":"My Project","description":"Project label"},"started":{"type":"boolean","example":true,"description":"Whether the workflow is started"},"filters":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute_id":{"type":"integer","example":123,"description":"Attribute ID. Use POST /api/v3/attributes/list with class_id to get available attributes."},"attribute_label":{"type":"string","example":"Status","description":"Attribute label"},"value":{"type":"string","example":"active","description":"Filter value"}}},"description":"Workflow filters (array of filter objects or null)"},"supertype":{"type":"object","properties":{"id":{"type":"integer","example":3,"description":"Supertype ID"},"label":{"type":"string","example":"Products","description":"Supertype label"}},"required":["id","label"],"description":"Supertype information"},"types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":42,"description":"Type ID"},"label":{"type":"string","example":"Product","description":"Type label"}},"required":["id","label"]},"description":"Array of asset types associated with this workflow"},"configuration":{"type":"object","properties":{"step_groups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":1,"description":"Step group ID"},"label":{"type":"string","example":"Validation","description":"Step group label"},"order":{"type":"integer","example":1,"description":"Display order"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":101,"description":"Step ID"},"label":{"type":"string","example":"Draft","description":"Step label"},"order":{"type":"integer","example":1,"description":"Display order"},"color":{"type":"string","nullable":true,"example":"#28a745","description":"Step color"},"start":{"type":"boolean","example":false,"description":"Whether this is a start step"},"notification":{"type":"object","nullable":true,"properties":{"mail_template_id":{"type":"integer","example":5,"description":"Mail template ID"},"mail_template_label":{"type":"string","example":"Validation notification","description":"Mail template label"}},"description":"Notification configuration (null if not configured)"},"delay_days":{"type":"integer","nullable":true,"example":7,"description":"Delay in days for the step"},"contributors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":5,"description":"Contributor group ID"},"label":{"type":"string","example":"Validation Group","description":"Contributor group label"}},"required":["id","label"]},"description":"Array of contributors for this step"},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":201,"description":"Action ID"},"label":{"type":"string","example":"Validate","description":"Action label"},"goto_step":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":102,"description":"Destination step ID"},"label":{"type":"string","example":"Validated","description":"Destination step label"}},"required":["id","label"],"description":"Destination step (null if no destination)"},"mode":{"type":"string","enum":["send_the_brief","submit","reject","validate"],"example":"validate","description":"Action mode (send_the_brief, submit, reject or validate)"},"display_if_completeness":{"type":"boolean","example":false,"description":"Display button only if all completeness attributes are filled"}},"required":["id","label","mode","display_if_completeness"]},"description":"Array of actions for this step"},"completeness":{"type":"object","nullable":true,"properties":{"attributes":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"example":{"123":"Attribute Label","456":"Other Attribute"},"description":"Map of attribute IDs to their labels"},"automate_goto_step":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":102,"description":"Automatic transition step ID when complete"},"label":{"type":"string","example":"Validate","description":"Automatic transition step label when complete"}},"required":["id","label"],"description":"Automatic step transition when completeness is reached"}},"description":"Completeness configuration (null if not configured)"},"hotfolder":{"type":"object","nullable":true,"properties":{"action_on_update":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","example":201,"description":"Action ID to execute on update"},"label":{"type":"string","example":"Validate","description":"Action label"}},"required":["id","label"],"description":"Action to execute when hotfolder is updated (null for no automatic step change)"},"create_version":{"type":"boolean","example":true,"description":"Whether to create a version on update"}},"description":"Hotfolder configuration (null if not configured or not active)"},"status_piloting_view":{"type":"object","properties":{"status":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"1234","description":"Status id"},"label":{"type":"string","nullable":true,"example":"Admin Status","description":"Status label"}},"required":["id"],"description":"Status configuration (null if not configured)"},"default_view":{"type":"string","nullable":true,"enum":["default","completeness","list"],"example":"completeness","description":"Default view mode (default, completeness, or list)"},"children_piloting":{"type":"object","nullable":true,"oneOf":[{"type":"object","title":"Workflow Type","properties":{"type":{"type":"string","enum":["workflow"],"example":"workflow","description":"Children piloting type"},"items":{"type":"array","items":{"type":"object","properties":{"workflow":{"type":"object","properties":{"id":{"type":"integer","example":15,"description":"Target workflow ID"},"label":{"type":"string","nullable":true,"example":"Child Workflow","description":"Target workflow label"}},"required":["id"]},"step":{"type":"object","properties":{"id":{"type":"integer","example":101,"description":"Target step ID"},"label":{"type":"string","nullable":true,"example":"Draft","description":"Target step label"}},"required":["id"]}},"required":["workflow","step"]},"description":"Array of workflow step configurations"}},"required":["type","items"]},{"type":"object","title":"Status Type","properties":{"type":{"type":"string","enum":["status"],"example":"status","description":"Children piloting type"},"items":{"type":"array","items":{"type":"object","properties":{"status":{"type":"object","properties":{"id":{"type":"integer","example":123,"description":"Status ID"},"label":{"type":"string","nullable":true,"example":"Active","description":"Status label"}},"required":["id"]},"supertypes":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"integer","example":3,"description":"Supertype ID"},"label":{"type":"string","nullable":true,"example":"Products","description":"Supertype label"}},"required":["id"]},"description":"Array of supertypes (null if not configured)"},"types":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"integer","example":42,"description":"Type ID"},"label":{"type":"string","nullable":true,"example":"Product","description":"Type label"}},"required":["id"]},"description":"Array of types (null if not configured)"}},"required":["status"]},"description":"Array of status configurations"}},"required":["type","items"]}],"description":"Children piloting configuration (null if not configured)"}},"description":"Status, piloting and view configuration"},"reminder":{"type":"object","nullable":true,"properties":{"days_before":{"type":"integer","example":7,"description":"Days before deadline to send notification"},"recurrence_days":{"type":"integer","nullable":true,"example":1,"description":"Recurrence interval in days for notifications"}},"description":"Reminder configuration (null if not configured)"}},"required":["id","label","order","start","contributors","actions","status_piloting_view"]},"description":"Array of steps in this group"}},"required":["id","label","order","steps"]},"description":"Array of step groups containing steps with their nested data"}},"required":["step_groups"],"description":"Workflow configuration containing step groups hierarchy"}},"required":["id","code","label","class_id","project_node_id","project_label","tags","supertype","types","started","configuration"],"description":"Complete workflow information with hierarchical structure"}},"required":["status_code","status_message","result"]},{"type":"object","title":"Error Response","properties":{"status_code":{"type":"integer","example":3,"description":"Status code (3 = error, 0 = not found)"},"status_message":{"type":"string","example":"Workflow not found or access denied","description":"Error message"},"result":{"type":"array","items":{"type":"object"},"example":[],"description":"Empty array on error"}},"required":["status_code","status_message","result"]}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","description":"Workflow ID. Use POST /api/v3/workflows/list/repository/ (for master data) or POST /api/v3/workflows/list/node/ (for project context) to get available workflows.","example":15}},"required":["id"]}}}}}},"/api/v3/workflows/list/node/":{"post":{"tags":["workflows"],"summary":"List workflows by project node","description":"## Purpose\n\nReturns simplified workflow list for a specific project node (id, code, label, types).\n\n## Node vs Repository Context\n\n- **Node** (`/node/`): Workflows configured for a specific project. Use when working within a project context (e.g., managing assets in a publication project).\n- **Repository** (`/repository/`): Workflows configured at the master repository level (root, no project). Use POST /api/v3/workflows/list/repository/ instead.\n\n## When to Use\n\n- Use to discover available workflows for a project before changing asset workflow status\n- The workflow `id` returned is used in POST /api/v3/recordAsset/update-status/node/\n- Use POST /api/v3/workflows/get with a workflow ID to see complete step configuration (step groups, actions, contributors)\n\n## Filtering\n\nUse `filters.type_id` to filter by asset type. If a workflow has no explicit types, it matches via supertype fallback.\n","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Workflow list response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Success Response","properties":{"status_code":{"type":"integer","example":1,"description":"Status code (1 = success)"},"status_message":{"type":"string","example":"","description":"Status message"},"result":{"type":"object","properties":{"results_total":{"type":"integer","example":2,"description":"Total number of workflows returned"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":15,"description":"Workflow ID"},"code":{"type":"string","example":"","description":"Workflow code"},"label":{"type":"string","example":"Workflow validation","description":"Workflow label"},"class_id":{"type":"integer","example":4,"description":"Class ID"},"project_node_id":{"type":"integer","example":1234,"description":"Project node ID"},"project_label":{"type":"string","example":"My Project","description":"Project label"},"tags":{"type":"array","items":{"type":"string"},"example":["validation","review"],"description":"Array of tags (can be empty)"},"supertype":{"type":"object","properties":{"id":{"type":"integer","example":3,"description":"Supertype ID"},"label":{"type":"string","example":"Products","description":"Supertype label"}},"required":["id","label"],"description":"Supertype information"},"types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":42,"description":"Type ID"},"label":{"type":"string","example":"Product","description":"Type label"}},"required":["id","label"]},"description":"Array of asset types associated with this workflow"}},"required":["id","code","label","class_id","project_node_id","project_label","tags","supertype","types"]},"description":"Array of workflow objects"}},"required":["results_total","items"]}},"required":["status_code","status_message","result"]},{"type":"object","title":"Error Response","properties":{"status_code":{"type":"integer","example":3,"description":"Status code (3 = error, 0 = not found)"},"status_message":{"type":"string","example":"Project not found or access denied","description":"Error message"},"result":{"type":"array","items":{"type":"object"},"example":[],"description":"Empty array on error"}},"required":["status_code","status_message","result"]}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_node_id":{"type":"integer","description":"Project node ID. Use POST /api/v3/projects/list with class_id to get available projects.","example":1234},"class_id":{"type":"integer","description":"Library ID. Use POST /api/v3/administration/classes/list to get available libraries.","example":4},"filters":{"type":"object","description":"Optional filters object. Currently supports filtering by type_id only.","example":{"type_id":42},"properties":{"type_id":{"type":"integer","description":"Filter workflows by type ID. Use POST /api/v3/types/list with class_id to get valid type IDs. Returns workflows that have this type in their types array, or if types is empty, have a supertype matching the type's supertype.","example":42}}}},"required":["project_node_id","class_id"]}}}}}},"/api/v3/workflows/list/repository/":{"post":{"tags":["workflows"],"summary":"List workflows for repository","description":"## Purpose\n\nReturns simplified workflow list for the master repository (automatically retrieved by class_id).\n\n## Node vs Repository Context\n\n- **Repository** (`/repository/`): Workflows configured at the master repository level (root project, project_node_id=0). These apply to all assets at the library level, outside of any specific project context.\n- **Node** (`/node/`): Workflows for a specific project. Use POST /api/v3/workflows/list/node/ with project_node_id instead.\n\n## When to Use\n\n- Use to discover available workflows for master data (repository context)\n- The workflow `id` returned is used in POST /api/v3/recordAsset/update-status/repository/\n- Use POST /api/v3/workflows/get with a workflow ID to see complete step configuration\n","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Workflow list response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Success Response","properties":{"status_code":{"type":"integer","example":1,"description":"Status code (1 = success)"},"status_message":{"type":"string","example":"","description":"Status message"},"result":{"type":"object","properties":{"results_total":{"type":"integer","example":2,"description":"Total number of workflows returned"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":15,"description":"Workflow ID"},"code":{"type":"string","example":"","description":"Workflow code"},"label":{"type":"string","example":"Workflow validation","description":"Workflow label"},"class_id":{"type":"integer","example":4,"description":"Class ID"},"project_node_id":{"type":"integer","example":0,"description":"Project node ID (0 for repository project)"},"project_label":{"type":"string","example":"Repository Project","description":"Project label"},"tags":{"type":"array","items":{"type":"string"},"example":["validation","review"],"description":"Array of tags (can be empty)"},"supertype":{"type":"object","properties":{"id":{"type":"integer","example":3,"description":"Supertype ID"},"label":{"type":"string","example":"Products","description":"Supertype label"}},"required":["id","label"],"description":"Supertype information"},"types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":42,"description":"Type ID"},"label":{"type":"string","example":"Product","description":"Type label"}},"required":["id","label"]},"description":"Array of asset types associated with this workflow"}},"required":["id","code","label","class_id","project_node_id","project_label","tags","supertype","types"]},"description":"Array of workflow objects"}},"required":["results_total","items"]}},"required":["status_code","status_message","result"]},{"type":"object","title":"Error Response","properties":{"status_code":{"type":"integer","example":3,"description":"Status code (3 = error, 0 = not found)"},"status_message":{"type":"string","example":"Repository project not found or access denied","description":"Error message"},"result":{"type":"array","items":{"type":"object"},"example":[],"description":"Empty array on error"}},"required":["status_code","status_message","result"]}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"class_id":{"type":"integer","description":"Library ID. Use POST /api/v3/administration/classes/list to get available libraries.","example":4},"filters":{"type":"object","description":"Optional filters object. Currently supports filtering by type_id only.","example":{"type_id":42},"properties":{"type_id":{"type":"integer","description":"Filter workflows by type ID. Use POST /api/v3/types/list with class_id to get valid type IDs. Returns workflows that have this type in their types array, or if types is empty, have a supertype matching the type's supertype.","example":42}}}},"required":["class_id"]}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token generated with /api/v3/token/get/"}}}}