{
  "openapi": "3.0.4",
  "info": {
    "title": "CheckFlow API",
    "description": "Public API for CheckFlow (https://checkflow.io)",
    "termsOfService": "https://checkflow.io/terms",
    "contact": {
      "name": "API Documentation",
      "url": "https://docs.checkflow.io/docs/integrations/api"
    },
    "version": "1.0"
  },
  "paths": {
    "/api/authentication/validate": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authenticates the API Key",
        "description": "Sample request:\r\n\r\n    GET: api/authentication/validate",
        "parameters": [
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "If the API Key was successfully validated"
          },
          "401": {
            "description": "If the API Key could not be validated"
          }
        }
      }
    },
    "/api/checklist/find": {
      "get": {
        "tags": [
          "Checklist"
        ],
        "summary": "Finds checklists matching the search criteria and optionally creates a checklist if it doesn't exist.",
        "description": "If you do not know the key for the template your checklists are derived from use - GET: api/template/templates\r\n\r\nSample requests:\r\n\r\n    GET: api/checklist/find?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb\r\n    GET: api/checklist/find?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb&checklistName=My%20Checklist\r\n    GET: api/checklist/find?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb&checklistName=My%20Checklist&tag=Urgent\r\n    GET: api/checklist/find?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb&tag=Urgent&status=INPROGRESS\r\n    GET: api/checklist/find?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb&checklistName=My%20Checklist&createIfNotExists=true",
        "parameters": [
          {
            "name": "templateKey",
            "in": "query",
            "description": "The key for the template the checklist is derived from",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checklistName",
            "in": "query",
            "description": "The name of the checklist (can be a partial checklist name)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag associated with the checklist (can be a partial tag name)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The status of the checklists to be returned. Can be one of the following values: ALL, SCHEDULED, INPROGRESS, RECENTLYCOMPLETE, COMPLETE",
            "schema": {
              "type": "string",
              "default": "ALL"
            }
          },
          {
            "name": "createIfNotExists",
            "in": "query",
            "description": "If no checklist are found, create a new checklist using the checklistName.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size. Maximum of 10.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 3
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the matching checklists"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no checklists are found"
          }
        }
      }
    },
    "/api/checklist/details": {
      "get": {
        "tags": [
          "Checklist"
        ],
        "summary": "Gets full details for checklists matching the search criteria. This includes all task and content data.\r\nEither templateKey or checklistKey must be provided.",
        "description": "If you do not know the key for the template your checklists are derived from use - GET: api/template/templates\r\n            \r\nSample request:\r\n            \r\n    GET: api/checklist/details?checklistKey=1abcd949-d0c8-43dd-b643-917207f397d8\r\n    GET: api/checklist/details?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb\r\n    GET: api/checklist/details?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb&checklistName=My%20Checklist\r\n    GET: api/checklist/details?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb&tag=Urgent\r\n    GET: api/checklist/details?templateKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb&status=INPROGRESS",
        "parameters": [
          {
            "name": "templateKey",
            "in": "query",
            "description": "The key for the template the checklist is derived from",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checklistKey",
            "in": "query",
            "description": "The key for the checklist",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checklistName",
            "in": "query",
            "description": "The name of the checklist (can be a partial checklist name)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "description": "The tag associated with the checklist (can be a partial tag name)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The status of the checklists to be returned. Can be one of the following values: ALL, SCHEDULED, INPROGRESS, RECENTLYCOMPLETE, COMPLETE",
            "schema": {
              "type": "string",
              "default": "ALL"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size. Maximum of 10.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 3
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the matching checklists"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no checklists are found"
          }
        }
      }
    },
    "/api/checklist/tasks": {
      "get": {
        "tags": [
          "Checklist"
        ],
        "summary": "Gets tasks matching the taskKey and status.",
        "description": "If you do not know the task key use - GET: api/template/tasks\r\n\r\nSample request:\r\n\r\n    GET: api/checklist/tasks\r\n    {\r\n       \"taskKey\": \"50d58518-e049-4474-84c7-036236e52923\",\r\n       \"status\": \"ALL\",\r\n       \"pageSize\": 3,\r\n       \"pageNumber\": 1\r\n    }",
        "parameters": [
          {
            "name": "taskKey",
            "in": "query",
            "description": "The key for the task",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The status of the tasks to be returned. Can be one of the following values: ALL, OPEN, COMPLETE",
            "schema": {
              "type": "string",
              "default": "ALL"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size. Maximum of 10.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 3
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the matching tasks"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no tasks are found"
          }
        }
      }
    },
    "/api/checklist/uploaded-files": {
      "get": {
        "tags": [
          "Checklist"
        ],
        "summary": "Gets all files uploaded using a file upload control matching the taskContentKey.",
        "description": "If you do not know the task content key for the file upload control you're interested in use - GET: api/template/tasks\r\n\r\nSample request:\r\n\r\n    GET: api/checklist/uploaded-files\r\n    {\r\n       \"taskContentKey\": \"50d58518-e049-4474-84c7-036236e52923\",\r\n       \"pageSize\": 3,\r\n       \"pageNumber\": 1\r\n    }",
        "parameters": [
          {
            "name": "taskContentKey",
            "in": "query",
            "description": "The key for the file upload control",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size. Maximum of 10.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 3
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the file upload control and all uploaded files"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no controls are found"
          }
        }
      }
    },
    "/api/checklist": {
      "post": {
        "tags": [
          "Checklist"
        ],
        "summary": "Creates a new checklist",
        "description": "Sample request:\r\n\r\n    POST: api/checklist\r\n    {\r\n       \"templateKey\": \"b90dd809-eefc-447e-8c17-5f0ca96df701\",\r\n       \"checklistName\": \"My New Checklist\"\r\n    }",
        "parameters": [
          {
            "name": "templateKey",
            "in": "query",
            "description": "The key for the template that the checklist will be derived from",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checklistName",
            "in": "query",
            "description": "The name of the checklist",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the newly created checklist"
          },
          "401": {
            "description": "If the API Key could not be validated"
          }
        }
      },
      "delete": {
        "tags": [
          "Checklist"
        ],
        "summary": "Deletes a checklist",
        "description": "Sample request:\r\n\r\n    DELETE: api/checklist?checklistId=123",
        "parameters": [
          {
            "name": "checklistId",
            "in": "query",
            "description": "The id of the checklist to delete",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "If the checklist was deleted successfully"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If the checklist could not be found"
          }
        }
      }
    },
    "/api/checklist/share": {
      "post": {
        "tags": [
          "Checklist"
        ],
        "summary": "Creates or deletes a shared url for an existing checklist",
        "description": "Sample request:\r\nIf you do not know the checklist id use - GET: api/checklist/find\r\n\r\n    POST: api/checklist/share\r\n    {\r\n       \"checklistId\": \"123\",\r\n       \"isShared\": true\r\n    }",
        "parameters": [
          {
            "name": "checklistId",
            "in": "query",
            "description": "The checklist id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "isShared",
            "in": "query",
            "description": "The shared status",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the shared status details for the checklist"
          },
          "401": {
            "description": "If the API Key could not be validated"
          }
        }
      }
    },
    "/api/checklist/delete-many": {
      "delete": {
        "tags": [
          "Checklist"
        ],
        "summary": "Deletes all checklists matching any of the given criteria",
        "description": "There are three ways to delete checklists.\r\n            \r\nYou can pass a list of checklist ids:\r\n            \r\nDELETE: api/checklist/delete-many { \"checklistIds\": [ 985, 1321 ], \"templateKeys\": [], \"checklistStatus\": \"\" }\r\n            \r\nYou can pass a list of template keys. When doing this you must also pass the checklist status. The statuses are: ALL, INPROGRESS, COMPLETE, SCHEDULED\r\n\r\nDELETE: api/checklist/delete-many { \"checklistIds\": [], \"templateKeys\": [ \"F6395E1C-2DD5-41E5-87C1-9F9804ECA0A1\", \"A59BA9AE-9E81-434A-AB0B-56EE51EBD157\" ], \"checklistStatus\": \"ALL\" }\r\n\r\nYou can pass just the checklist status. All checklists matching the status will be deleted. The statuses are: ALL, INPROGRESS, COMPLETE, SCHEDULED\r\n\r\nDELETE: api/checklist/delete-many { \"checklistIds\": [], \"templateKeys\": [], \"checklistStatus\": \"ALL\" }\r\n\r\nYou can pass a combination of the above to delete checklists in different ways in one call.\r\n\r\nDELETE: api/checklist/delete-many { \"checklistIds\": [ 985, 1321 ], \"templateKeys\": [ \"F6395E1C-2DD5-41E5-87C1-9F9804ECA0A1\", \"A59BA9AE-9E81-434A-AB0B-56EE51EBD157\" ], \"checklistStatus\": \"COMPLETE\" }",
        "parameters": [
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "requestBody": {
          "description": "The checklist ids, template keys or status of the checklists to delete.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteManyModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteManyModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteManyModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteManyModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "If the checklists were deleted successfully"
          },
          "401": {
            "description": "If the API Key could not be validated"
          }
        }
      }
    },
    "/api/task/details": {
      "get": {
        "tags": [
          "Task"
        ],
        "summary": "Gets the full details of a specific task, including all content, comments and assignees.",
        "description": "If you do not know the checklist id or the task key use - GET: /api/checklist/find \r\n\r\nSample request:\r\n\r\n    GET: /api/task/details?checklistId=1234&taskKey=0e7ad584-7788-4ab1-95a6-ca0a5b444cbb",
        "parameters": [
          {
            "name": "checklistId",
            "in": "query",
            "description": "The id of the checklist",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "taskKey",
            "in": "query",
            "description": "The task key",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the matching task"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If the task could not be found"
          }
        }
      }
    },
    "/api/task/assignments": {
      "get": {
        "tags": [
          "Task"
        ],
        "summary": "Gets the assignment details of all tasks assigned to a team member or group.",
        "description": "If you do not know the assignee id use - GET: /api/team/members-and-groups\r\n\r\nSample request:\r\n\r\n    GET: /api/task/assignments?assigneeId=1234&assigneeType=TeamMember&includeTeamMemberGroups=true&includeCompletedTasks=false",
        "parameters": [
          {
            "name": "assigneeId",
            "in": "query",
            "description": "The id of the assignee (either the team member id or the group id)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "assigneeType",
            "in": "query",
            "description": "The type or assignee (1 for team member, 2 for group)",
            "schema": {
              "$ref": "#/components/schemas/AssignableType"
            }
          },
          {
            "name": "includeTeamMemberGroups",
            "in": "query",
            "description": "True if you would also like to retrieve tasks that are assigned to groups the team member is a part of",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeCompletedTasks",
            "in": "query",
            "description": "True if you would like to retrive tasks that have already been completed",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the task assignments"
          },
          "401": {
            "description": "If the API Key could not be validated"
          }
        }
      }
    },
    "/api/task/comment": {
      "post": {
        "tags": [
          "Task"
        ],
        "summary": "Creates a comment on a task.",
        "description": "If you do not know the task id use - GET: /api/task/comment\r\n\r\nSample request:\r\n\r\n    POST: /api/task/comment\r\n    {\r\n        \"taskID\": 285212,\r\n        \"commentHtml\": \"<p>Here is my comment.</p>\",\r\n        \"createdByUserID\": 123\r\n    }",
        "parameters": [
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommentModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommentModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommentModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommentModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "If the task comment was created successfully"
          },
          "400": {
            "description": "If the task content could not be updated"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If the taskID could not be found"
          }
        }
      }
    },
    "/api/task/update-task-content": {
      "put": {
        "tags": [
          "Task"
        ],
        "summary": "Updates the content of a task.",
        "description": "If you do not know the task content values required to perform an update use - GET: /api/task/details\r\n\r\nSample request:\r\n\r\n    PUT: /api/task/update-task-content\r\n    {\r\n        \"taskContentID\": 285212,\r\n        \"contentID\": 74838,\r\n        \"key\": \"cea96ee1-e6e9-4dc9-abf5-f3714f70f53e\",\r\n        \"contentType\": 2,\r\n        \"name\": \"Short Text\",\r\n        \"value\": \"Updated from the API\"\r\n    }",
        "parameters": [
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TaskContentSummary"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskContentSummary"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskContentSummary"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TaskContentSummary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "If the task content was updated successfully"
          },
          "400": {
            "description": "If the task content could not be updated"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If the task content could not be found"
          }
        }
      }
    },
    "/api/team/members-and-groups": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "Gets members and groups for assigning to tasks. Use the optional 'nameContains' parameter to filter by name, or leave this empty to return all members and groups.",
        "description": "Sample request:\r\n\r\n    GET: /api/team/members-and-groups\r\n    GET: /api/team/members-and-groups?nameContains=Elon%20Musk",
        "parameters": [
          {
            "name": "nameContains",
            "in": "query",
            "description": "The name of a member or group to search for. Leave empty to return all members and groups.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of matching active members and groups within your team"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no members or groups are found"
          }
        }
      }
    },
    "/api/team/members": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "Gets members for assigning to tasks. Use the optional 'nameContains' parameter to filter by name, or leave this empty to return all members.",
        "description": "Sample request:\r\n\r\n    GET: /api/team/members\r\n    GET: /api/team/members?nameContains=Elon%20Musk",
        "parameters": [
          {
            "name": "nameContains",
            "in": "query",
            "description": "The name of a member to search for. Leave empty to return all members.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of matching active members within your team"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no members are found"
          }
        }
      }
    },
    "/api/team/groups": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "Gets groups for assigning to tasks. Use the optional 'nameContains' parameter to filter by name, or leave this empty to return all groups.",
        "description": "Sample request:\r\n\r\n    GET: /api/team/groups\r\n    GET: /api/team/groups?nameContains=Human%20Resources",
        "parameters": [
          {
            "name": "nameContains",
            "in": "query",
            "description": "The name of a group to search for. Leave empty to return all groups.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of matching active groups within your team"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no groups are found"
          }
        }
      }
    },
    "/api/template/templates": {
      "get": {
        "tags": [
          "Template"
        ],
        "summary": "Gets the key and name of every active template",
        "description": "Sample request:\r\n\r\n    GET: api/template/templates",
        "parameters": [
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the templates"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no templates are found"
          }
        }
      }
    },
    "/api/template/tasks": {
      "get": {
        "tags": [
          "Template"
        ],
        "summary": "Gets all tasks for a template.",
        "description": "If you do not know the key for the template you can use - GET: api/template/templates\r\n\r\nSample request:\r\n\r\n    GET: api/template/tasks\r\n    {\r\n       \"templateKey\": \"0e7ad584-7788-4ab1-95a6-ca0a5b444cbb\"\r\n    }",
        "parameters": [
          {
            "name": "templateKey",
            "in": "query",
            "description": "The key for the template",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the matching tasks"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no tasks are found"
          }
        }
      }
    },
    "/api/template/task-content": {
      "get": {
        "tags": [
          "Template"
        ],
        "summary": "Gets the content contained within a task filtered by the content type.",
        "description": "If you do not know the key for the task you can use - GET: api/template/tasks\r\n\r\nSample request:\r\n\r\n    GET: api/template/task-content\r\n    {\r\n       \"taskKey\": \"07072bc4-f1eb-4536-819a-1ddb7dc109a1\",\r\n       \"contentType\": \"ALL\"\r\n    }",
        "parameters": [
          {
            "name": "taskKey",
            "in": "query",
            "description": "The key for the task",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contentType",
            "in": "query",
            "description": "The content type to search for. Must be one of the following values: 'ALL, ALLINPUT, Text, ShortText, LongText, EmailInput, Website, FileUpload, Date, DropDown, MultiChoice, SubTasks, Image, Video, File'",
            "schema": {
              "type": "string",
              "default": "ALL"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the matching content controls"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no content controls are found"
          }
        }
      }
    },
    "/api/web-hook/subscriptions": {
      "get": {
        "tags": [
          "WebHook"
        ],
        "summary": "Gets your web hook subscriptions filtered by source and eventType",
        "description": "Sample request:\r\n\r\n    GET: api/web-hook/subscriptions\r\n    {\r\n       \"source\": \"zapier\",\r\n       \"eventType\": \"ALL\"\r\n    }",
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "The source of your web hook",
            "schema": {
              "type": "string",
              "default": "ALL"
            }
          },
          {
            "name": "eventType",
            "in": "query",
            "description": "The type of web hook event",
            "schema": {
              "type": "string",
              "default": "ALL"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the matching subscriptions"
          },
          "401": {
            "description": "If the API Key could not be validated"
          },
          "404": {
            "description": "If no subscriptions are found"
          }
        }
      }
    },
    "/api/web-hook/subscribe": {
      "post": {
        "tags": [
          "WebHook"
        ],
        "summary": "Creates a new web hook subscription",
        "description": "Sample request:\r\n            \r\n    POST: api/web-hook/subscribe\r\n    {\r\n       \"source\": \"zapier\",\r\n       \"eventType\": \"task_completed\",\r\n       \"targetUrl\": \"https://example.com/hooks/123456789\",\r\n       \"templateKey\": null,\r\n       \"taskKey\": \"50d58518-e049-4474-84c7-036236e52923\",\r\n       \"taskContentKey\": null\r\n    }\r\n            \r\nFor task_completed the scope is determined by which key you supply:\r\n  - taskKey:     fires only when that specific task is completed\r\n  - templateKey: fires when any task in any checklist of that template is completed\r\n  - (no key):    fires when any task in your team is completed",
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "The source of your web hook",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventType",
            "in": "query",
            "description": "The type of web hook event. Can be one of the following: new_checklist, task_completed, file_uploaded, data_set.record.created, data_set.record.updated, data_set.record.deleted",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetUrl",
            "in": "query",
            "description": "The URL that the web hook will post the JSON to when the event occurs",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "templateKey",
            "in": "query",
            "description": "The key for the targeted template (optional - depending on event)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskKey",
            "in": "query",
            "description": "The key for the targeted task (optional - depending on event)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskContentKey",
            "in": "query",
            "description": "The key for the targeted task content (optional - depending on event)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the newly created subscription"
          },
          "401": {
            "description": "If the API Key could not be validated"
          }
        }
      }
    },
    "/api/web-hook/unsubscribe": {
      "delete": {
        "tags": [
          "WebHook"
        ],
        "summary": "Deletes an existing web hook subscription",
        "description": "If you do not know the subscriptionId use - GET: api/web-hook/subscriptions\r\n\r\nSample request:\r\n\r\n    DELETE: api/web-hook/unsubscribe\r\n    {\r\n       \"subscriptionId\": \"b90dd809-eefc-447e-8c17-5f0ca96df701\"\r\n    }",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "query",
            "description": "The id of the web hook subscription you want to delete",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-API-VERSION",
            "in": "header",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "X-API-KEY",
            "in": "header",
            "description": "API Key",
            "schema": {
              "type": "String"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the newly created subscription"
          },
          "401": {
            "description": "If the API Key could not be validated"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AssignableType": {
        "enum": [
          0,
          1,
          2,
          3,
          -1
        ],
        "type": "integer",
        "format": "int32"
      },
      "ContentType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20
        ],
        "type": "integer",
        "format": "int32"
      },
      "CreateCommentModel": {
        "required": [
          "commentHtml",
          "taskID"
        ],
        "type": "object",
        "properties": {
          "taskID": {
            "type": "integer",
            "format": "int32"
          },
          "commentHtml": {
            "minLength": 1,
            "type": "string"
          },
          "createdByUserID": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DeleteManyModel": {
        "type": "object",
        "properties": {
          "checklistIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "templateKeys": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "checklistStatus": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TaskContentSummary": {
        "type": "object",
        "properties": {
          "taskContentID": {
            "type": "integer",
            "format": "int32"
          },
          "contentID": {
            "type": "integer",
            "format": "int32"
          },
          "key": {
            "type": "string",
            "format": "uuid"
          },
          "contentType": {
            "$ref": "#/components/schemas/ContentType"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}