{
  "components": {
    "parameters": {
      "IdempotencyKey": {
        "description": "Unique key (max 200 chars, e.g. a UUID). A 2xx response is stored for 24 h and replayed for the same key and body (`Idempotent-Replayed: true`); the same key with a different body returns 422 `idempotency_key_reused`.",
        "in": "header",
        "name": "Idempotency-Key",
        "required": false,
        "schema": {
          "maxLength": 200,
          "type": "string"
        }
      }
    },
    "schemas": {
      "AnchorInfo": {
        "properties": {
          "bitcoin_block_height": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bitcoin Block Height"
          },
          "commitment": {
            "title": "Commitment",
            "type": "string"
          },
          "confirmed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirmed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "digest": {
            "title": "Digest",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "ots_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ots Url"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "kind",
          "status",
          "digest",
          "commitment",
          "bitcoin_block_height",
          "confirmed_at",
          "created_at",
          "ots_url"
        ],
        "title": "AnchorInfo",
        "type": "object"
      },
      "ApprovalDecision": {
        "properties": {
          "comment": {
            "default": "",
            "maxLength": 2000,
            "title": "Comment",
            "type": "string"
          },
          "decision": {
            "enum": [
              "approve",
              "reject"
            ],
            "title": "Decision",
            "type": "string"
          }
        },
        "required": [
          "decision"
        ],
        "title": "ApprovalDecision",
        "type": "object"
      },
      "AuditEntry": {
        "properties": {
          "actor_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actor Email"
          },
          "actor_ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actor Ip"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "event_type": {
            "title": "Event Type",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          },
          "target_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Type"
          }
        },
        "required": [
          "id",
          "event_type",
          "actor_email",
          "actor_ip",
          "target_type",
          "created_at",
          "metadata"
        ],
        "title": "AuditEntry",
        "type": "object"
      },
      "Body_bulk_send_api_v1_documents_bulk_post": {
        "properties": {
          "pdf": {
            "contentMediaType": "application/octet-stream",
            "title": "Pdf",
            "type": "string"
          },
          "recipients_csv": {
            "contentMediaType": "application/octet-stream",
            "description": "CSV columns: email,name,phone",
            "title": "Recipients Csv",
            "type": "string"
          },
          "redirect_url_after_sign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "https URL after signing",
            "title": "Redirect Url After Sign"
          },
          "title_template": {
            "description": "Title with optional {name}/{email} placeholders",
            "title": "Title Template",
            "type": "string"
          },
          "verification_type": {
            "$ref": "#/components/schemas/VerificationType",
            "default": "NONE"
          }
        },
        "required": [
          "title_template",
          "pdf",
          "recipients_csv"
        ],
        "title": "Body_bulk_send_api_v1_documents_bulk_post",
        "type": "object"
      },
      "Body_create_document_api_v1_documents_post": {
        "properties": {
          "payload": {
            "contentMediaType": "application/json",
            "contentSchema": {
              "$ref": "#/components/schemas/DocumentCreate"
            },
            "description": "JSON-encoded DocumentCreate",
            "title": "Payload",
            "type": "string"
          },
          "pdf": {
            "contentMediaType": "application/octet-stream",
            "title": "Pdf",
            "type": "string"
          }
        },
        "required": [
          "payload",
          "pdf"
        ],
        "title": "Body_create_document_api_v1_documents_post",
        "type": "object"
      },
      "Body_create_template_api_v1_templates_post": {
        "properties": {
          "payload": {
            "description": "JSON-encoded TemplateCreate",
            "title": "Payload",
            "type": "string"
          },
          "pdf": {
            "contentMediaType": "application/octet-stream",
            "title": "Pdf",
            "type": "string"
          }
        },
        "required": [
          "payload",
          "pdf"
        ],
        "title": "Body_create_template_api_v1_templates_post",
        "type": "object"
      },
      "Body_replace_template_pdf_api_v1_templates__template_id__pdf_put": {
        "properties": {
          "pdf": {
            "contentMediaType": "application/octet-stream",
            "title": "Pdf",
            "type": "string"
          }
        },
        "required": [
          "pdf"
        ],
        "title": "Body_replace_template_pdf_api_v1_templates__template_id__pdf_put",
        "type": "object"
      },
      "BouncedRecipient": {
        "properties": {
          "email": {
            "examples": [
              "anna.nowak@example.com"
            ],
            "title": "Email",
            "type": "string"
          },
          "id": {
            "examples": [
              "c2b8f4d1-7e3a-4f60-b5c9-8a1d2e3f4b67"
            ],
            "title": "Id",
            "type": "string"
          },
          "status": {
            "examples": [
              "BOUNCED"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "status"
        ],
        "title": "BouncedRecipient",
        "type": "object"
      },
      "BulkResult": {
        "properties": {
          "created": {
            "title": "Created",
            "type": "integer"
          },
          "document_ids": {
            "items": {
              "type": "string"
            },
            "title": "Document Ids",
            "type": "array"
          },
          "errors": {
            "items": {
              "type": "string"
            },
            "title": "Errors",
            "type": "array"
          },
          "skipped": {
            "title": "Skipped",
            "type": "integer"
          }
        },
        "required": [
          "created",
          "skipped",
          "errors",
          "document_ids"
        ],
        "title": "BulkResult",
        "type": "object"
      },
      "DetectedField": {
        "properties": {
          "confidence": {
            "default": 0.5,
            "title": "Confidence",
            "type": "number"
          },
          "height": {
            "title": "Height",
            "type": "number"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "position_x": {
            "title": "Position X",
            "type": "number"
          },
          "position_y": {
            "title": "Position Y",
            "type": "number"
          },
          "type": {
            "title": "Type",
            "type": "string"
          },
          "width": {
            "title": "Width",
            "type": "number"
          }
        },
        "required": [
          "type",
          "page",
          "position_x",
          "position_y",
          "width",
          "height"
        ],
        "title": "DetectedField",
        "type": "object"
      },
      "DocumentCancel": {
        "properties": {
          "copy_as_draft": {
            "default": false,
            "title": "Copy As Draft",
            "type": "boolean"
          },
          "reason": {
            "maxLength": 600,
            "title": "Reason",
            "type": "string"
          },
          "reason_public": {
            "default": false,
            "title": "Reason Public",
            "type": "boolean"
          }
        },
        "required": [
          "reason"
        ],
        "title": "DocumentCancel",
        "type": "object"
      },
      "DocumentCancelledData": {
        "properties": {
          "cancelled_at": {
            "description": "RFC 3339 UTC.",
            "examples": [
              "2026-10-19T09:12:44+00:00"
            ],
            "title": "Cancelled At",
            "type": "string"
          },
          "copy_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Draft copy created on cancel, when requested.",
            "title": "Copy Document Id"
          },
          "id": {
            "description": "Document UUID.",
            "examples": [
              "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71"
            ],
            "title": "Id",
            "type": "string"
          },
          "organization_id": {
            "examples": [
              "a7d5e0c2-1f43-4b9a-8c6e-2e9f0b3d4c58"
            ],
            "title": "Organization Id",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "examples": [
              "Superseded by v2"
            ],
            "title": "Reason"
          },
          "status": {
            "description": "DRAFT, PENDING, COMPLETED, REJECTED, EXPIRED or CANCELLED.",
            "examples": [
              "PENDING"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "examples": [
              "Office lease \u2014 Biuro Hello"
            ],
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "organization_id",
          "cancelled_at"
        ],
        "title": "DocumentCancelledData",
        "type": "object"
      },
      "DocumentCreate": {
        "properties": {
          "allow_delegation": {
            "default": false,
            "title": "Allow Delegation",
            "type": "boolean"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Expires At"
          },
          "folder_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Folder Id"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/RecipientCreate"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Recipients",
            "type": "array"
          },
          "redirect_url_after_sign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Redirect Url After Sign"
          },
          "signing_order": {
            "$ref": "#/components/schemas/SigningOrder",
            "default": "PARALLEL"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Team Id"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "verification_type": {
            "$ref": "#/components/schemas/VerificationType",
            "default": "NONE"
          }
        },
        "required": [
          "title",
          "recipients"
        ],
        "title": "DocumentCreate",
        "type": "object"
      },
      "DocumentDetail": {
        "properties": {
          "allow_delegation": {
            "default": false,
            "title": "Allow Delegation",
            "type": "boolean"
          },
          "cancel_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancel Reason"
          },
          "cancelled_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelled At"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "copy_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Copy Document Id"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FieldRead"
            },
            "title": "Fields",
            "type": "array"
          },
          "has_signed_pdf": {
            "title": "Has Signed Pdf",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "legal_hold": {
            "default": false,
            "title": "Legal Hold",
            "type": "boolean"
          },
          "legal_hold_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Hold At"
          },
          "legal_hold_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Hold Reason"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/RecipientRead"
            },
            "title": "Recipients",
            "type": "array"
          },
          "redirect_url_after_sign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Redirect Url After Sign"
          },
          "sent_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "signing_order": {
            "$ref": "#/components/schemas/SigningOrder"
          },
          "status": {
            "$ref": "#/components/schemas/DocumentStatus"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "verification_type": {
            "$ref": "#/components/schemas/VerificationType",
            "default": "NONE"
          },
          "void_reason_public": {
            "default": false,
            "title": "Void Reason Public",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "signing_order",
          "created_at",
          "recipients",
          "fields",
          "has_signed_pdf"
        ],
        "title": "DocumentDetail",
        "type": "object"
      },
      "DocumentIntakeRead": {
        "properties": {
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "parties": {
            "items": {
              "$ref": "#/components/schemas/IntakeParty"
            },
            "title": "Parties",
            "type": "array"
          }
        },
        "required": [
          "package_id",
          "parties"
        ],
        "title": "DocumentIntakeRead",
        "type": "object"
      },
      "DocumentRecipientData": {
        "properties": {
          "id": {
            "description": "Document UUID.",
            "examples": [
              "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71"
            ],
            "title": "Id",
            "type": "string"
          },
          "organization_id": {
            "examples": [
              "a7d5e0c2-1f43-4b9a-8c6e-2e9f0b3d4c58"
            ],
            "title": "Organization Id",
            "type": "string"
          },
          "recipient": {
            "$ref": "#/components/schemas/WebhookRecipient"
          },
          "status": {
            "description": "DRAFT, PENDING, COMPLETED, REJECTED, EXPIRED or CANCELLED.",
            "examples": [
              "PENDING"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "examples": [
              "Office lease \u2014 Biuro Hello"
            ],
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "organization_id",
          "recipient"
        ],
        "title": "DocumentRecipientData",
        "type": "object"
      },
      "DocumentRejectedData": {
        "properties": {
          "id": {
            "description": "Document UUID.",
            "examples": [
              "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71"
            ],
            "title": "Id",
            "type": "string"
          },
          "organization_id": {
            "examples": [
              "a7d5e0c2-1f43-4b9a-8c6e-2e9f0b3d4c58"
            ],
            "title": "Organization Id",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "examples": [
              "Wrong rent amount"
            ],
            "title": "Reason"
          },
          "status": {
            "description": "DRAFT, PENDING, COMPLETED, REJECTED, EXPIRED or CANCELLED.",
            "examples": [
              "PENDING"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "examples": [
              "Office lease \u2014 Biuro Hello"
            ],
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "organization_id"
        ],
        "title": "DocumentRejectedData",
        "type": "object"
      },
      "DocumentSend": {
        "description": "Optional invite email override; omitted/blank = auto.",
        "properties": {
          "email_message": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email Message"
          },
          "email_subject": {
            "anyOf": [
              {
                "maxLength": 200,
                "pattern": "^[^\\r\\n]*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email Subject"
          }
        },
        "title": "DocumentSend",
        "type": "object"
      },
      "DocumentSentData": {
        "properties": {
          "id": {
            "description": "Document UUID.",
            "examples": [
              "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71"
            ],
            "title": "Id",
            "type": "string"
          },
          "organization_id": {
            "examples": [
              "a7d5e0c2-1f43-4b9a-8c6e-2e9f0b3d4c58"
            ],
            "title": "Organization Id",
            "type": "string"
          },
          "recipients": {
            "description": "Recipients in signing order.",
            "items": {
              "$ref": "#/components/schemas/WebhookRecipient"
            },
            "title": "Recipients",
            "type": "array"
          },
          "status": {
            "description": "DRAFT, PENDING, COMPLETED, REJECTED, EXPIRED or CANCELLED.",
            "examples": [
              "PENDING"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "examples": [
              "Office lease \u2014 Biuro Hello"
            ],
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "organization_id",
          "recipients"
        ],
        "title": "DocumentSentData",
        "type": "object"
      },
      "DocumentStatus": {
        "enum": [
          "DRAFT",
          "PENDING",
          "COMPLETED",
          "REJECTED",
          "EXPIRED",
          "CANCELLED"
        ],
        "title": "DocumentStatus",
        "type": "string"
      },
      "DocumentSummary": {
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "folder_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Folder Id"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "recipients_count": {
            "title": "Recipients Count",
            "type": "integer"
          },
          "sent_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sent At"
          },
          "status": {
            "$ref": "#/components/schemas/DocumentStatus"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "recipients_count",
          "created_at"
        ],
        "title": "DocumentSummary",
        "type": "object"
      },
      "DocumentUpdate": {
        "description": "PATCH /documents/{id}; null clears the redirect.",
        "properties": {
          "redirect_url_after_sign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Redirect Url After Sign"
          }
        },
        "title": "DocumentUpdate",
        "type": "object"
      },
      "DryRunRequest": {
        "properties": {
          "outcomes": {
            "additionalProperties": {
              "type": "string"
            },
            "maxProperties": 100,
            "title": "Outcomes",
            "type": "object"
          },
          "source": {
            "default": "draft",
            "enum": [
              "draft",
              "published"
            ],
            "title": "Source",
            "type": "string"
          },
          "variables": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "maxProperties": 100,
            "title": "Variables",
            "type": "object"
          }
        },
        "title": "DryRunRequest",
        "type": "object"
      },
      "DryRunResult": {
        "properties": {
          "actions": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Actions",
            "type": "array"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "path": {
            "items": {
              "$ref": "#/components/schemas/PathEntry"
            },
            "title": "Path",
            "type": "array"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "variables": {
            "additionalProperties": true,
            "title": "Variables",
            "type": "object"
          }
        },
        "required": [
          "status",
          "variables",
          "path",
          "actions",
          "error"
        ],
        "title": "DryRunResult",
        "type": "object"
      },
      "ErrorResponse": {
        "description": "`code` is stable and machine-readable \u2014 branch on it. `message` is for humans. `detail` is the legacy field: the same string as `message`, or the list of field errors on 422. Error-specific data is in `extra`. `request_id` equals the `X-Request-Id` header.",
        "examples": [
          {
            "code": "not_found",
            "detail": "Document not found",
            "message": "Document not found",
            "request_id": "9f2c1a7e4b0d3e11"
          }
        ],
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "default": null,
            "title": "Detail"
          },
          "extra": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Extra"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "request_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Request Id"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "ErrorResponse",
        "type": "object"
      },
      "FieldConditional": {
        "description": "Show this field only when another field has a specific value.\nshow_if = {\"field_id\": \"uuid\", \"equals\": \"true\"|\"yes\"|<text>}\nUsed by the signing UI to hide/reveal fields dynamically \u2014 not enforced server-side.",
        "properties": {
          "equals": {
            "title": "Equals",
            "type": "string"
          },
          "field_id": {
            "title": "Field Id",
            "type": "string"
          }
        },
        "required": [
          "field_id",
          "equals"
        ],
        "title": "FieldConditional",
        "type": "object"
      },
      "FieldCreate": {
        "properties": {
          "height": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Height",
            "type": "number"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "options": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Options",
            "type": "array"
          },
          "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
          },
          "position_x": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Position X",
            "type": "number"
          },
          "position_y": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Position Y",
            "type": "number"
          },
          "recipient_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Id"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "show_if": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FieldConditional"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "width": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Width",
            "type": "number"
          }
        },
        "required": [
          "type",
          "page",
          "position_x",
          "position_y",
          "width",
          "height"
        ],
        "title": "FieldCreate",
        "type": "object"
      },
      "FieldRead": {
        "properties": {
          "height": {
            "title": "Height",
            "type": "number"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "options": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Options",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "position_x": {
            "title": "Position X",
            "type": "number"
          },
          "position_y": {
            "title": "Position Y",
            "type": "number"
          },
          "recipient_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Id"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "show_if": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FieldConditional"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "width": {
            "title": "Width",
            "type": "number"
          }
        },
        "required": [
          "id",
          "type",
          "page",
          "position_x",
          "position_y",
          "width",
          "height",
          "recipient_id",
          "required"
        ],
        "title": "FieldRead",
        "type": "object"
      },
      "FieldType": {
        "enum": [
          "SIGNATURE",
          "INITIALS",
          "TEXT",
          "DATE",
          "NUMBER",
          "EMAIL",
          "CHECKBOX",
          "DROPDOWN",
          "COMPANY"
        ],
        "title": "FieldType",
        "type": "string"
      },
      "FieldsReplace": {
        "properties": {
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FieldCreate"
            },
            "maxItems": 200,
            "title": "Fields",
            "type": "array"
          }
        },
        "required": [
          "fields"
        ],
        "title": "FieldsReplace",
        "type": "object"
      },
      "FlowCreate": {
        "properties": {
          "active": {
            "default": true,
            "title": "Active",
            "type": "boolean"
          },
          "description": {
            "default": "",
            "maxLength": 2000,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "steps": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "maxItems": 100,
            "title": "Steps",
            "type": "array"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          },
          "trigger": {
            "default": "manual",
            "enum": [
              "manual",
              "api",
              "document_completed_of_template"
            ],
            "title": "Trigger",
            "type": "string"
          },
          "trigger_template_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trigger Template Id"
          }
        },
        "required": [
          "name"
        ],
        "title": "FlowCreate",
        "type": "object"
      },
      "FlowDetail": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "errors": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Errors",
            "type": "object"
          },
          "has_unpublished_changes": {
            "title": "Has Unpublished Changes",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "published_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published At"
          },
          "published_steps": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published Steps"
          },
          "steps": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Steps",
            "type": "array"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          },
          "trigger": {
            "title": "Trigger",
            "type": "string"
          },
          "trigger_template_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trigger Template Id"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "team_id",
          "trigger",
          "trigger_template_id",
          "active",
          "version",
          "has_unpublished_changes",
          "published_at",
          "created_at",
          "updated_at",
          "steps",
          "published_steps",
          "errors"
        ],
        "title": "FlowDetail",
        "type": "object"
      },
      "FlowRead": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "has_unpublished_changes": {
            "title": "Has Unpublished Changes",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "published_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published At"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          },
          "trigger": {
            "title": "Trigger",
            "type": "string"
          },
          "trigger_template_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trigger Template Id"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "team_id",
          "trigger",
          "trigger_template_id",
          "active",
          "version",
          "has_unpublished_changes",
          "published_at",
          "created_at",
          "updated_at"
        ],
        "title": "FlowRead",
        "type": "object"
      },
      "FlowRunDetail": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "current_step": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Step"
          },
          "documents": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Documents",
            "type": "object"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/FlowRunEventRead"
            },
            "title": "Events",
            "type": "array"
          },
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "flow_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Flow Id"
          },
          "flow_name": {
            "title": "Flow Name",
            "type": "string"
          },
          "flow_version": {
            "title": "Flow Version",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "outcomes": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Outcomes",
            "type": "object"
          },
          "packages": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "send_package step key \u2192 document ids",
            "title": "Packages",
            "type": "object"
          },
          "started_by_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started By User Id"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "steps": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Steps",
            "type": "array"
          },
          "variables": {
            "additionalProperties": true,
            "title": "Variables",
            "type": "object"
          },
          "waiting_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Waiting Document Id"
          },
          "wake_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wake At"
          }
        },
        "required": [
          "id",
          "flow_id",
          "flow_version",
          "flow_name",
          "status",
          "current_step",
          "wake_at",
          "waiting_document_id",
          "started_by_user_id",
          "error",
          "created_at",
          "finished_at",
          "steps",
          "variables",
          "outcomes",
          "documents",
          "events"
        ],
        "title": "FlowRunDetail",
        "type": "object"
      },
      "FlowRunEventRead": {
        "properties": {
          "actor_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actor User Id"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "outcome": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome"
          },
          "step_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Step Key"
          }
        },
        "required": [
          "kind",
          "step_key",
          "outcome",
          "data",
          "actor_user_id",
          "created_at"
        ],
        "title": "FlowRunEventRead",
        "type": "object"
      },
      "FlowRunRead": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "current_step": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Step"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "flow_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Flow Id"
          },
          "flow_name": {
            "title": "Flow Name",
            "type": "string"
          },
          "flow_version": {
            "title": "Flow Version",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "started_by_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started By User Id"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "waiting_document_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Waiting Document Id"
          },
          "wake_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wake At"
          }
        },
        "required": [
          "id",
          "flow_id",
          "flow_version",
          "flow_name",
          "status",
          "current_step",
          "wake_at",
          "waiting_document_id",
          "started_by_user_id",
          "error",
          "created_at",
          "finished_at"
        ],
        "title": "FlowRunRead",
        "type": "object"
      },
      "FlowStepData": {
        "properties": {
          "flow_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Flow Id"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Message"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "step_key": {
            "examples": [
              "notify_crm"
            ],
            "title": "Step Key",
            "type": "string"
          },
          "subject": {
            "title": "Subject",
            "type": "string"
          },
          "variables": {
            "additionalProperties": true,
            "title": "Variables",
            "type": "object"
          }
        },
        "required": [
          "run_id",
          "step_key",
          "subject"
        ],
        "title": "FlowStepData",
        "type": "object"
      },
      "FlowUpdate": {
        "properties": {
          "active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "steps": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "maxItems": 100,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Steps"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          },
          "trigger": {
            "anyOf": [
              {
                "enum": [
                  "manual",
                  "api",
                  "document_completed_of_template"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trigger"
          },
          "trigger_template_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trigger Template Id"
          }
        },
        "title": "FlowUpdate",
        "type": "object"
      },
      "FlowValidateRequest": {
        "properties": {
          "steps": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "maxItems": 100,
            "title": "Steps",
            "type": "array"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          }
        },
        "required": [
          "steps"
        ],
        "title": "FlowValidateRequest",
        "type": "object"
      },
      "IdentityVerificationData": {
        "properties": {
          "document_id": {
            "examples": [
              "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71"
            ],
            "title": "Document Id",
            "type": "string"
          },
          "provider": {
            "description": "didit, authologic or login_gov_pl.",
            "examples": [
              "didit"
            ],
            "title": "Provider",
            "type": "string"
          },
          "recipient_id": {
            "examples": [
              "c2b8f4d1-7e3a-4f60-b5c9-8a1d2e3f4b67"
            ],
            "title": "Recipient Id",
            "type": "string"
          },
          "status": {
            "description": "IN_REVIEW, VERIFIED, MISMATCH or FAILED. No identity data is sent.",
            "examples": [
              "VERIFIED"
            ],
            "title": "Status",
            "type": "string"
          },
          "verification_id": {
            "description": "Attempt UUID; a retry is a new attempt.",
            "examples": [
              "9b2e4c6a-1d3f-4a5b-8c7d-6e5f4a3b2c1d"
            ],
            "title": "Verification Id",
            "type": "string"
          }
        },
        "required": [
          "document_id",
          "recipient_id",
          "verification_id",
          "provider",
          "status"
        ],
        "title": "IdentityVerificationData",
        "type": "object"
      },
      "IdentityVerificationStatus": {
        "enum": [
          "PENDING",
          "IN_REVIEW",
          "VERIFIED",
          "MISMATCH",
          "FAILED"
        ],
        "title": "IdentityVerificationStatus",
        "type": "string"
      },
      "IntakeAttachmentOut": {
        "properties": {
          "accept": {
            "items": {
              "type": "string"
            },
            "title": "Accept",
            "type": "array"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "max_mb": {
            "title": "Max Mb",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "uploaded": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IntakeUploaded"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "required",
          "accept",
          "max_mb"
        ],
        "title": "IntakeAttachmentOut",
        "type": "object"
      },
      "IntakeParty": {
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/IntakeAttachmentOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "keys": {
            "items": {
              "type": "string"
            },
            "title": "Keys",
            "type": "array"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "role": {
            "title": "Role",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "role",
          "label",
          "status",
          "completed_at",
          "keys",
          "attachments"
        ],
        "title": "IntakeParty",
        "type": "object"
      },
      "IntakeUploaded": {
        "properties": {
          "content_type": {
            "title": "Content Type",
            "type": "string"
          },
          "filename": {
            "title": "Filename",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "sha256": {
            "title": "Sha256",
            "type": "string"
          },
          "size": {
            "title": "Size",
            "type": "integer"
          },
          "uploaded_at": {
            "format": "date-time",
            "title": "Uploaded At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "filename",
          "content_type",
          "size",
          "sha256",
          "uploaded_at"
        ],
        "title": "IntakeUploaded",
        "type": "object"
      },
      "LegalHoldRead": {
        "properties": {
          "legal_hold": {
            "title": "Legal Hold",
            "type": "boolean"
          },
          "legal_hold_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Hold At"
          },
          "legal_hold_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Hold Reason"
          }
        },
        "required": [
          "legal_hold"
        ],
        "title": "LegalHoldRead",
        "type": "object"
      },
      "LegalHoldRequest": {
        "properties": {
          "reason": {
            "maxLength": 1000,
            "minLength": 3,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "reason"
        ],
        "title": "LegalHoldRequest",
        "type": "object"
      },
      "PathEntry": {
        "properties": {
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "outcome": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome"
          },
          "step_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Step Key"
          }
        },
        "required": [
          "kind",
          "step_key",
          "outcome",
          "detail"
        ],
        "title": "PathEntry",
        "type": "object"
      },
      "PublicLinkCreate": {
        "properties": {
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "max_uses": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Uses"
          }
        },
        "title": "PublicLinkCreate",
        "type": "object"
      },
      "PublicLinkRead": {
        "properties": {
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "max_uses": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Uses"
          },
          "token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Token"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "uses": {
            "default": 0,
            "title": "Uses",
            "type": "integer"
          }
        },
        "required": [
          "enabled"
        ],
        "title": "PublicLinkRead",
        "type": "object"
      },
      "RecipientBouncedData": {
        "properties": {
          "document_id": {
            "examples": [
              "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71"
            ],
            "title": "Document Id",
            "type": "string"
          },
          "reason": {
            "description": "Provider event type: email.bounced or email.complained.",
            "examples": [
              "email.bounced"
            ],
            "title": "Reason",
            "type": "string"
          },
          "recipient": {
            "$ref": "#/components/schemas/BouncedRecipient"
          }
        },
        "required": [
          "document_id",
          "recipient",
          "reason"
        ],
        "title": "RecipientBouncedData",
        "type": "object"
      },
      "RecipientCorrection": {
        "properties": {
          "email": {
            "anyOf": [
              {
                "format": "email",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "phone": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          }
        },
        "title": "RecipientCorrection",
        "type": "object"
      },
      "RecipientCreate": {
        "properties": {
          "claimed_role": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Claimed Role"
          },
          "email": {
            "format": "email",
            "title": "Email",
            "type": "string"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "phone": {
            "anyOf": [
              {
                "maxLength": 20,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Phone"
          },
          "role": {
            "$ref": "#/components/schemas/RecipientRole",
            "default": "SIGNER"
          },
          "signing_method": {
            "$ref": "#/components/schemas/SigningMethod",
            "default": "INTERNAL_DRAWN"
          }
        },
        "required": [
          "email",
          "name"
        ],
        "title": "RecipientCreate",
        "type": "object"
      },
      "RecipientIdentityVerification": {
        "description": "Latest identity-check attempt. Status only \u2014 no identity data.",
        "properties": {
          "provider": {
            "description": "didit, authologic or login_gov_pl.",
            "title": "Provider",
            "type": "string"
          },
          "provider_label": {
            "description": "Human-readable provider name.",
            "title": "Provider Label",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/IdentityVerificationStatus"
          },
          "updated_at": {
            "description": "Completion time, or start time while open.",
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "status",
          "provider",
          "provider_label",
          "updated_at"
        ],
        "title": "RecipientIdentityVerification",
        "type": "object"
      },
      "RecipientRead": {
        "properties": {
          "email": {
            "format": "email",
            "title": "Email",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "identity_verification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RecipientIdentityVerification"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "rejection_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejection Reason"
          },
          "role": {
            "$ref": "#/components/schemas/RecipientRole"
          },
          "signed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Signed At"
          },
          "signing_method": {
            "$ref": "#/components/schemas/SigningMethod",
            "default": "INTERNAL_DRAWN"
          },
          "signing_order_index": {
            "default": 0,
            "title": "Signing Order Index",
            "type": "integer"
          },
          "signing_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Signing Url"
          },
          "status": {
            "$ref": "#/components/schemas/RecipientStatus"
          }
        },
        "required": [
          "id",
          "email",
          "name",
          "role",
          "status"
        ],
        "title": "RecipientRead",
        "type": "object"
      },
      "RecipientRejectedData": {
        "properties": {
          "id": {
            "description": "Document UUID.",
            "examples": [
              "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71"
            ],
            "title": "Id",
            "type": "string"
          },
          "organization_id": {
            "examples": [
              "a7d5e0c2-1f43-4b9a-8c6e-2e9f0b3d4c58"
            ],
            "title": "Organization Id",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "examples": [
              "Wrong rent amount"
            ],
            "title": "Reason"
          },
          "recipient": {
            "$ref": "#/components/schemas/WebhookRecipient"
          },
          "status": {
            "description": "DRAFT, PENDING, COMPLETED, REJECTED, EXPIRED or CANCELLED.",
            "examples": [
              "PENDING"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "examples": [
              "Office lease \u2014 Biuro Hello"
            ],
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "organization_id",
          "recipient"
        ],
        "title": "RecipientRejectedData",
        "type": "object"
      },
      "RecipientRole": {
        "enum": [
          "SIGNER",
          "APPROVER",
          "VIEWER",
          "CC",
          "PREPARER"
        ],
        "title": "RecipientRole",
        "type": "string"
      },
      "RecipientStatus": {
        "enum": [
          "NOT_SENT",
          "SENT",
          "VIEWED",
          "SIGNED",
          "REJECTED",
          "EXPIRED",
          "BOUNCED",
          "DELEGATED"
        ],
        "title": "RecipientStatus",
        "type": "string"
      },
      "ReminderResult": {
        "properties": {
          "recipients": {
            "items": {
              "type": "string"
            },
            "title": "Recipients",
            "type": "array"
          },
          "reminded": {
            "title": "Reminded",
            "type": "integer"
          }
        },
        "required": [
          "reminded",
          "recipients"
        ],
        "title": "ReminderResult",
        "type": "object"
      },
      "SaveAsTemplateRequest": {
        "properties": {
          "category": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "SaveAsTemplateRequest",
        "type": "object"
      },
      "SigningLink": {
        "properties": {
          "signing_url": {
            "title": "Signing Url",
            "type": "string"
          }
        },
        "required": [
          "signing_url"
        ],
        "title": "SigningLink",
        "type": "object"
      },
      "SigningMethod": {
        "enum": [
          "INTERNAL_DRAWN",
          "WP_PZ",
          "WP_PZ_SIE",
          "WP_PS",
          "WP_PQ",
          "WP_MO",
          "QES"
        ],
        "title": "SigningMethod",
        "type": "string"
      },
      "SigningOrder": {
        "enum": [
          "PARALLEL",
          "SEQUENTIAL"
        ],
        "title": "SigningOrder",
        "type": "string"
      },
      "StartRunRequest": {
        "properties": {
          "variables": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "maxProperties": 100,
            "title": "Variables",
            "type": "object"
          }
        },
        "title": "StartRunRequest",
        "type": "object"
      },
      "TemplateBlueprint": {
        "properties": {
          "category": {
            "title": "Category",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/TemplateFieldBlueprint"
            },
            "title": "Fields",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "language": {
            "title": "Language",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/TemplateRecipientBlueprint"
            },
            "title": "Recipients",
            "type": "array"
          },
          "recommended_verification": {
            "title": "Recommended Verification",
            "type": "string"
          },
          "signing_order": {
            "title": "Signing Order",
            "type": "string"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          }
        },
        "required": [
          "id",
          "name",
          "category",
          "language",
          "description",
          "tags",
          "recommended_verification",
          "signing_order",
          "recipients",
          "fields"
        ],
        "title": "TemplateBlueprint",
        "type": "object"
      },
      "TemplateDetail": {
        "properties": {
          "can_edit": {
            "title": "Can Edit",
            "type": "boolean"
          },
          "can_publish": {
            "default": false,
            "title": "Can Publish",
            "type": "boolean"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By User Id"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "fields_schema": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Fields Schema",
            "type": "array"
          },
          "has_pdf": {
            "title": "Has Pdf",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "public_link_enabled": {
            "title": "Public Link Enabled",
            "type": "boolean"
          },
          "public_link_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Public Link Expires At"
          },
          "public_link_max_uses": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Public Link Max Uses"
          },
          "public_link_uses": {
            "title": "Public Link Uses",
            "type": "integer"
          },
          "recipients_schema": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Recipients Schema",
            "type": "array"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          },
          "template_type": {
            "default": "ORG_SHARED",
            "title": "Template Type",
            "type": "string"
          },
          "uses_count": {
            "title": "Uses Count",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "category",
          "uses_count",
          "created_at",
          "team_id",
          "created_by_user_id",
          "has_pdf",
          "recipients_schema",
          "fields_schema",
          "public_link_enabled",
          "public_link_expires_at",
          "public_link_max_uses",
          "public_link_uses",
          "can_edit"
        ],
        "title": "TemplateDetail",
        "type": "object"
      },
      "TemplateFieldBlueprint": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "page": {
            "default": 1,
            "title": "Page",
            "type": "integer"
          },
          "recipient_role": {
            "title": "Recipient Role",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "label",
          "recipient_role"
        ],
        "title": "TemplateFieldBlueprint",
        "type": "object"
      },
      "TemplateFieldSpec": {
        "properties": {
          "height": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Height",
            "type": "number"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "options": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Options",
            "type": "array"
          },
          "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
          },
          "position_x": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Position X",
            "type": "number"
          },
          "position_y": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Position Y",
            "type": "number"
          },
          "recipient_index": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Index"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "width": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Width",
            "type": "number"
          }
        },
        "required": [
          "type",
          "page",
          "position_x",
          "position_y",
          "width",
          "height"
        ],
        "title": "TemplateFieldSpec",
        "type": "object"
      },
      "TemplatePatch": {
        "properties": {
          "category": {
            "anyOf": [
              {
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "fields_schema": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/TemplateFieldSpec"
                },
                "maxItems": 200,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields Schema"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "recipients_schema": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/TemplateRecipientSpec"
                },
                "maxItems": 50,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipients Schema"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          },
          "template_type": {
            "anyOf": [
              {
                "enum": [
                  "PRIVATE",
                  "TEAM_SHARED",
                  "ORG_SHARED",
                  "PUBLIC_LINK"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Template Type"
          }
        },
        "title": "TemplatePatch",
        "type": "object"
      },
      "TemplateRead": {
        "properties": {
          "category": {
            "title": "Category",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "template_type": {
            "default": "ORG_SHARED",
            "title": "Template Type",
            "type": "string"
          },
          "uses_count": {
            "title": "Uses Count",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "category",
          "uses_count",
          "created_at"
        ],
        "title": "TemplateRead",
        "type": "object"
      },
      "TemplateRecipientBlueprint": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "role": {
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "role",
          "label"
        ],
        "title": "TemplateRecipientBlueprint",
        "type": "object"
      },
      "TemplateRecipientSpec": {
        "description": "Role slot. `email`/`name` pre-configure a fixed counterparty; `public`\nmarks the slot the anonymous submitter fills (default: first SIGNER).",
        "properties": {
          "email": {
            "anyOf": [
              {
                "format": "email",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "label": {
            "default": "",
            "maxLength": 200,
            "title": "Label",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "public": {
            "default": false,
            "title": "Public",
            "type": "boolean"
          },
          "require_phone": {
            "default": false,
            "title": "Require Phone",
            "type": "boolean"
          },
          "role": {
            "$ref": "#/components/schemas/RecipientRole",
            "default": "SIGNER"
          }
        },
        "title": "TemplateRecipientSpec",
        "type": "object"
      },
      "TemplateUseRequest": {
        "properties": {
          "recipients": {
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Recipients",
            "type": "array"
          },
          "redirect_url_after_sign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Redirect Url After Sign"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title",
          "recipients"
        ],
        "title": "TemplateUseRequest",
        "type": "object"
      },
      "TimestampOut": {
        "properties": {
          "audit_trail_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audit Trail Sha256"
          },
          "audit_trail_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audit Trail Url"
          },
          "bitcoin_block_height": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bitcoin Block Height"
          },
          "commitment": {
            "title": "Commitment",
            "type": "string"
          },
          "confirmed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirmed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "digest": {
            "title": "Digest",
            "type": "string"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/AnchorInfo"
            },
            "title": "Events",
            "type": "array"
          },
          "final_pdf_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Final Pdf Sha256"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "ots_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ots Url"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "kind",
          "status",
          "digest",
          "commitment",
          "bitcoin_block_height",
          "confirmed_at",
          "created_at",
          "ots_url",
          "final_pdf_sha256",
          "audit_trail_sha256",
          "audit_trail_url",
          "events"
        ],
        "title": "TimestampOut",
        "type": "object"
      },
      "ValidationResult": {
        "properties": {
          "errors": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Errors",
            "type": "object"
          },
          "valid": {
            "title": "Valid",
            "type": "boolean"
          }
        },
        "required": [
          "valid",
          "errors"
        ],
        "title": "ValidationResult",
        "type": "object"
      },
      "VerificationType": {
        "enum": [
          "NONE",
          "EMAIL_OTP",
          "SMS_OTP",
          "BOTH_OTP",
          "ID_VERIFIED"
        ],
        "title": "VerificationType",
        "type": "string"
      },
      "WebhookCreate": {
        "properties": {
          "events": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Events",
            "type": "array"
          },
          "url": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "url",
          "events"
        ],
        "title": "WebhookCreate",
        "type": "object"
      },
      "WebhookCreated": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "title": "Events",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_status_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Status Code"
          },
          "last_triggered_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Triggered At"
          },
          "secret": {
            "title": "Secret",
            "type": "string"
          },
          "secret_preview": {
            "title": "Secret Preview",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "id",
          "url",
          "events",
          "active",
          "secret_preview",
          "created_at",
          "last_triggered_at",
          "last_status_code",
          "secret"
        ],
        "title": "WebhookCreated",
        "type": "object"
      },
      "WebhookDeliveryRead": {
        "properties": {
          "attempt": {
            "title": "Attempt",
            "type": "integer"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "event_type": {
            "title": "Event Type",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "next_retry_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Retry At"
          },
          "payload": {
            "title": "Payload",
            "type": "string"
          },
          "response_body": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Body"
          },
          "response_status_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Status Code"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          },
          "webhook_id": {
            "title": "Webhook Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "webhook_id",
          "event_type",
          "status",
          "attempt",
          "next_retry_at",
          "response_status_code",
          "response_body",
          "payload",
          "created_at",
          "updated_at"
        ],
        "title": "WebhookDeliveryRead",
        "type": "object"
      },
      "WebhookDocument": {
        "properties": {
          "id": {
            "description": "Document UUID.",
            "examples": [
              "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71"
            ],
            "title": "Id",
            "type": "string"
          },
          "organization_id": {
            "examples": [
              "a7d5e0c2-1f43-4b9a-8c6e-2e9f0b3d4c58"
            ],
            "title": "Organization Id",
            "type": "string"
          },
          "status": {
            "description": "DRAFT, PENDING, COMPLETED, REJECTED, EXPIRED or CANCELLED.",
            "examples": [
              "PENDING"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "examples": [
              "Office lease \u2014 Biuro Hello"
            ],
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "organization_id"
        ],
        "title": "WebhookDocument",
        "type": "object"
      },
      "WebhookRead": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "title": "Events",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_status_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Status Code"
          },
          "last_triggered_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Triggered At"
          },
          "secret_preview": {
            "title": "Secret Preview",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "id",
          "url",
          "events",
          "active",
          "secret_preview",
          "created_at",
          "last_triggered_at",
          "last_status_code"
        ],
        "title": "WebhookRead",
        "type": "object"
      },
      "WebhookRecipient": {
        "properties": {
          "email": {
            "examples": [
              "anna.nowak@example.com"
            ],
            "title": "Email",
            "type": "string"
          },
          "id": {
            "description": "Recipient UUID.",
            "examples": [
              "c2b8f4d1-7e3a-4f60-b5c9-8a1d2e3f4b67"
            ],
            "title": "Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "examples": [
              "Anna Nowak"
            ],
            "title": "Name"
          },
          "role": {
            "description": "SIGNER, APPROVER, VIEWER or CC.",
            "examples": [
              "SIGNER"
            ],
            "title": "Role",
            "type": "string"
          },
          "status": {
            "description": "NOT_SENT, SENT, VIEWED, SIGNED, REJECTED, DELEGATED, EXPIRED, BOUNCED.",
            "examples": [
              "SIGNED"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "role",
          "status"
        ],
        "title": "WebhookRecipient",
        "type": "object"
      },
      "WebhookUpdate": {
        "properties": {
          "active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active"
          },
          "events": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Events"
          },
          "url": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "title": "WebhookUpdate",
        "type": "object"
      },
      "app__api__v1__documents__SignatureInfo": {
        "properties": {
          "evidence_hash": {
            "title": "Evidence Hash",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "ip_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ip Address"
          },
          "recipient_id": {
            "title": "Recipient Id",
            "type": "string"
          },
          "recipient_name": {
            "title": "Recipient Name",
            "type": "string"
          },
          "signed_at": {
            "title": "Signed At",
            "type": "string"
          },
          "user_agent": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Agent"
          }
        },
        "required": [
          "id",
          "recipient_id",
          "recipient_name",
          "signed_at",
          "ip_address",
          "user_agent",
          "evidence_hash"
        ],
        "title": "SignatureInfo",
        "type": "object"
      },
      "app__api__v1__lookup__CompanyLookupResponse": {
        "properties": {
          "authorized_clerks": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authorized Clerks"
          },
          "krs": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Krs"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "nip": {
            "title": "Nip",
            "type": "string"
          },
          "regon": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Regon"
          },
          "representatives": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Representatives"
          },
          "residence_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Residence Address"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "working_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Working Address"
          }
        },
        "required": [
          "nip",
          "name",
          "status"
        ],
        "title": "CompanyLookupResponse",
        "type": "object"
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "bearerFormat": "sk_live_...",
        "description": "API key from Settings \u2192 API keys: `Authorization: Bearer sk_live_...`. Effective rights = key scopes \u2229 the creator's role in the organization.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Public REST API for **sign.yt** \u2014 multi-tenant e-signature SaaS.\n\n**Auth:** `Authorization: Bearer sk_live_...` (create a key in the app under Settings \u2192 API keys). Errors share one envelope (`code`, `message`, `request_id`); writes accept `Idempotency-Key`; responses carry `X-RateLimit-*` and `X-Request-Id`.\n\n**Guides:** [https://docs.sign.yt](https://docs.sign.yt)",
    "title": "sign.yt API",
    "version": "0.1.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v1/documents": {
      "get": {
        "description": "Documents visible to the key's creator in this organization, newest first. Paginated with `limit` + `cursor` (see `X-Next-Cursor`).\n\n**Required scope:** `documents:read`",
        "operationId": "listDocuments",
        "parameters": [
          {
            "description": "Page size (1-100).",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "description": "Page size (1-100).",
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "description": "Opaque cursor from the previous page's `X-Next-Cursor` header.",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Opaque cursor from the previous page's `X-Next-Cursor` header.",
              "title": "Cursor"
            }
          },
          {
            "description": "Legacy offset; prefer `cursor`. Ignored when `cursor` is set.",
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "description": "Legacy offset; prefer `cursor`. Ignored when `cursor` is set.",
              "maximum": 100000,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "completed_at": null,
                    "created_at": "2026-10-19T09:00:00+00:00",
                    "folder_id": null,
                    "id": "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71",
                    "recipients_count": 1,
                    "sent_at": "2026-10-19T09:01:12+00:00",
                    "status": "PENDING",
                    "team_id": null,
                    "title": "Office lease \u2014 Anna Nowak"
                  }
                ],
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DocumentSummary"
                  },
                  "title": "Response List Documents Api V1 Documents Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "Link": {
                "description": "RFC 8288 `<...>; rel=\"next\"`.",
                "schema": {
                  "type": "string"
                }
              },
              "X-Next-Cursor": {
                "description": "Pass as `cursor` for the next page. Absent on the last page.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List Documents",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      },
      "post": {
        "description": "Create a DRAFT document from a PDF. `multipart/form-data` with `pdf` (the file) and `payload` (a JSON-encoded `DocumentCreate`: title, recipients, signing order, verification, metadata, expiry, redirect_url_after_sign). Add fields with `PUT /documents/{id}/fields`, then `POST /documents/{id}/send`.\n\n**Required scope:** `documents:write`",
        "operationId": "createDocument",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "encoding": {
                "payload": {
                  "contentType": "application/json"
                }
              },
              "example": {
                "payload": {
                  "metadata": {
                    "contract_no": "2026/10/117"
                  },
                  "recipients": [
                    {
                      "email": "anna.nowak@example.com",
                      "name": "Anna Nowak",
                      "role": "SIGNER"
                    }
                  ],
                  "signing_order": "PARALLEL",
                  "title": "Office lease \u2014 Anna Nowak",
                  "verification_type": "EMAIL"
                },
                "pdf": "(binary PDF)"
              },
              "schema": {
                "$ref": "#/components/schemas/Body_create_document_api_v1_documents_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "allow_delegation": false,
                  "completed_at": null,
                  "created_at": "2026-10-19T09:00:00+00:00",
                  "expires_at": "2027-01-17T09:00:00+00:00",
                  "fields": [],
                  "has_signed_pdf": false,
                  "id": "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71",
                  "recipients": [
                    {
                      "email": "anna.nowak@example.com",
                      "id": "c2b8f4d1-7e3a-4f60-b5c9-8a1d2e3f4b67",
                      "name": "Anna Nowak",
                      "phone": null,
                      "role": "SIGNER",
                      "signed_at": null,
                      "signing_method": "INTERNAL_DRAWN",
                      "signing_order_index": 0,
                      "signing_url": "https://sign.yt/sign/<token>",
                      "status": "SENT"
                    }
                  ],
                  "sent_at": null,
                  "signing_order": "PARALLEL",
                  "status": "DRAFT",
                  "title": "Office lease \u2014 Anna Nowak"
                },
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Create Document",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/bulk": {
      "post": {
        "description": "Create and send one document per CSV row (columns `email,name,phone`) from a single PDF. `title_template` may use `{name}` / `{email}`.\n\n**Required scope:** `documents:write`",
        "operationId": "bulkSend",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_bulk_send_api_v1_documents_bulk_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkResult"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Bulk send from CSV",
        "tags": [
          "bulk"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/trash/list": {
      "get": {
        "description": "Return soft-deleted documents for the current org (newest first).\nORG_ADMIN + SUPER_ADMIN only.\n\n**Required scope:** `documents:read`",
        "operationId": "listTrashedDocuments",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DocumentSummary"
                  },
                  "title": "Response List Trashed Documents Api V1 Documents Trash List Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List deleted documents",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}": {
      "delete": {
        "description": "Soft-delete a document (default) or hard-delete (`?hard=true`).\n\n- **Soft delete**: sets `deleted_at`; the document disappears from\n  listings but remains on disk for an eventual restore or RODO audit.\n  Available to the creator, TEAM_ADMIN/TEAM_MANAGER of its team, ORG_ADMIN.\n- **Hard delete**: removes the row + the PDF files from storage.\n  Irreversible. Reserved for SUPER_ADMIN (RODO Article 17 purge or\n  abuse cleanup). ORG_ADMIN requesting `hard=true` is rejected \u2014\n  they must contact platform support.\n\n**Required scope:** `documents:write`",
        "operationId": "deleteDocument",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "hard",
            "required": false,
            "schema": {
              "default": false,
              "title": "Hard",
              "type": "boolean"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Delete Document",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      },
      "get": {
        "description": "Full document: status, recipients (with signing URLs while pending), fields.\n\n**Required scope:** `documents:read`",
        "operationId": "getDocument",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "allow_delegation": false,
                  "completed_at": null,
                  "created_at": "2026-10-19T09:00:00+00:00",
                  "expires_at": "2027-01-17T09:00:00+00:00",
                  "fields": [],
                  "has_signed_pdf": false,
                  "id": "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71",
                  "recipients": [
                    {
                      "email": "anna.nowak@example.com",
                      "id": "c2b8f4d1-7e3a-4f60-b5c9-8a1d2e3f4b67",
                      "name": "Anna Nowak",
                      "phone": null,
                      "role": "SIGNER",
                      "signed_at": null,
                      "signing_method": "INTERNAL_DRAWN",
                      "signing_order_index": 0,
                      "signing_url": "https://sign.yt/sign/<token>",
                      "status": "SENT"
                    }
                  ],
                  "sent_at": "2026-10-19T09:01:12+00:00",
                  "signing_order": "PARALLEL",
                  "status": "PENDING",
                  "title": "Office lease \u2014 Anna Nowak"
                },
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get Document",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      },
      "patch": {
        "description": "Change settings of a DRAFT or PENDING document. Today: `redirect_url_after_sign` (https only, no credentials, max 2048 chars, host must match the org's allowed redirect domains, which API keys require: else 422 `redirect_domain_not_allowlisted`; `null` clears it). After signing, the signer is sent there with `?document_id=\u2026&status=signed` appended.\n\n**Required scope:** `documents:write`",
        "operationId": "updateDocument",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "redirect_url_after_sign": "https://crm.example.com/signed"
              },
              "schema": {
                "$ref": "#/components/schemas/DocumentUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Update document settings",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/audit": {
      "get": {
        "description": "Chronological audit trail for the document and its recipients (hash-chained in storage).\n\n**Required scope:** `documents:read`",
        "operationId": "getDocumentAudit",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AuditEntry"
                  },
                  "title": "Response Get Document Audit Api V1 Documents  Document Id  Audit Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get audit trail",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/audit.csv": {
      "get": {
        "description": "Stream the audit log for a single document as CSV \u2014 for compliance /\nregulatory export. Columns match what /audit returns plus a few extras.\n\n**Required scope:** `documents:read`",
        "operationId": "exportDocumentAuditCsv",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/csv": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Export audit trail (CSV)",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/cancel": {
      "post": {
        "description": "Void a DRAFT/PENDING document with a reason; links die, recipients are told.\n`copy_as_draft` also returns a fresh DRAFT copy to correct and resend.\n\n**Required scope:** `documents:write`",
        "operationId": "cancelDocument",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentCancel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Cancel Document",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/detect-fields": {
      "post": {
        "description": "AI-assisted field detection \u2014 renders each page of the original PDF\nand asks Claude to suggest signature/date/text positions. Results are\nreturned but NOT persisted; the user reviews and accepts before saving.\n\n**Required scope:** `documents:write`",
        "operationId": "detectFields",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DetectedField"
                  },
                  "title": "Response Detect Fields Api V1 Documents  Document Id  Detect Fields Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Detect Fields",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/evidence.zip": {
      "get": {
        "description": "Evidence bundle: signed PDF, audit trail, .ots, PQ seal, seal cert, README.\n\n**Required scope:** `documents:read`",
        "operationId": "downloadEvidence",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Download evidence bundle (ZIP)",
        "tags": [
          "timestamps"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/fields": {
      "put": {
        "description": "Replace all fields of a DRAFT document. Positions and sizes are percentages of the page (0-100); `page` is 1-based. 409 `document_not_draft` after send.\n\n**Required scope:** `documents:write`",
        "operationId": "replaceFields",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "fields": [
                  {
                    "height": 8,
                    "page": 1,
                    "position_x": 10,
                    "position_y": 80,
                    "recipient_id": "c2b8f4d1-7e3a-4f60-b5c9-8a1d2e3f4b67",
                    "type": "SIGNATURE",
                    "width": 30
                  }
                ]
              },
              "schema": {
                "$ref": "#/components/schemas/FieldsReplace"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Replace Fields",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/intake": {
      "get": {
        "description": "Party data and attachments collected from recipients during signing (intake forms).\n\n**Required scope:** `documents:read`",
        "operationId": "getDocumentIntake",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentIntakeRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "204": {
            "description": "Document has no recipient start form",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get Document Intake",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/intake/attachments/{attachment_id}": {
      "get": {
        "description": "Download one file a recipient attached during signing (access is audited).\n\n**Required scope:** `documents:read`",
        "operationId": "downloadIntakeAttachment",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "attachment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Attachment Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Download Intake Attachment",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/legal-hold": {
      "delete": {
        "description": "Release the legal hold; the organization's retention policy applies to the document again.\n\n**Required scope:** `documents:write`",
        "operationId": "releaseLegalHold",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalHoldRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Release Legal Hold",
        "tags": [
          "retention"
        ],
        "x-required-scope": "documents:write"
      },
      "post": {
        "description": "Block every delete/purge of this document until released.\n\n**Required scope:** `documents:write`",
        "operationId": "setLegalHold",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegalHoldRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalHoldRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Set Legal Hold",
        "tags": [
          "retention"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/original.pdf": {
      "get": {
        "description": "The uploaded PDF, unmodified (`application/pdf`).\n\n**Required scope:** `documents:read`",
        "operationId": "getOriginalPdf",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Download original PDF",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/pq-seal": {
      "get": {
        "description": "Owner download of the latest seal JSON (org-scoped).\n\n**Required scope:** `documents:read`",
        "operationId": "downloadSeal",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Download post-quantum seal",
        "tags": [
          "pq-seal"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/recipients/{recipient_id}": {
      "patch": {
        "description": "Correct a recipient's email/phone/name while still actionable. Email or\nphone change rotates the signing link; follow up with a resend.\n\n**Required scope:** `documents:write`",
        "operationId": "correctRecipient",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "recipient_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Recipient Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipientCorrection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Correct Recipient",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/recipients/{recipient_id}/resend": {
      "post": {
        "description": "Send the signing invitation email to one recipient again.\n\n**Required scope:** `documents:write`",
        "operationId": "resendInvite",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "recipient_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Recipient Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Resend Invite",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/recipients/{recipient_id}/signing-link": {
      "get": {
        "description": "Bearer link for manual hand-off \u2014 ORG_ADMIN / super admin or doc creator only; audited.\n\n**Required scope:** `documents:read`",
        "operationId": "getSigningLink",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "recipient_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Recipient Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SigningLink"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get Signing Link",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/remind": {
      "post": {
        "description": "Re-send the invitation to recipients whose turn it is.\n\n**Required scope:** `documents:write`",
        "operationId": "remindDocument",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReminderResult"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Send reminders",
        "tags": [
          "bulk"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/restore": {
      "post": {
        "description": "Restore a soft-deleted document. Hard-deleted rows are unrecoverable.\n\n**Required scope:** `documents:write`",
        "operationId": "restoreDocument",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Restore Document",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/send": {
      "post": {
        "description": "Send a DRAFT: invites recipients (all at once for PARALLEL, the first for SEQUENTIAL) and moves the document to PENDING. Optional body overrides the invite subject/message. Use an `Idempotency-Key` when retrying.\n\n**Required scope:** `documents:write`",
        "operationId": "sendDocument",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/DocumentSend"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Payload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "allow_delegation": false,
                  "completed_at": null,
                  "created_at": "2026-10-19T09:00:00+00:00",
                  "expires_at": "2027-01-17T09:00:00+00:00",
                  "fields": [],
                  "has_signed_pdf": false,
                  "id": "3f1c2a9e-5b7d-4c11-9a3e-0d4b8e2f6a71",
                  "recipients": [
                    {
                      "email": "anna.nowak@example.com",
                      "id": "c2b8f4d1-7e3a-4f60-b5c9-8a1d2e3f4b67",
                      "name": "Anna Nowak",
                      "phone": null,
                      "role": "SIGNER",
                      "signed_at": null,
                      "signing_method": "INTERNAL_DRAWN",
                      "signing_order_index": 0,
                      "signing_url": "https://sign.yt/sign/<token>",
                      "status": "SENT"
                    }
                  ],
                  "sent_at": "2026-10-19T09:01:12+00:00",
                  "signing_order": "PARALLEL",
                  "status": "PENDING",
                  "title": "Office lease \u2014 Anna Nowak"
                },
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Send Document",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:write"
      }
    },
    "/api/v1/documents/{document_id}/signatures": {
      "get": {
        "description": "Signatures captured on the document, one per signed field.\n\n**Required scope:** `documents:read`",
        "operationId": "getDocumentSignatures",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/app__api__v1__documents__SignatureInfo"
                  },
                  "title": "Response Get Document Signatures Api V1 Documents  Document Id  Signatures Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List signatures",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/signatures/{signature_id}/image": {
      "get": {
        "description": "PNG image of one captured signature.\n\n**Required scope:** `documents:read`",
        "operationId": "getSignatureImage",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "signature_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Signature Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/png": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get Signature Image",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/signed.pdf": {
      "get": {
        "description": "The sealed PDF (PAdES platform seal + audit page) once the document is COMPLETED (`has_signed_pdf: true`); 404 before that.\n\n**Required scope:** `documents:read`",
        "operationId": "downloadSignedPdf",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Download signed PDF",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/timestamp": {
      "get": {
        "description": "OpenTimestamps (Bitcoin) anchoring status of the completed document: final PDF and audit-trail hashes, proof download URLs, per-event proofs.\n\n**Required scope:** `documents:read`",
        "operationId": "getTimestamp",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimestampOut"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get timestamp status",
        "tags": [
          "timestamps"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/timestamp.ots": {
      "get": {
        "description": "Detached .ots proof over the commitment (FINAL, or an EVENT row by ?id=).\n\n**Required scope:** `documents:read`",
        "operationId": "downloadOts",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Id"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Download OpenTimestamps proof",
        "tags": [
          "timestamps"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/timestamp/audit-trail.pdf": {
      "get": {
        "description": "The standalone audit-trail PDF whose hash is in the commitment.\n\n**Required scope:** `documents:read`",
        "operationId": "downloadAuditTrail",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Download audit-trail PDF",
        "tags": [
          "timestamps"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/documents/{document_id}/void-certificate.pdf": {
      "get": {
        "description": "Sealed void certificate of a cancelled document.\n\n**Required scope:** `documents:read`",
        "operationId": "downloadVoidCertificate",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Download Void Certificate",
        "tags": [
          "documents"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/flow-runs": {
      "get": {
        "description": "Flow runs, newest first. Filter by `flow_id` / `status`; `limit` 1-200.\n\n**Required scope:** `flows:read`",
        "operationId": "listFlowRuns",
        "parameters": [
          {
            "in": "query",
            "name": "flow_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Flow Id"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 16,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FlowRunRead"
                  },
                  "title": "Response List Runs Api V1 Flow Runs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List flow runs",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:read"
      }
    },
    "/api/v1/flow-runs/{run_id}": {
      "get": {
        "description": "One flow run with its step events and variables.\n\n**Required scope:** `flows:read`",
        "operationId": "getFlowRun",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowRunDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get flow run",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:read"
      }
    },
    "/api/v1/flow-runs/{run_id}/approvals/{step_key}": {
      "post": {
        "description": "Approve or reject a waiting approval step of a run.\n\n**Required scope:** `flows:write`",
        "operationId": "decideFlowApproval",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "step_key",
            "required": true,
            "schema": {
              "title": "Step Key",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalDecision"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowRunDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Decide approval step",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      }
    },
    "/api/v1/flow-runs/{run_id}/cancel": {
      "post": {
        "description": "Cancel a running or waiting flow run.\n\n**Required scope:** `flows:write`",
        "operationId": "cancelFlowRun",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowRunDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Cancel flow run",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      }
    },
    "/api/v1/flows": {
      "get": {
        "description": "All flows of the organization (not paginated).\n\n**Required scope:** `flows:read`",
        "operationId": "listFlows",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FlowRead"
                  },
                  "title": "Response List Flows Api V1 Flows Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List Flows",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:read"
      },
      "post": {
        "description": "Create a flow (draft) from a list of steps. Publish it to start runs.\n\n**Required scope:** `flows:write`",
        "operationId": "createFlow",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Create Flow",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      }
    },
    "/api/v1/flows/step-types": {
      "get": {
        "description": "Catalog of available step types with their config schemas.\n\n**Required scope:** `flows:read`",
        "operationId": "listFlowStepTypes",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "additionalProperties": true,
                    "type": "object"
                  },
                  "title": "Response Step Types Api V1 Flows Step Types Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List step types",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:read"
      }
    },
    "/api/v1/flows/validate": {
      "post": {
        "description": "Validate a list of flow steps without saving anything.\n\n**Required scope:** `flows:write`",
        "operationId": "validateFlow",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowValidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResult"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Validate flow steps",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flow_id}": {
      "delete": {
        "description": "Delete a flow. Existing runs are kept.\n\n**Required scope:** `flows:write`",
        "operationId": "deleteFlow",
        "parameters": [
          {
            "in": "path",
            "name": "flow_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Flow Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Delete Flow",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      },
      "get": {
        "description": "One flow with its steps and versions.\n\n**Required scope:** `flows:read`",
        "operationId": "getFlow",
        "parameters": [
          {
            "in": "path",
            "name": "flow_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Flow Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get Flow",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:read"
      },
      "patch": {
        "description": "Update a flow's name, trigger or steps.\n\n**Required scope:** `flows:write`",
        "operationId": "updateFlow",
        "parameters": [
          {
            "in": "path",
            "name": "flow_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Flow Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Update Flow",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flow_id}/dry-run": {
      "post": {
        "description": "Simulate a flow with sample variables and outcomes; no side effects.\n\n**Required scope:** `flows:write`",
        "operationId": "dryRunFlow",
        "parameters": [
          {
            "in": "path",
            "name": "flow_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Flow Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DryRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DryRunResult"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Dry-run flow",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flow_id}/publish": {
      "post": {
        "description": "Publish the current flow definition so runs and triggers use it.\n\n**Required scope:** `flows:write`",
        "operationId": "publishFlow",
        "parameters": [
          {
            "in": "path",
            "name": "flow_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Flow Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Publish Flow",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flow_id}/runs": {
      "post": {
        "description": "Start a run of a published flow with input variables.\n\n**Required scope:** `flows:write`",
        "operationId": "startFlowRun",
        "parameters": [
          {
            "in": "path",
            "name": "flow_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Flow Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowRunDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Start flow run",
        "tags": [
          "flows"
        ],
        "x-required-scope": "flows:write"
      }
    },
    "/api/v1/lookup/company": {
      "get": {
        "description": "Return company info for a Polish NIP (MF whitelist).\n\n**Required scope:** `documents:read`",
        "operationId": "lookupCompany",
        "parameters": [
          {
            "description": "Polski NIP",
            "in": "query",
            "name": "nip",
            "required": true,
            "schema": {
              "description": "Polski NIP",
              "maxLength": 13,
              "minLength": 10,
              "title": "Nip",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__api__v1__lookup__CompanyLookupResponse"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Look up company by NIP",
        "tags": [
          "lookup"
        ],
        "x-required-scope": "documents:read"
      }
    },
    "/api/v1/template-catalog": {
      "get": {
        "description": "Public-readable catalog of starter template blueprints.\n\nFrontend uses this in TemplatesView \u2192 \"Starter library\" tab: user picks a\nblueprint, uploads their own PDF, and the NewDocumentView form is pre-filled\nwith the recommended recipients, verification, and signing order.",
        "operationId": "listTemplateBlueprints",
        "parameters": [
          {
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Category"
            }
          },
          {
            "in": "query",
            "name": "language",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Language"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TemplateBlueprint"
                  },
                  "title": "Response List Blueprints Api V1 Template Catalog Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List catalog blueprints",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:read"
      }
    },
    "/api/v1/template-catalog/{blueprint_id}": {
      "get": {
        "description": "One starter blueprint from the public catalog.",
        "operationId": "getTemplateBlueprint",
        "parameters": [
          {
            "in": "path",
            "name": "blueprint_id",
            "required": true,
            "schema": {
              "title": "Blueprint Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateBlueprint"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get catalog blueprint",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:read"
      }
    },
    "/api/v1/templates": {
      "get": {
        "description": "Templates visible to the key's creator (not paginated).\n\n**Required scope:** `templates:read`",
        "operationId": "listTemplates",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TemplateRead"
                  },
                  "title": "Response List Templates Api V1 Templates Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List Templates",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:read"
      },
      "post": {
        "description": "Create a template from a PDF (`multipart/form-data`), with recipient roles and field positions.\n\n**Required scope:** `templates:write`",
        "operationId": "createTemplate",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_create_template_api_v1_templates_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Create Template",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:write"
      }
    },
    "/api/v1/templates/from-document/{document_id}": {
      "post": {
        "description": "Clone an existing document's PDF + fields into a reusable template.\nUsed by the 'Save as my template' button on document detail after sending.\n\n**Required scope:** `templates:write`",
        "operationId": "saveDocumentAsTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Document Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAsTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Create template from document",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:write"
      }
    },
    "/api/v1/templates/{template_id}": {
      "delete": {
        "description": "Delete a template. Documents created from it are not affected.\n\n**Required scope:** `templates:write`",
        "operationId": "deleteTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Delete Template",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:write"
      },
      "get": {
        "description": "One template with recipient roles and fields.\n\n**Required scope:** `templates:read`",
        "operationId": "getTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get Template",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:read"
      },
      "patch": {
        "description": "Update template name, description, category, sharing, roles or fields.\n\n**Required scope:** `templates:write`",
        "operationId": "patchTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemplatePatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Update template",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:write"
      }
    },
    "/api/v1/templates/{template_id}/pdf": {
      "get": {
        "description": "Template PDF for the field editor (same read rights as the detail).\n\n**Required scope:** `templates:read`",
        "operationId": "getTemplatePdf",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get Template Pdf",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:read"
      },
      "put": {
        "description": "Swap the template's PDF, keeping field positions.\n\n**Required scope:** `templates:write`",
        "operationId": "replaceTemplatePdf",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_replace_template_pdf_api_v1_templates__template_id__pdf_put"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Replace Template Pdf",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:write"
      }
    },
    "/api/v1/templates/{template_id}/public-link": {
      "delete": {
        "description": "Disable the template's public link; the old URL stops working.\n\n**Required scope:** `templates:write`",
        "operationId": "disablePublicLink",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Disable Public Link",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:write"
      },
      "get": {
        "description": "Public-link status of a template (the raw token is only shown on enable).\n\n**Required scope:** `templates:read`",
        "operationId": "getPublicLink",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicLinkRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get Public Link",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:read"
      },
      "post": {
        "description": "Enable (or rotate) the public link. The raw token is returned here.\n\n**Required scope:** `templates:write`",
        "operationId": "enablePublicLink",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/PublicLinkCreate"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicLinkRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Enable Public Link",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:write"
      }
    },
    "/api/v1/templates/{template_id}/public-link/qr.png": {
      "get": {
        "description": "QR code (PNG) for the template's public link.\n\n**Required scope:** `templates:read`",
        "operationId": "publicLinkQr",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/png": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Get public link QR code",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:read"
      }
    },
    "/api/v1/templates/{template_id}/use": {
      "post": {
        "description": "Create a DRAFT document from a template by assigning recipients to its roles. Send it with `POST /documents/{id}/send`.\n\n**Required scope:** `templates:write`",
        "operationId": "useTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "recipients": [
                  {
                    "email": "anna.nowak@example.com",
                    "name": "Anna Nowak",
                    "role": "Tenant"
                  }
                ],
                "title": "Office lease \u2014 Anna Nowak"
              },
              "schema": {
                "$ref": "#/components/schemas/TemplateUseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDetail"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Use Template",
        "tags": [
          "templates"
        ],
        "x-required-scope": "templates:write"
      }
    },
    "/api/v1/webhooks": {
      "get": {
        "description": "All webhook endpoints of the organization (ORG_ADMIN; not paginated).\n\n**Required scope:** `webhooks:read`",
        "operationId": "listWebhooks",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WebhookRead"
                  },
                  "title": "Response List Webhooks Api V1 Webhooks Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List Webhooks",
        "tags": [
          "webhooks"
        ],
        "x-required-scope": "webhooks:read"
      },
      "post": {
        "description": "Subscribe a public HTTPS URL to events. The signing `secret` is returned only in this response \u2014 store it.\n\n**Required scope:** `webhooks:write`",
        "operationId": "createWebhook",
        "parameters": [
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "events": [
                  "document.completed",
                  "recipient.signed"
                ],
                "url": "https://example.com/hooks/signyt"
              },
              "schema": {
                "$ref": "#/components/schemas/WebhookCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookCreated"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Create Webhook",
        "tags": [
          "webhooks"
        ],
        "x-required-scope": "webhooks:write"
      }
    },
    "/api/v1/webhooks/deliveries/{delivery_id}/redeliver": {
      "post": {
        "description": "Queue a fresh delivery of the same payload (new row, attempt 0).\n\n**Required scope:** `webhooks:write`",
        "operationId": "redeliverWebhookDelivery",
        "parameters": [
          {
            "in": "path",
            "name": "delivery_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Delivery Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Redeliver webhook",
        "tags": [
          "webhooks"
        ],
        "x-required-scope": "webhooks:write"
      }
    },
    "/api/v1/webhooks/{webhook_id}": {
      "delete": {
        "description": "Delete a webhook endpoint.\n\n**Required scope:** `webhooks:write`",
        "operationId": "deleteWebhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Webhook Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Delete Webhook",
        "tags": [
          "webhooks"
        ],
        "x-required-scope": "webhooks:write"
      },
      "patch": {
        "description": "Change URL, events or pause/resume (`active`).\n\n**Required scope:** `webhooks:write`",
        "operationId": "updateWebhook",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Webhook Id",
              "type": "string"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookRead"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "code": "bad_request",
                  "detail": "Only PDF uploads are accepted",
                  "message": "Only PDF uploads are accepted",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Bad request",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "example": {
                  "code": "document_not_draft",
                  "detail": "Document is not a draft",
                  "message": "Document is not a draft",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Resource state forbids this",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "Update Webhook",
        "tags": [
          "webhooks"
        ],
        "x-required-scope": "webhooks:write"
      }
    },
    "/api/v1/webhooks/{webhook_id}/deliveries": {
      "get": {
        "description": "Delivery attempts for a webhook, newest first. Paginated.\n\n**Required scope:** `webhooks:read`",
        "operationId": "listWebhookDeliveries",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Webhook Id",
              "type": "string"
            }
          },
          {
            "description": "Page size (1-100).",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "description": "Page size (1-100).",
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "description": "Opaque cursor from the previous page's `X-Next-Cursor` header.",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Opaque cursor from the previous page's `X-Next-Cursor` header.",
              "title": "Cursor"
            }
          },
          {
            "description": "Legacy offset; prefer `cursor`. Ignored when `cursor` is set.",
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "description": "Legacy offset; prefer `cursor`. Ignored when `cursor` is set.",
              "maximum": 100000,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "cookie",
            "name": "signyt_session",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signyt Session"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WebhookDeliveryRead"
                  },
                  "title": "Response List Deliveries Api V1 Webhooks  Webhook Id  Deliveries Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response",
            "headers": {
              "Link": {
                "description": "RFC 8288 `<...>; rel=\"next\"`.",
                "schema": {
                  "type": "string"
                }
              },
              "X-Next-Cursor": {
                "description": "Pass as `cursor` for the next page. Absent on the last page.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Requests allowed per window (1 s).",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Requests left in the window.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix time (s) when the window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "example": {
                  "code": "unauthenticated",
                  "detail": "Invalid API key",
                  "message": "Invalid API key",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Missing, invalid, revoked or expired API key",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "code": "feature_not_in_plan",
                  "detail": "This feature is not included in your plan. Upgrade in Billing.",
                  "message": "This feature is not included in your plan. Upgrade in Billing.",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Plan limit reached or feature not in plan",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "code": "insufficient_scope",
                  "detail": "Missing scope documents:write",
                  "message": "Missing scope documents:write",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Key lacks the scope or role",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "code": "not_found",
                  "detail": "Document not found",
                  "message": "Document not found",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Not found (also for resources of other organizations)",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "example": {
                  "code": "validation_error",
                  "detail": "Request validation failed",
                  "message": "Request validation failed",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Validation failed",
            "headers": {
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "code": "rate_limited",
                  "detail": "API key rate limit exceeded",
                  "message": "API key rate limit exceeded",
                  "request_id": "9f2c1a7e"
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Request-Id": {
                "description": "Request ID (echoes a valid incoming X-Request-Id). Quote it to support.",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "summary": "List webhook deliveries",
        "tags": [
          "webhooks"
        ],
        "x-required-scope": "webhooks:read"
      }
    }
  },
  "servers": [
    {
      "description": "API host (API keys only)",
      "url": "https://api.sign.yt"
    },
    {
      "description": "Production app host",
      "url": "https://sign.yt"
    }
  ],
  "tags": [
    {
      "description": "Envelopes: upload a PDF, add recipients and fields, send, track, download the sealed PDF and audit trail.",
      "name": "documents"
    },
    {
      "description": "Bulk sending from a CSV and reminders.",
      "name": "bulk"
    },
    {
      "description": "Post-quantum seal evidence for completed documents.",
      "name": "pq-seal"
    },
    {
      "description": "OpenTimestamps anchoring proofs, audit-trail PDF and evidence bundle.",
      "name": "timestamps"
    },
    {
      "description": "Legal hold: exempt a document from retention and purge.",
      "name": "retention"
    },
    {
      "description": "Reusable templates, public links and QR codes.",
      "name": "templates"
    },
    {
      "description": "No-code automation flows and their runs.",
      "name": "flows"
    },
    {
      "description": "Event subscriptions and the delivery log.",
      "name": "webhooks"
    },
    {
      "description": "Company data lookup (Polish NIP, MF whitelist).",
      "name": "lookup"
    }
  ],
  "webhooks": {
    "document.cancelled": {
      "post": {
        "description": "The sender cancelled (voided) the document.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_document_cancelled",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/DocumentCancelledData"
                  },
                  "event": {
                    "enum": [
                      "document.cancelled"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "document.cancelled",
        "tags": [
          "webhooks"
        ]
      }
    },
    "document.completed": {
      "post": {
        "description": "Everyone signed and the sealed PDF is ready.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_document_completed",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/WebhookDocument"
                  },
                  "event": {
                    "enum": [
                      "document.completed"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "document.completed",
        "tags": [
          "webhooks"
        ]
      }
    },
    "document.created": {
      "post": {
        "description": "A document (draft) was created.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_document_created",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/WebhookDocument"
                  },
                  "event": {
                    "enum": [
                      "document.created"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "document.created",
        "tags": [
          "webhooks"
        ]
      }
    },
    "document.expired": {
      "post": {
        "description": "expires_at passed before completion.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_document_expired",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/WebhookDocument"
                  },
                  "event": {
                    "enum": [
                      "document.expired"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "document.expired",
        "tags": [
          "webhooks"
        ]
      }
    },
    "document.rejected": {
      "post": {
        "description": "A recipient declined; the document is REJECTED.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_document_rejected",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/DocumentRejectedData"
                  },
                  "event": {
                    "enum": [
                      "document.rejected"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "document.rejected",
        "tags": [
          "webhooks"
        ]
      }
    },
    "document.sent": {
      "post": {
        "description": "The document was sent to its recipients.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_document_sent",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/DocumentSentData"
                  },
                  "event": {
                    "enum": [
                      "document.sent"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "document.sent",
        "tags": [
          "webhooks"
        ]
      }
    },
    "document.signed": {
      "post": {
        "description": "A recipient signed; fires once per signer.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_document_signed",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/DocumentRecipientData"
                  },
                  "event": {
                    "enum": [
                      "document.signed"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "document.signed",
        "tags": [
          "webhooks"
        ]
      }
    },
    "document.viewed": {
      "post": {
        "description": "A recipient opened the signing link (first view).\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_document_viewed",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/DocumentRecipientData"
                  },
                  "event": {
                    "enum": [
                      "document.viewed"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "document.viewed",
        "tags": [
          "webhooks"
        ]
      }
    },
    "flow.step": {
      "post": {
        "description": "A flow `notify` step with channel=webhook ran.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_flow_step",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/FlowStepData"
                  },
                  "event": {
                    "enum": [
                      "flow.step"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "flow.step",
        "tags": [
          "webhooks"
        ]
      }
    },
    "recipient.bounced": {
      "post": {
        "description": "Email to a recipient bounced or was marked spam.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_recipient_bounced",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/RecipientBouncedData"
                  },
                  "event": {
                    "enum": [
                      "recipient.bounced"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "recipient.bounced",
        "tags": [
          "webhooks"
        ]
      }
    },
    "recipient.identity_verification_updated": {
      "post": {
        "description": "A recipient's identity check changed status (in review, verified, mismatch, failed).\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_recipient_identity_verification_updated",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/IdentityVerificationData"
                  },
                  "event": {
                    "enum": [
                      "recipient.identity_verification_updated"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "recipient.identity_verification_updated",
        "tags": [
          "webhooks"
        ]
      }
    },
    "recipient.rejected": {
      "post": {
        "description": "A recipient declined, with reason.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_recipient_rejected",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/RecipientRejectedData"
                  },
                  "event": {
                    "enum": [
                      "recipient.rejected"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "recipient.rejected",
        "tags": [
          "webhooks"
        ]
      }
    },
    "recipient.signed": {
      "post": {
        "description": "A recipient finished their part.\n\nRespond 2xx within 8 s. Otherwise retried after 1 min, 5 min, 30 min, 2 h, 12 h, then marked DEAD (redeliver via `POST /api/v1/webhooks/deliveries/{delivery_id}/redeliver`).",
        "operationId": "webhook_recipient_signed",
        "parameters": [
          {
            "description": "`sha256=` + hex HMAC-SHA256(secret, timestamp + '.' + raw body).",
            "in": "header",
            "name": "X-Signyt-Signature",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "RFC 3339 UTC; reject if more than 5 minutes off.",
            "in": "header",
            "name": "X-Signyt-Timestamp",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery UUID, stable across retries.",
            "in": "header",
            "name": "X-Signyt-Delivery-Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Event name.",
            "in": "header",
            "name": "X-Signyt-Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/DocumentRecipientData"
                  },
                  "event": {
                    "enum": [
                      "recipient.signed"
                    ],
                    "type": "string"
                  },
                  "event_id": {
                    "description": "UUID of the event; identical across retries and redeliveries \u2014 dedupe on it.",
                    "examples": [
                      "5e0f8a1b-2c3d-4e5f-8a9b-0c1d2e3f4a5b"
                    ],
                    "title": "Event Id",
                    "type": "string"
                  },
                  "timestamp": {
                    "description": "When the event happened (RFC 3339, UTC).",
                    "examples": [
                      "2026-10-19T09:12:44.123456+00:00"
                    ],
                    "title": "Timestamp",
                    "type": "string"
                  }
                },
                "required": [
                  "event_id",
                  "event",
                  "timestamp",
                  "data"
                ],
                "title": "WebhookEnvelope",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Any 2xx acknowledges the delivery."
          }
        },
        "summary": "recipient.signed",
        "tags": [
          "webhooks"
        ]
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Documents",
      "tags": [
        "documents",
        "bulk",
        "pq-seal",
        "timestamps",
        "retention"
      ]
    },
    {
      "name": "Templates",
      "tags": [
        "templates"
      ]
    },
    {
      "name": "Automation",
      "tags": [
        "flows",
        "webhooks"
      ]
    },
    {
      "name": "Utilities",
      "tags": [
        "lookup"
      ]
    }
  ]
}
