{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/dottedsign-com/json-schema/dottedsign-com-sign-task-list-schema.json",
  "title": "SignTaskList",
  "description": "Sign task list.",
  "x-generated": "2026-11-06",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/dottedsign-com-groups-api-openapi.yml#/components/schemas/SignTaskList",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "total_count": {
          "type": "integer",
          "description": "Total count of items."
        },
        "current_page": {
          "type": "integer",
          "description": "Current page number."
        },
        "total_pages": {
          "type": "integer",
          "description": "Total page count."
        },
        "tasks": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SignTask"
          }
        }
      }
    }
  },
  "$defs": {
    "DummyStage": {
      "type": "object",
      "properties": {
        "stage_id": {
          "type": "integer",
          "description": "Stage ID."
        },
        "role": {
          "type": "string",
          "description": "Signer's role."
        },
        "email": {
          "type": "string",
          "description": "Actor's email."
        },
        "stage_type": {
          "type": "string",
          "description": "Stage type.",
          "enum": [
            "sign",
            "edit",
            "form_sign"
          ]
        },
        "sequence": {
          "type": "integer",
          "description": "Stage sequence, which starts from `1`."
        },
        "status": {
          "type": "string",
          "description": "Stage status.",
          "enum": [
            "initial",
            "processing",
            "signed",
            "done",
            "modifying",
            "reviewed",
            "declined",
            "canceled"
          ]
        }
      },
      "description": "Dummy stage."
    },
    "SignStage": {
      "type": "object",
      "properties": {
        "stage_id": {
          "type": "integer",
          "description": "Stage ID."
        },
        "name": {
          "type": "string",
          "description": "Signer's name."
        },
        "email": {
          "type": "string",
          "description": "Actor's email."
        },
        "stage_type": {
          "type": "string",
          "description": "Stage type.",
          "enum": [
            "sign",
            "edit",
            "form_sign"
          ]
        },
        "sequence": {
          "type": "integer",
          "description": "Stage sequence, which starts from `1`."
        },
        "status": {
          "type": "string",
          "description": "Stage status.",
          "enum": [
            "initial",
            "processing",
            "signed",
            "done",
            "modifying",
            "reviewed",
            "declined",
            "canceled"
          ]
        }
      },
      "description": "Sign stage."
    },
    "SignTask": {
      "type": "object",
      "description": "Sign task.",
      "properties": {
        "task_id": {
          "type": "integer",
          "description": "Task ID."
        },
        "file_name": {
          "type": "string",
          "description": "File name."
        },
        "sign_type": {
          "type": "string",
          "description": "Sign type.",
          "enum": [
            "sign_and_send",
            "create_and_invite",
            "kiosk",
            "guest_signing",
            "form"
          ]
        },
        "has_order": {
          "type": "boolean",
          "description": "Signers should sign sequentially or not."
        },
        "status": {
          "type": "string",
          "description": "Task status.",
          "enum": [
            "draft",
            "waiting",
            "completed",
            "declined",
            "expired",
            "voided",
            "deleted"
          ]
        },
        "last_modified_by_owner": {
          "type": "boolean",
          "description": "Last modification by owner or not."
        },
        "owned_by_me": {
          "type": "boolean",
          "description": "Task is owned by me or not."
        },
        "access_info": {
          "$ref": "#/$defs/SignTaskAccessInfo"
        },
        "current_stage_infos": {
          "type": "array",
          "description": "Current stages' info.",
          "items": {
            "type": "object",
            "properties": {
              "stage_id": {
                "type": "integer",
                "description": "Stage ID."
              },
              "email": {
                "type": "string",
                "description": "Signer's email."
              },
              "name": {
                "type": "string",
                "description": "Signer's name."
              }
            }
          }
        },
        "details": {
          "type": "array",
          "description": "Stage details, including owner's and stages' information.\n* For all tasks, first schema is `SignTaskOwner`.\n* For type of `sign_and_send`, `guest_signing` or `kiosk` tasks, see `DummyStage` schema.\n* For type of `create_and_invite` or `form` tasks, see `SignStage` schema.\n",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/SignTaskOwner"
              },
              {
                "$ref": "#/$defs/DummyStage"
              },
              {
                "$ref": "#/$defs/SignStage"
              }
            ]
          }
        },
        "task_setting": {
          "$ref": "#/$defs/SignTaskSetting"
        },
        "metadata": {
          "type": "object",
          "description": "Metadata. **Maximum 10 key-value pairs, where each key length must be less than or equal to 40 characters and each value length must be less than or equal to 100 characters.**"
        },
        "created_at": {
          "type": "integer",
          "description": "Task creation timestamp."
        },
        "last_modified_at": {
          "type": "integer",
          "description": "Task last modification timestamp."
        }
      }
    },
    "SignTaskAccessInfo": {
      "type": "object",
      "description": "Sign task access info.",
      "properties": {
        "view": {
          "type": "boolean",
          "description": "Member can view the task or not."
        },
        "sign": {
          "type": "boolean",
          "description": "Member can sign the task or not."
        },
        "review": {
          "type": "boolean",
          "description": "Member can review the task or not."
        },
        "decline": {
          "type": "boolean",
          "description": "Member can decline the task or not."
        },
        "confirm": {
          "type": "boolean",
          "description": "Member can confirm the task or not."
        },
        "update": {
          "type": "boolean",
          "description": "Member can update the draft task or not."
        },
        "forward": {
          "type": "boolean",
          "description": "Member can forward the task or not."
        },
        "forward_request": {
          "type": "boolean",
          "description": "Member can send forward request to the owner or not."
        },
        "preview_attachments": {
          "type": "boolean",
          "description": "Member can preview the attachments or not."
        },
        "download": {
          "type": "boolean",
          "description": "Member can download the task or not."
        },
        "download_audit_trail": {
          "type": "boolean",
          "description": "Member can download the audit trail or not."
        },
        "download_attachments": {
          "type": "boolean",
          "description": "Member can download the attachments or not."
        },
        "download_source_files": {
          "type": "boolean",
          "description": "Member can download the source files or not."
        },
        "void": {
          "type": "boolean",
          "description": "Member can void the task or not."
        },
        "delete": {
          "type": "boolean",
          "description": "Member can delete the task or not."
        },
        "restore": {
          "type": "boolean",
          "description": "Member can restore the task or not."
        },
        "share_sign_link": {
          "type": "boolean",
          "description": "Member can share the sign link or not."
        },
        "archive": {
          "type": "boolean",
          "description": "Member can archive the task or not."
        },
        "dearchive": {
          "type": "boolean",
          "description": "Member can dearchive the task or not."
        },
        "save_template": {
          "type": "boolean",
          "description": "Member can save as a template or not."
        },
        "resend": {
          "type": "boolean",
          "description": "Member can resend the task or not."
        },
        "edit": {
          "type": "boolean",
          "description": "Member can edit the waiting task or not."
        }
      }
    },
    "SignTaskOwner": {
      "type": "object",
      "description": "Sign task owner.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Owner's name."
        },
        "sequence": {
          "type": "integer",
          "description": "Owner's sequence, which is `0`."
        },
        "email": {
          "type": "string",
          "description": "Owner's email."
        },
        "status": {
          "type": "string",
          "description": "Owner's status.",
          "enum": [
            "created",
            "sent",
            "voided"
          ]
        }
      }
    },
    "SignTaskSetting": {
      "type": "object",
      "properties": {
        "ai_summary": {
          "type": "boolean",
          "description": "Whether AI-generated summary and key information is enabled for the task."
        },
        "deadline": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Deadline in timestamp in seconds. *Used for `SignTask` only.*"
        },
        "forget_remind": {
          "type": "boolean",
          "description": "Remind the signer or not when task is waiting for signing."
        },
        "expire_remind": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Remind the signer or not when task is going to be expired. *Used for `SignTask` only.*"
        },
        "remind_days_before_expire": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Days before expire to remind the signer. *Used for `SignTask` only.*"
        },
        "link_expire_days": {
          "type": "integer",
          "description": "Days before the signing link expires. *Always resolved (request > template > owner preference), never null.*"
        },
        "forget_remind_days": {
          "type": "integer",
          "description": "Days after the signing request to send the first reminder; a second reminder is sent at 3× this value. Only effective when `forget_remind` is `true`. *Always resolved (request > template > owner preference), never null.*"
        },
        "expires_in_days": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Days before expire. *Used for `SignTask` only.*"
        },
        "cc_infos": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SourceSettingCcInfo"
          }
        },
        "message": {
          "type": [
            "string",
            "null"
          ],
          "description": "Message to the signer when task is processing."
        },
        "completed_message": {
          "type": [
            "string",
            "null"
          ],
          "description": "Message to the signer when task is completed."
        },
        "reference_settings": {
          "type": "array",
          "description": "Reference information viewable to signers when task is processing.",
          "items": {
            "$ref": "#/$defs/SourceSettingReferenceSetting"
          }
        },
        "completed_reference_settings": {
          "type": "array",
          "description": "Reference information viewable to signers when task is completed.",
          "deprecated": true,
          "items": {
            "$ref": "#/$defs/SourceSettingReferenceSetting"
          }
        },
        "receiver_lang": {
          "type": "string",
          "description": "Language displayed for the signer, only effective if signer has not set his preferred language."
        },
        "owner_informable": {
          "type": "boolean",
          "description": "Inform the owner through email or not when task is updated.",
          "default": false
        }
      },
      "description": "Sign task setting."
    },
    "SourceSettingCcInfo": {
      "type": "object",
      "description": "Source setting cc info.",
      "properties": {
        "email": {
          "type": "string",
          "description": "CC Email."
        },
        "name": {
          "type": "string",
          "description": "CC Name."
        }
      }
    },
    "SourceSettingReferenceSetting": {
      "type": "object",
      "description": "Source setting reference setting.",
      "properties": {
        "file_name": {
          "type": "string",
          "description": "Reference name."
        },
        "reference_id": {
          "type": "string",
          "description": "Reference ID."
        },
        "reference_type": {
          "type": "string",
          "description": "Reference file type."
        },
        "force": {
          "type": "boolean",
          "description": "Force signers to consent to the file or not."
        },
        "viewable_in_processing": {
          "type": "boolean",
          "description": "Signers can view the file or not before the task is completed."
        }
      }
    }
  }
}