{ "opencollection": "1.0.0", "info": { "name": "Cube Agents Taskflow API", "version": "1.0.0 (1.0)" }, "items": [ { "info": { "name": "Taskflow", "type": "folder" }, "items": [ { "info": { "name": "List action items", "type": "http" }, "http": { "method": "GET", "url": "https://api.cubesoftware.com/action-items", "headers": [ { "name": "X-Company-ID", "value": "" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Retrieve a list of all action items created by the authenticated user within their company.\n\nItems are returned ordered by position (ascending)." }, { "info": { "name": "Create an action item", "type": "http" }, "http": { "method": "POST", "url": "https://api.cubesoftware.com/action-items", "headers": [ { "name": "X-Company-ID", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Create a new action item. The action item name must be unique within the company.\n\nThe position field is automatically set to the end of the list (count of existing items). Position is 0-indexed and maintains a continuous sequence with no gaps." }, { "info": { "name": "Retrieve an action item", "type": "http" }, "http": { "method": "GET", "url": "https://api.cubesoftware.com/action-items/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Retrieve details of a specific action item by ID. Users can only retrieve action items they created." }, { "info": { "name": "Update an action item", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.cubesoftware.com/action-items/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Partially update an action item. Only include fields to be updated.\n\n- Set \"completed\" to true to mark as completed, or false to mark as incomplete.\n- Update \"position\" to reorder the item (0-indexed). Other items will automatically shift to maintain continuous sequence.\n- Users can only update action items they created." }, { "info": { "name": "Delete an action item", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.cubesoftware.com/action-items/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Delete an action item by ID. Users can only delete action items they created.\n\nWhen an item is deleted, all items with higher positions are automatically shifted down to close the gap and maintain a continuous sequence." }, { "info": { "name": "List workflows", "type": "http" }, "http": { "method": "GET", "url": "https://api.cubesoftware.com/processes", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "created_by", "value": "", "type": "query", "description": "Filter by creator ID" }, { "name": "owner", "value": "", "type": "query", "description": "Filter by owner ID" }, { "name": "past_due", "value": "", "type": "query", "description": "Filter for processes with tasks that have a due date in the past." }, { "name": "search", "value": "", "type": "query", "description": "Search term for process name or owner details." }, { "name": "status", "value": "", "type": "query", "description": "Filter by status" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "List all workflows with optional filtering." }, { "info": { "name": "Create a workflow", "type": "http" }, "http": { "method": "POST", "url": "https://api.cubesoftware.com/processes", "headers": [ { "name": "X-Company-ID", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Create a new workflow. Required field: name." }, { "info": { "name": "Retrieve a workflow", "type": "http" }, "http": { "method": "GET", "url": "https://api.cubesoftware.com/processes/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Retrieve details of a specific workflow by its ID." }, { "info": { "name": "Update a workflow (PATCH)", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.cubesoftware.com/processes/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Update specific process fields. Only include fields to be updated." }, { "info": { "name": "Delete a workflow", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.cubesoftware.com/processes/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Soft delete a workflow by marking it as deleted." }, { "info": { "name": "processes_duplicate_create", "type": "http" }, "http": { "method": "POST", "url": "https://api.cubesoftware.com/processes/:id/duplicate", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "This is a shortcut class that will include all 6 resourceful actions part of the DRF ViewSets:\n- list()\n- retrieve()\n- create()\n- update()\n- partial_update()\n- destroy()\n\nIf you do not want to expose all 6 of these in your ViewSet, then use the CubeAuthenticatedViewSet and add the\nappropriate mixins to it (see rest_framework.mixins). This will allow the api to behave appropriately and block\nrequests to unprocessable endpoints. Furthermore, it will make the drf_spectacular documentation be genera" }, { "info": { "name": "processes_remind_now_create", "type": "http" }, "http": { "method": "POST", "url": "https://api.cubesoftware.com/processes/:id/remind-now", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "This is a shortcut class that will include all 6 resourceful actions part of the DRF ViewSets:\n- list()\n- retrieve()\n- create()\n- update()\n- partial_update()\n- destroy()\n\nIf you do not want to expose all 6 of these in your ViewSet, then use the CubeAuthenticatedViewSet and add the\nappropriate mixins to it (see rest_framework.mixins). This will allow the api to behave appropriately and block\nrequests to unprocessable endpoints. Furthermore, it will make the drf_spectacular documentation be genera" }, { "info": { "name": "processes_tasks_remind_create", "type": "http" }, "http": { "method": "POST", "url": "https://api.cubesoftware.com/processes/:id/tasks/:task_id/remind", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "task_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "This is a shortcut class that will include all 6 resourceful actions part of the DRF ViewSets:\n- list()\n- retrieve()\n- create()\n- update()\n- partial_update()\n- destroy()\n\nIf you do not want to expose all 6 of these in your ViewSet, then use the CubeAuthenticatedViewSet and add the\nappropriate mixins to it (see rest_framework.mixins). This will allow the api to behave appropriately and block\nrequests to unprocessable endpoints. Furthermore, it will make the drf_spectacular documentation be genera" }, { "info": { "name": "processes_tasks_export_retrieve", "type": "http" }, "http": { "method": "GET", "url": "https://api.cubesoftware.com/processes/:id/tasks/export", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "This is a shortcut class that will include all 6 resourceful actions part of the DRF ViewSets:\n- list()\n- retrieve()\n- create()\n- update()\n- partial_update()\n- destroy()\n\nIf you do not want to expose all 6 of these in your ViewSet, then use the CubeAuthenticatedViewSet and add the\nappropriate mixins to it (see rest_framework.mixins). This will allow the api to behave appropriately and block\nrequests to unprocessable endpoints. Furthermore, it will make the drf_spectacular documentation be genera" }, { "info": { "name": "List workflows tasks", "type": "http" }, "http": { "method": "GET", "url": "https://api.cubesoftware.com/tasks", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "assignee", "value": "", "type": "query", "description": "Filter by assignee id" }, { "name": "past_due", "value": "", "type": "query", "description": "Filter by past_due" }, { "name": "process_id", "value": "", "type": "query", "description": "Filter by process id" }, { "name": "status", "value": "", "type": "query", "description": "Filter by status" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "List all tasks for a given workflow" }, { "info": { "name": "Create a task", "type": "http" }, "http": { "method": "POST", "url": "https://api.cubesoftware.com/tasks", "headers": [ { "name": "X-Company-ID", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Create a new task" }, { "info": { "name": "tasks_retrieve", "type": "http" }, "http": { "method": "GET", "url": "https://api.cubesoftware.com/tasks/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "This is a shortcut class that will include all 6 resourceful actions part of the DRF ViewSets:\n- list()\n- retrieve()\n- create()\n- update()\n- partial_update()\n- destroy()\n\nIf you do not want to expose all 6 of these in your ViewSet, then use the CubeAuthenticatedViewSet and add the\nappropriate mixins to it (see rest_framework.mixins). This will allow the api to behave appropriately and block\nrequests to unprocessable endpoints. Furthermore, it will make the drf_spectacular documentation be genera" }, { "info": { "name": "tasks_update", "type": "http" }, "http": { "method": "PUT", "url": "https://api.cubesoftware.com/tasks/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "This is a shortcut class that will include all 6 resourceful actions part of the DRF ViewSets:\n- list()\n- retrieve()\n- create()\n- update()\n- partial_update()\n- destroy()\n\nIf you do not want to expose all 6 of these in your ViewSet, then use the CubeAuthenticatedViewSet and add the\nappropriate mixins to it (see rest_framework.mixins). This will allow the api to behave appropriately and block\nrequests to unprocessable endpoints. Furthermore, it will make the drf_spectacular documentation be genera" }, { "info": { "name": "Update a task", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.cubesoftware.com/tasks/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Update task fields. Only include fields to be updated." }, { "info": { "name": "tasks_destroy", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.cubesoftware.com/tasks/:id", "headers": [ { "name": "X-Company-ID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "This is a shortcut class that will include all 6 resourceful actions part of the DRF ViewSets:\n- list()\n- retrieve()\n- create()\n- update()\n- partial_update()\n- destroy()\n\nIf you do not want to expose all 6 of these in your ViewSet, then use the CubeAuthenticatedViewSet and add the\nappropriate mixins to it (see rest_framework.mixins). This will allow the api to behave appropriately and block\nrequests to unprocessable endpoints. Furthermore, it will make the drf_spectacular documentation be genera" }, { "info": { "name": "Bulk create and update Tasks", "type": "http" }, "http": { "method": "POST", "url": "https://api.cubesoftware.com/tasks/bulk", "headers": [ { "name": "X-Company-ID", "value": "" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://portal.cubesoftware.com/o/authorize/", "accessTokenUrl": "https://api.cubesoftware.com/o/token/", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Executes a batch of Task operations (creates and updates) for a single Workflow Process.\n\n**Request Rules:**\n- Only `In Progress` or `Not Started` Processes are permitted\n- Tasks with an `id` are treated as updates\n- Tasks without an `id` (or `id: null`) are treated as creates\n- Updates are processed before creates\n- New tasks are always created with status `DRAFT` regardless of supplied value\n- Only Workflow Managers can access this endpoint\n\n**Resources:**\n- Each task supports a `resources` ar" } ] } ], "bundled": true }