{
  "openapi": "3.1.1",
  "info": {
    "title": "DocJacket API",
    "description": "The DocJacket integration API. One `/api/v1` surface, capability-scoped by credential:\n\n- **Org API key** (`mcp_at_…`) — acts within a single organization. Mint one in DocJacket under **Settings → AI & API Access**. Key scopes: `read` (GETs), `draft` (low-risk writes like completing a task), `actions` (side-effect writes like sending email).\n- **Reseller API key** (`rsk_…`) — cross-tenant provisioning for white-label partners.\n\nSend the key as a bearer token: `Authorization: Bearer <key>`.\n\nErrors use one envelope: `{ \"error\": { \"code\", \"message\", \"fields\"? } }`. Cross-tenant lookups return `404`. Rate limit: 300 requests/min per key. The API is additive-by-default — clients must ignore unknown response fields; breaking changes ship as a new version.\n\nStart with `GET /api/v1/health` (verifies your key), then `GET /api/v1/catalog` (lists every operation and whether your key can call it). The same key also works with AI agents via the DocJacket MCP server at `https://mcp.docjacket.com/mcp`.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.docjacket.com/"
    }
  ],
  "paths": {
    "/api/v1/orgs": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List your customer organizations",
        "operationId": "ListOrgs",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 25
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Provision a customer organization",
        "operationId": "CreateOrg",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrgRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/orgs/{orgId}": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get a customer organization",
        "operationId": "GetOrg",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/orgs/{orgId}/users": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Invite a seat into an organization",
        "operationId": "AddSeat",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSeatRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/orgs/{orgId}/users/{userId}": {
      "delete": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Remove a seat from an organization",
        "operationId": "RemoveSeat",
        "parameters": [
          {
            "name": "orgId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/health": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Check API key authentication and service health",
        "operationId": "OrgHealth",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/catalog": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List operations available to your API key",
        "operationId": "OrgCatalog",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get a transaction by ID",
        "operationId": "GetTransaction",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List or search transactions",
        "operationId": "ListTransactions",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/contacts": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List or search contacts",
        "operationId": "ListContacts",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Create a contact",
        "operationId": "CreateContact",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/CreateContactRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/key-dates/upcoming": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List upcoming key dates across active transactions",
        "operationId": "UpcomingKeyDates",
        "parameters": [
          {
            "name": "horizonDays",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 14
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}/key-dates": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List key dates for a transaction",
        "operationId": "GetKeyDates",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Add key dates to a transaction (batch)",
        "operationId": "AddKeyDates",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/AddKeyDatesRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/contacts/{contactId}": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get a contact by ID",
        "operationId": "GetContact",
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "activityLimit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tasks": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List open tasks",
        "operationId": "ListTasks",
        "parameters": [
          {
            "name": "transactionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "assignedTo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tasks/{taskId}/complete": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Mark a task complete",
        "operationId": "CompleteTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/CompleteTaskRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}/activity": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Log an activity on a transaction",
        "operationId": "LogActivity",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/LogActivityRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}/checklist": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Apply a checklist template to a transaction",
        "operationId": "ApplyChecklist",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/ApplyChecklistRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get aggregate checklist status for a transaction",
        "operationId": "GetChecklistStatus",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/contact-roles": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Create a custom contact role",
        "operationId": "CreateContactRole",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/CreateContactRoleRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/email-templates": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Create an email template",
        "operationId": "CreateEmailTemplate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/CreateEmailTemplateRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List email templates (org + system, active only)",
        "operationId": "ListEmailTemplates",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audience",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stage",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "side",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tasks/delete": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Delete tasks (bulk, permanent)",
        "operationId": "DeleteTasks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/DeleteTasksRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/resolve": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Resolve a property reference to ranked transaction matches",
        "operationId": "ResolveTransactionByProperty",
        "parameters": [
          {
            "name": "property",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 3
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}/contingencies": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List open contingencies for a transaction",
        "operationId": "ListOpenContingencies",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}/missing-documents": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List documents missing against the purchase baseline",
        "operationId": "GetMissingDocuments",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}/intake-status": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get the intake-progress snapshot for a transaction",
        "operationId": "GetIntakeStatus",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/next-actions": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get the ranked next-actions feed (tasks + key dates)",
        "operationId": "GetNextActions",
        "parameters": [
          {
            "name": "transactionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List recently-uploaded documents with extraction state",
        "operationId": "ListDocuments",
        "parameters": [
          {
            "name": "transactionId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "since",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "hasExtraction",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/extractions/{jobId}": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get the state and results of an extraction job",
        "operationId": "GetExtractionResults",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/documents/classify": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Classify a document by filename and/or content preview",
        "operationId": "ClassifyDocument",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/ClassifyDocumentRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/email-templates/{idOrSlug}": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get an email template by ID or slug",
        "operationId": "GetEmailTemplate",
        "parameters": [
          {
            "name": "idOrSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}/merge-fields": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Get all merge field values for a transaction",
        "operationId": "GetMergeFields",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/transactions/{transactionId}/render-template": {
      "post": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "Render an email template against a transaction (preview-only)",
        "operationId": "RenderEmailTemplate",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/RenderTemplateRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/checklist-templates": {
      "get": {
        "tags": [
          "DocJacket API"
        ],
        "summary": "List timeline/checklist templates (org + system)",
        "operationId": "ListChecklistTemplates",
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "side",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transactionType",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "complexity",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activeOnly",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddKeyDatesRequest": {
        "required": [
          "keyDates"
        ],
        "type": "object",
        "properties": {
          "keyDates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyDateInput"
            }
          }
        }
      },
      "AddSeatRequest": {
        "required": [
          "email",
          "firstName",
          "lastName",
          "role"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": [
              "null",
              "string"
            ]
          },
          "lastName": {
            "type": [
              "null",
              "string"
            ]
          },
          "role": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ApplyChecklistRequest": {
        "required": [
          "templateId",
          "replaceExisting",
          "scope"
        ],
        "type": "object",
        "properties": {
          "templateId": {
            "type": "string",
            "format": "uuid"
          },
          "replaceExisting": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "scope": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ClassifyDocumentRequest": {
        "required": [
          "filename",
          "contentPreview"
        ],
        "type": "object",
        "properties": {
          "filename": {
            "type": [
              "null",
              "string"
            ]
          },
          "contentPreview": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CompleteTaskRequest": {
        "required": [
          "completionNotes"
        ],
        "type": "object",
        "properties": {
          "completionNotes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateContactRequest": {
        "required": [
          "firstName",
          "lastName",
          "email",
          "phone",
          "company",
          "licenseNumber",
          "contactType",
          "kind",
          "streetAddress",
          "city",
          "state",
          "zipCode",
          "notes"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": [
              "null",
              "string"
            ]
          },
          "lastName": {
            "type": [
              "null",
              "string"
            ]
          },
          "email": {
            "type": [
              "null",
              "string"
            ]
          },
          "phone": {
            "type": [
              "null",
              "string"
            ]
          },
          "company": {
            "type": [
              "null",
              "string"
            ]
          },
          "licenseNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "contactType": {
            "type": [
              "null",
              "string"
            ]
          },
          "kind": {
            "type": [
              "null",
              "string"
            ]
          },
          "streetAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "city": {
            "type": [
              "null",
              "string"
            ]
          },
          "state": {
            "type": [
              "null",
              "string"
            ]
          },
          "zipCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateContactRoleRequest": {
        "required": [
          "name",
          "category",
          "description",
          "allowMultiple",
          "maxInstances",
          "partyKey",
          "ignoreSimilar"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "category": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "allowMultiple": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "maxInstances": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "partyKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "ignoreSimilar": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "CreateEmailTemplateRequest": {
        "required": [
          "name",
          "category",
          "subject",
          "body",
          "description",
          "audience",
          "stage",
          "side",
          "tone",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "category": {
            "type": [
              "null",
              "string"
            ]
          },
          "subject": {
            "type": [
              "null",
              "string"
            ]
          },
          "body": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "audience": {
            "type": [
              "null",
              "string"
            ]
          },
          "stage": {
            "type": [
              "null",
              "string"
            ]
          },
          "side": {
            "type": [
              "null",
              "string"
            ]
          },
          "tone": {
            "type": [
              "null",
              "string"
            ]
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "CreateOrgRequest": {
        "required": [
          "name",
          "owner"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/OwnerBody"
          }
        }
      },
      "DeleteTasksRequest": {
        "required": [
          "taskIds"
        ],
        "type": "object",
        "properties": {
          "taskIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        }
      },
      "KeyDateInput": {
        "required": [
          "keyDateType",
          "dateValue",
          "isCustom",
          "label"
        ],
        "type": "object",
        "properties": {
          "keyDateType": {
            "type": [
              "null",
              "string"
            ]
          },
          "dateValue": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "isCustom": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "label": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "LogActivityRequest": {
        "required": [
          "type",
          "summary",
          "details"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "details": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "OwnerBody": {
        "required": [
          "email",
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": [
              "null",
              "string"
            ]
          },
          "lastName": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RenderTemplateRequest": {
        "required": [
          "templateId",
          "slug"
        ],
        "type": "object",
        "properties": {
          "templateId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "slug": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "DocJacket API"
    }
  ]
}