{
  "openapi": "3.1.0",
  "info": {
    "title": "Ontora API",
    "description": "Ontora's public API. Covers interview campaigns, contacts, transcripts, question results, synthesis reports, graph queries, exports, and outbound webhooks. \n\n**Authentication**: most endpoints accept either a Clerk JWT (`Authorization: Bearer <token>`) or a workspace API key (`X-API-Key: ont_...`). Create keys in the dashboard under **Developer → API Keys**. \n\nThis reference is the supported public surface. Paths not listed here are internal and may change without notice.",
    "version": "0.1.0"
  },
  "paths": {
    "/v1/interviews": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Create Interview",
        "operationId": "create_interview_v1_interviews_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterviewCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "interviews"
        ],
        "summary": "List Interviews",
        "operationId": "list_interviews_v1_interviews_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Workspace Id"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InterviewOut"
                  },
                  "title": "Response List Interviews V1 Interviews Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}": {
      "get": {
        "tags": [
          "interviews"
        ],
        "summary": "Get Interview",
        "operationId": "get_interview_v1_interviews__interview_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "interviews"
        ],
        "summary": "Update Interview",
        "operationId": "update_interview_v1_interviews__interview_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterviewUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "interviews"
        ],
        "summary": "Delete Interview",
        "operationId": "delete_interview_v1_interviews__interview_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/detail": {
      "get": {
        "tags": [
          "interviews"
        ],
        "summary": "Get Interview Detail",
        "description": "Get interview with contacts and question sets in a single call.\n\nThis is much more efficient than calling separate endpoints,\nas it reduces the number of database roundtrips and auth checks.",
        "operationId": "get_interview_detail_v1_interviews__interview_id__detail_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewDetailOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/duplicate": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Duplicate Interview",
        "description": "Duplicate a campaign 1:1 into a new draft, regardless of its status.\n\nCopies the full setup (config, guide draft, question sets + questions,\nskill snapshots), the staged participants, and the creation-agent chat.\nRuntime artifacts (invitations, conversations, reports, share links) are\nnever copied — the duplicate starts as a fresh, unsent draft.",
        "operationId": "duplicate_interview_v1_interviews__interview_id__duplicate_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/InterviewDuplicateIn"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/question-sets": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Create Question Set",
        "operationId": "create_question_set_v1_interviews__interview_id__question_sets_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionSetCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionSetOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "interviews"
        ],
        "summary": "List Question Sets",
        "operationId": "list_question_sets_v1_interviews__interview_id__question_sets_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QuestionSetOut"
                  },
                  "title": "Response List Question Sets V1 Interviews  Interview Id  Question Sets Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/question-sets/{set_id}": {
      "delete": {
        "tags": [
          "interviews"
        ],
        "summary": "Delete Question Set",
        "operationId": "delete_question_set_v1_interviews__interview_id__question_sets__set_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "set_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Set Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "interviews"
        ],
        "summary": "Update Question Set",
        "operationId": "update_question_set_v1_interviews__interview_id__question_sets__set_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "set_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Set Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionSetUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionSetOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/questions/{question_id}": {
      "patch": {
        "tags": [
          "interviews"
        ],
        "summary": "Update Question",
        "operationId": "update_question_v1_interviews__interview_id__questions__question_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "question_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Question Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "interviews"
        ],
        "summary": "Delete Question",
        "description": "Delete a single question from an interview.",
        "operationId": "delete_question_v1_interviews__interview_id__questions__question_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "question_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Question Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/question-sets/{set_id}/questions": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Add Question To Set",
        "description": "Add a single question to an existing question set.",
        "operationId": "add_question_to_set_v1_interviews__interview_id__question_sets__set_id__questions_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "set_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Set Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Add Contact",
        "operationId": "add_contact_v1_interviews__interview_id__contacts_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "interviews"
        ],
        "summary": "List Contacts",
        "operationId": "list_contacts_v1_interviews__interview_id__contacts_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ContactOut"
                  },
                  "title": "Response List Contacts V1 Interviews  Interview Id  Contacts Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/bulk": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Add Contacts Bulk",
        "description": "Add multiple contacts in a single request.\n\nThis is much more efficient than calling the single contact endpoint multiple times,\nas it reduces the number of database roundtrips and auth checks.\n\nDuplicates (matching an existing contact — or an earlier row of the same\nbatch — by person_id, email, or slack_user_id) are skipped, not created:\non an active campaign every created row is invited immediately, and the\nclient's own duplicate check is a stale snapshot (a teammate may have\nadded the same person since, or a retried request would double-send).",
        "operationId": "add_contacts_bulk_v1_interviews__interview_id__contacts_bulk_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkContactsCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkContactsOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/import": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Import Contacts",
        "description": "Import contacts from a CSV file.\n\nExpected columns: name (required), email, phone, job_title, seniority_level, is_required.\n\nseniority_level values: 1=IC, 2=Manager, 3=Senior Manager, 4=Director, 5=VP, 6=C-level\nis_required values: true/false, yes/no, 1/0\n\nComma-separated only; the delimiter is not detected, so semicolon or\ntab-separated files are rejected. Max file size: 5MB. Max contacts: 10,000.",
        "operationId": "import_contacts_v1_interviews__interview_id__contacts_import_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "question_set_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Question Set Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_import_contacts_v1_interviews__interview_id__contacts_import_post"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactImportResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/{contact_id}": {
      "patch": {
        "tags": [
          "interviews"
        ],
        "summary": "Update Contact",
        "description": "Partially update a contact's profile fields (name, email, role, etc.).\n\nDoes not change scheduling state, booking_token, or status — those are\nmanaged by the start/reschedule/follow-up endpoints.",
        "operationId": "update_contact_v1_interviews__interview_id__contacts__contact_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "interviews"
        ],
        "summary": "Delete Contact",
        "operationId": "delete_contact_v1_interviews__interview_id__contacts__contact_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/{contact_id}/reschedule": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Reschedule Interview Contact",
        "description": "Reschedule a contact's interview.\n\nIf new_time is provided, schedules at that specific time.\nOtherwise, finds the next available slot automatically.\n\nThis will:\n1. Cancel the contact's pending reminder emails\n2. Delete the existing Google Calendar event\n3. Create a new calendar event with the in-app interview link\n4. Queue the reminder and start-time emails for the new slot",
        "operationId": "reschedule_interview_contact_v1_interviews__interview_id__contacts__contact_id__reschedule_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/RescheduleRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RescheduleResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/{contact_id}/reactivate": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Reactivate Contact Session",
        "description": "Reactivate an expired or unavailable session.\n\nThis allows a participant to complete their interview even after:\n- The scheduled time has passed\n- The grace period has expired\n- The session was marked as expired\n\nThe session will be marked as \"available\" with a new grace period.",
        "operationId": "reactivate_contact_session_v1_interviews__interview_id__contacts__contact_id__reactivate_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/ReactivateSessionRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReactivateSessionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/{contact_id}/cancel": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Cancel Contact",
        "description": "Cancel a contact's scheduled interview.\n\nThis will:\n1. Delete the Google Calendar event\n2. Cancel any pending interview jobs\n3. Reset contact status to pending (can be rescheduled) or skipped\n\nUse mark_as_skipped=true to permanently skip this contact.",
        "operationId": "cancel_contact_v1_interviews__interview_id__contacts__contact_id__cancel_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CancelRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelContactResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/{contact_id}/reinvite": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Reinvite Contact",
        "description": "Re-invite a single participant who already completed an interview.",
        "operationId": "reinvite_contact_v1_interviews__interview_id__contacts__contact_id__reinvite_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReinviteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/reinvite": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Reinvite Contacts Bulk",
        "description": "Re-invite several completed participants at once.\n\nIneligible ids (not found, not completed, or already having an open\nfollow-up) are skipped rather than failing the whole batch.",
        "operationId": "reinvite_contacts_bulk_v1_interviews__interview_id__contacts_reinvite_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkReinviteRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkReinviteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/{contact_id}/follow-up": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Send Contact Followup",
        "description": "Send a follow-up reminder to a single pending contact.\n\nDelivered on the campaign's channel (Teams / Slack / email) unless\n``channel`` picks email explicitly; chat delivery falls back to email when\nthe participant cannot be reached there.",
        "operationId": "send_contact_followup_v1_interviews__interview_id__contacts__contact_id__follow_up_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FollowUpRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FollowUpResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/contacts/follow-up": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Send Bulk Followup",
        "description": "Send follow-up reminders to multiple pending contacts.\n\nDelivery runs in the background — one SEND_FOLLOWUP_EMAIL job per contact,\nflagged ``manual`` so it never creates or alters the automatic reminder\nchain. Dozens of Teams/Slack/email sends do not belong in a web request\n(the Teams invitation send moved to a job for the same reason).",
        "operationId": "send_bulk_followup_v1_interviews__interview_id__contacts_follow_up_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkFollowUpRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FollowUpResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/progress": {
      "get": {
        "tags": [
          "interviews"
        ],
        "summary": "Get Progress",
        "operationId": "get_progress_v1_interviews__interview_id__progress_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgressOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/start": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Start Interview",
        "description": "Launch a campaign: validate, mark active, and send or schedule invitations.\n\nInvitations go out on the campaign's channel: `in_app_chat` emails each\ncontact a personal interview link, `slack` sends a Slack DM (email\nfallback), `teams` sends a Microsoft Teams chat message (email fallback).\nParticipants self-schedule. Campaigns still on a legacy channel\n(`google_meet`, `phone`, `imessage`, `whatsapp`) are rejected with 400;\nswitch the channel first.\n\nCampaigns with `start_immediately=false` and a future `timeframe_start`\ndo NOT send invitations at launch — a job sends them when the campaign\nopens (date-only starts resolve to 08:00 in the campaign's timezone).\n`timeframe_end` is a soft response deadline shown to participants; it\nnever blocks late responses.\n\nValidation (goal length, at least one contact, at least one question,\nSlack connection + reachable contacts for Slack campaigns) runs first;\non failure the campaign stays in draft.",
        "operationId": "start_interview_v1_interviews__interview_id__start_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartInterviewResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/pause": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Pause Interview",
        "description": "Pause an active interview.",
        "operationId": "pause_interview_v1_interviews__interview_id__pause_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/complete": {
      "post": {
        "tags": [
          "interviews"
        ],
        "summary": "Complete Interview",
        "description": "Manually finish a campaign (operator override).\n\nFlips an active or paused campaign to completed, triggering the same report\nsynthesis and ``campaign.completed`` webhook as an automatic threshold\ncompletion. Use when enough interviews are in and you want to close the\ncampaign and generate the report without waiting for the completion\nthreshold, or to unstick a campaign whose interviews finished but never\nrolled up. Idempotent for already-completed campaigns.",
        "operationId": "complete_interview_v1_interviews__interview_id__complete_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/people/list-page": {
      "get": {
        "tags": [
          "people"
        ],
        "summary": "List People Page",
        "operationId": "list_people_page_v1_people_list_page_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Workspace Id"
            }
          },
          {
            "name": "group_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group Id"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/PersonType"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Kind"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleListPageOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/people": {
      "post": {
        "tags": [
          "people"
        ],
        "summary": "Create Person",
        "operationId": "create_person_v1_people_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PersonCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/people/import": {
      "post": {
        "tags": [
          "people"
        ],
        "summary": "Import People",
        "description": "Import people records from a CSV file.\n\nExpected columns: name, email, phone, job_title, department, seniority_level, type.\nEach row needs at least a name or an email. Rows are matched against existing\npeople by email (per-workspace), so re-importing enriches instead of duplicating.\nOptional group_ids are assigned additively to every imported row.\n\nseniority_level: a label (IC, Manager, Senior Manager, Director, VP, C-Level)\nor any custom label; bare numbers 1..6 are still accepted for back-compat.\ntype: internal or external (omit to auto-classify by email domain).\n\nSupports CSV and TSV. Max file size: 5MB. Max people: 10,000.",
        "operationId": "import_people_v1_people_import_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Workspace Id"
            }
          },
          {
            "name": "group_ids",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "default": [],
              "title": "Group Ids"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_import_people_v1_people_import_post"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleImportResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/people/{person_id}": {
      "patch": {
        "tags": [
          "people"
        ],
        "summary": "Update Person",
        "operationId": "update_person_v1_people__person_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "person_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Person Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PersonUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "people"
        ],
        "summary": "Get Person Detail",
        "operationId": "get_person_detail_v1_people__person_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "person_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Person Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonDetailOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/conversations": {
      "get": {
        "tags": [
          "campaign-insights"
        ],
        "summary": "List Conversations",
        "operationId": "list_conversations_v1_interviews__interview_id__conversations_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "department",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Department"
            }
          },
          {
            "name": "job_title",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Job Title"
            }
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Company"
            }
          },
          {
            "name": "position",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Position"
            }
          },
          {
            "name": "level",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Level"
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Location"
            }
          },
          {
            "name": "workgroup1",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Workgroup1"
            }
          },
          {
            "name": "workgroup2",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Workgroup2"
            }
          },
          {
            "name": "workgroup3",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Workgroup3"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Locale"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "X-Ontora-Locale",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Ontora-Locale"
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Accept-Language"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationsListOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/conversations/{conversation_id}": {
      "get": {
        "tags": [
          "campaign-insights"
        ],
        "summary": "Get Conversation Detail",
        "operationId": "get_conversation_detail_v1_interviews__interview_id__conversations__conversation_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "conversation_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Conversation Id"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Locale"
            }
          },
          {
            "name": "transcript_locale",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Transcript Locale"
            }
          },
          {
            "name": "X-Ontora-Locale",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Ontora-Locale"
            }
          },
          {
            "name": "Accept-Language",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Accept-Language"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationDetailOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/conversations/{conversation_id}/recording/url": {
      "get": {
        "tags": [
          "campaign-insights"
        ],
        "summary": "Get Conversation Recording Url",
        "operationId": "get_conversation_recording_url_v1_interviews__interview_id__conversations__conversation_id__recording_url_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "conversation_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Conversation Id"
            }
          },
          {
            "name": "download",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Download"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationRecordingAccessOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/conversations/{conversation_id}/recording": {
      "get": {
        "tags": [
          "campaign-insights"
        ],
        "summary": "Get Conversation Recording",
        "operationId": "get_conversation_recording_v1_interviews__interview_id__conversations__conversation_id__recording_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "conversation_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Conversation Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/report/regenerate": {
      "post": {
        "tags": [
          "campaign-reports"
        ],
        "summary": "Regenerate Report",
        "description": "Manually trigger a fresh agent run for this campaign.\n\nRefuses (409) when there are no completed interviews yet, while another\ngeneration is already in progress, or when no completed conversation has a\nquestion-tagged interviewee turn — that case carries a structured detail\n``{\"code\": \"report_requires_tagged_turns\", \"message\": ...}``. Returns 202\nwith the new version's metadata; the agent runs asynchronously via the\nworker.",
        "operationId": "regenerate_report_v1_interviews__interview_id__report_regenerate_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegenerateReportResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/report/current": {
      "get": {
        "tags": [
          "campaign-reports"
        ],
        "summary": "Get Current Report Version",
        "description": "Return the latest ready version, or null if none exist yet.",
        "operationId": "get_current_report_version_v1_interviews__interview_id__report_current_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "summary",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Summary"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/ReportVersionOut"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Response Get Current Report Version V1 Interviews  Interview Id  Report Current Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/report/generation-status": {
      "get": {
        "tags": [
          "campaign-reports"
        ],
        "summary": "Get Report Generation Status",
        "description": "Return the status of the newest report version (any status), or an\nempty payload if no version exists yet.",
        "operationId": "get_report_generation_status_v1_interviews__interview_id__report_generation_status_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportGenerationStatusOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/question-results": {
      "get": {
        "tags": [
          "question-results"
        ],
        "summary": "Get Question Results",
        "operationId": "get_question_results_v1_interviews__interview_id__question_results_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "topic_ids",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                {
                  "type": "null"
                }
              ],
              "title": "Topic Ids"
            }
          },
          {
            "name": "question_ids",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                {
                  "type": "null"
                }
              ],
              "title": "Question Ids"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            }
          },
          {
            "name": "include_sources",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Include Sources"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Question Results V1 Interviews  Interview Id  Question Results Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/component-results": {
      "get": {
        "tags": [
          "question-results"
        ],
        "summary": "Get Component Results",
        "description": "Deterministic aggregates for interactive component questions.\n\nReads question_component_answers directly (plain SQL, no graph pipeline):\nstructured answers aggregate without any coding step. Test-lab\nconversations are excluded. Only aggregates leave this endpoint — raw\npayloads stay server-side — and report-only anonymity hides the whole\nsection, matching the other question-results endpoints.",
        "operationId": "get_component_results_v1_interviews__interview_id__component_results_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/graph/query": {
      "post": {
        "tags": [
          "interview-query"
        ],
        "summary": "Query Interview Graph",
        "description": "Ask an ad-hoc question about a campaign's interview data.\n\nUses the interview graph RAG pipeline:\n1. Classify query complexity\n2. Retrieve relevant passages via vector search + graph traversal\n3. Verify retrieval quality (coverage, provenance)\n4. Synthesize a structured answer with patterns and divergences",
        "operationId": "query_interview_graph_v1_interviews__interview_id__graph_query_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterviewQueryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewQueryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/graph/status": {
      "get": {
        "tags": [
          "interview-query"
        ],
        "summary": "Get Graph Status",
        "description": "Check the status of the interview graph pipeline.",
        "operationId": "get_graph_status_v1_interviews__interview_id__graph_status_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GraphStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/graph/status/stream": {
      "get": {
        "tags": [
          "interview-query"
        ],
        "summary": "Stream Graph Status",
        "description": "Stream interview graph status changes to the app via SSE.",
        "operationId": "stream_graph_status_v1_interviews__interview_id__graph_status_stream_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/chat/sessions": {
      "post": {
        "tags": [
          "interview-query"
        ],
        "summary": "Create Interview Chat Session",
        "description": "Create a persisted research chat session for an interview campaign.",
        "operationId": "create_interview_chat_session_v1_interviews__interview_id__chat_sessions_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterviewChatSessionCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterviewChatSessionOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insights-chat/sessions/{chat_session_id}/messages": {
      "post": {
        "tags": [
          "insights-chat"
        ],
        "summary": "Append Insights Chat Message",
        "description": "Persist an untrusted user turn; assistant turns are never public writes.",
        "operationId": "append_insights_chat_message_v1_insights_chat_sessions__chat_session_id__messages_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Chat Session Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InsightsChatMessageIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insights-chat/sessions/{chat_session_id}/analysis-runs": {
      "post": {
        "tags": [
          "insights-chat"
        ],
        "summary": "Create Transcript Analysis Run",
        "operationId": "create_transcript_analysis_run_v1_insights_chat_sessions__chat_session_id__analysis_runs_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Chat Session Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranscriptAnalysisRunCreate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptAnalysisRunOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insights-chat/sessions/{chat_session_id}/analysis-runs/{run_id}": {
      "get": {
        "tags": [
          "insights-chat"
        ],
        "summary": "Get Transcript Analysis Run",
        "operationId": "get_transcript_analysis_run_v1_insights_chat_sessions__chat_session_id__analysis_runs__run_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Chat Session Id"
            }
          },
          {
            "name": "run_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Run Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptAnalysisRunOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insights-chat/sessions/{chat_session_id}/analysis-runs/{run_id}/stream": {
      "get": {
        "tags": [
          "insights-chat"
        ],
        "summary": "Stream Transcript Analysis Run",
        "description": "Stream analysis-run status changes to the app via SSE.\n\nMirrors ``stream_graph_status``: an ``event: status`` frame whenever the\nserialized run changes (checked on every ~2s poll tick), ``: heartbeat``\ncomments while idle, and the stream closes after emitting a frame with a\nterminal run (ready/partial/failed/cancelled or stale). The data payload\nis exactly the JSON the polling GET returns, so clients can fall back to\npolling seamlessly.",
        "operationId": "stream_transcript_analysis_run_v1_insights_chat_sessions__chat_session_id__analysis_runs__run_id__stream_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Chat Session Id"
            }
          },
          {
            "name": "run_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Run Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insights-chat/sessions/{chat_session_id}/analysis-runs/{run_id}/cancel": {
      "post": {
        "tags": [
          "insights-chat"
        ],
        "summary": "Cancel Transcript Analysis Run",
        "operationId": "cancel_transcript_analysis_run_v1_insights_chat_sessions__chat_session_id__analysis_runs__run_id__cancel_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Chat Session Id"
            }
          },
          {
            "name": "run_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Run Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptAnalysisRunOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insights-chat/sessions/{chat_session_id}/analysis-runs/{run_id}/retry": {
      "post": {
        "tags": [
          "insights-chat"
        ],
        "summary": "Retry Transcript Analysis Run",
        "operationId": "retry_transcript_analysis_run_v1_insights_chat_sessions__chat_session_id__analysis_runs__run_id__retry_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Chat Session Id"
            }
          },
          {
            "name": "run_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Run Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptAnalysisRunOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/insights-chat/analysis-runs": {
      "get": {
        "tags": [
          "insights-chat"
        ],
        "summary": "List Workspace Analysis Runs",
        "description": "List analysis runs across every chat session in the workspace, newest first.",
        "operationId": "list_workspace_analysis_runs_v1_insights_chat_analysis_runs_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Workspace Id"
            }
          },
          {
            "name": "interview_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Interview Id"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TranscriptAnalysisRunOut"
                  },
                  "title": "Response List Workspace Analysis Runs V1 Insights Chat Analysis Runs Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/export/transcript/{conversation_id}": {
      "get": {
        "tags": [
          "interview-export"
        ],
        "summary": "Export Transcript",
        "description": "Export a single interview transcript as markdown (default) or JSON.\n\nJSON returns the structured transcript turns plus conversation metadata —\nthe machine-readable counterpart of the markdown export, with the same\nanonymity redactions.",
        "operationId": "export_transcript_v1_interviews__interview_id__export_transcript__conversation_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "conversation_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Conversation Id"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^(md|json)$",
              "default": "md",
              "title": "Format"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/export/transcripts": {
      "get": {
        "tags": [
          "interview-export"
        ],
        "summary": "Export All Transcripts",
        "description": "Export all completed transcripts for a campaign as a ZIP of markdown files.",
        "operationId": "export_all_transcripts_v1_interviews__interview_id__export_transcripts_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/export/responses": {
      "get": {
        "tags": [
          "interview-export"
        ],
        "summary": "Export Responses",
        "description": "Export the campaign responses table as CSV or Excel.",
        "operationId": "export_responses_v1_interviews__interview_id__export_responses_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^(csv|xlsx)$",
              "default": "csv",
              "title": "Format"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/export/summary": {
      "get": {
        "tags": [
          "interview-export"
        ],
        "summary": "Export Summary",
        "description": "Export the campaign dashboard summary as markdown.",
        "operationId": "export_summary_v1_interviews__interview_id__export_summary_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/export/report": {
      "get": {
        "tags": [
          "interview-export"
        ],
        "summary": "Export Full Report",
        "description": "Export the full synthesis report as markdown.",
        "operationId": "export_full_report_v1_interviews__interview_id__export_report_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/export/report.pdf": {
      "get": {
        "tags": [
          "interview-export"
        ],
        "summary": "Export Full Report Pdf",
        "description": "Export the full synthesis report as a PDF.",
        "operationId": "export_full_report_pdf_v1_interviews__interview_id__export_report_pdf_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/corpus/manifest": {
      "get": {
        "tags": [
          "protected-corpus"
        ],
        "summary": "Get Corpus Manifest",
        "description": "Return every non-test response that completed or contains transcript text.",
        "operationId": "get_corpus_manifest_v1_interviews__interview_id__corpus_manifest_get",
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CorpusManifestOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/corpus/records/{response_id}": {
      "get": {
        "tags": [
          "protected-corpus"
        ],
        "summary": "Get Corpus Record",
        "description": "Return one exact record, guarded by its optional record hash.",
        "operationId": "get_corpus_record_v1_interviews__interview_id__corpus_records__response_id__get",
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "response_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Response Id"
            }
          },
          {
            "name": "expected_record_hash",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 64,
                  "maxLength": 64,
                  "pattern": "^[0-9a-fA-F]{64}$"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Expected Record Hash"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CorpusRecordOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/interviews/{interview_id}/corpus/export": {
      "get": {
        "tags": [
          "protected-corpus"
        ],
        "summary": "Export Corpus Ndjson",
        "description": "Export the exact current record objects as one canonical JSON line each.",
        "operationId": "export_corpus_ndjson_v1_interviews__interview_id__corpus_export_get",
        "parameters": [
          {
            "name": "interview_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Interview Id"
            }
          },
          {
            "name": "expected_manifest_hash",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 64,
                  "maxLength": 64,
                  "pattern": "^[0-9a-fA-F]{64}$"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Expected Manifest Hash"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhook-endpoints": {
      "post": {
        "tags": [
          "webhook-endpoints"
        ],
        "summary": "Create Webhook Endpoint",
        "operationId": "create_webhook_endpoint_v1_webhook_endpoints_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpointCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointCreatedOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "webhook-endpoints"
        ],
        "summary": "List Webhook Endpoints",
        "operationId": "list_webhook_endpoints_v1_webhook_endpoints_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Workspace Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookEndpointOut"
                  },
                  "title": "Response List Webhook Endpoints V1 Webhook Endpoints Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhook-endpoints/{endpoint_id}": {
      "patch": {
        "tags": [
          "webhook-endpoints"
        ],
        "summary": "Update Webhook Endpoint",
        "operationId": "update_webhook_endpoint_v1_webhook_endpoints__endpoint_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "endpoint_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Endpoint Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEndpointUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "webhook-endpoints"
        ],
        "summary": "Delete Webhook Endpoint",
        "operationId": "delete_webhook_endpoint_v1_webhook_endpoints__endpoint_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "endpoint_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Endpoint Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhook-endpoints/{endpoint_id}/test": {
      "post": {
        "tags": [
          "webhook-endpoints"
        ],
        "summary": "Test Webhook Endpoint",
        "description": "Enqueue a synthetic test event to the given endpoint.\n\nBypasses the endpoint's event-filter list so the \"Test\" button reliably\ndelivers regardless of which events the endpoint normally subscribes to.",
        "operationId": "test_webhook_endpoint_v1_webhook_endpoints__endpoint_id__test_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "endpoint_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Endpoint Id"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Test Webhook Endpoint V1 Webhook Endpoints  Endpoint Id  Test Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhook-endpoints/{endpoint_id}/deliveries": {
      "get": {
        "tags": [
          "webhook-endpoints"
        ],
        "summary": "List Deliveries",
        "operationId": "list_deliveries_v1_webhook_endpoints__endpoint_id__deliveries_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "endpoint_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Endpoint Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "X-API-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookDeliveryOut"
                  },
                  "title": "Response List Deliveries V1 Webhook Endpoints  Endpoint Id  Deliveries Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AudienceFacetOut": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "values": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Values"
          }
        },
        "type": "object",
        "required": [
          "key",
          "values"
        ],
        "title": "AudienceFacetOut"
      },
      "Body_import_contacts_v1_interviews__interview_id__contacts_import_post": {
        "properties": {
          "file": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "File"
          }
        },
        "type": "object",
        "required": [
          "file"
        ],
        "title": "Body_import_contacts_v1_interviews__interview_id__contacts_import_post"
      },
      "Body_import_people_v1_people_import_post": {
        "properties": {
          "file": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "File"
          }
        },
        "type": "object",
        "required": [
          "file"
        ],
        "title": "Body_import_people_v1_people_import_post"
      },
      "BulkContactsCreate": {
        "properties": {
          "contacts": {
            "items": {
              "$ref": "#/components/schemas/ContactCreate"
            },
            "type": "array",
            "title": "Contacts"
          }
        },
        "type": "object",
        "required": [
          "contacts"
        ],
        "title": "BulkContactsCreate"
      },
      "BulkContactsOut": {
        "properties": {
          "created": {
            "items": {
              "$ref": "#/components/schemas/ContactOut"
            },
            "type": "array",
            "title": "Created"
          },
          "count": {
            "type": "integer",
            "title": "Count"
          },
          "skipped": {
            "type": "integer",
            "title": "Skipped",
            "default": 0
          },
          "invited_count": {
            "type": "integer",
            "title": "Invited Count",
            "default": 0
          },
          "invitations_scheduled_for": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitations Scheduled For"
          }
        },
        "type": "object",
        "required": [
          "created",
          "count"
        ],
        "title": "BulkContactsOut"
      },
      "BulkFollowUpRequest": {
        "properties": {
          "contact_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Contact Ids"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "channel": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "teams",
                  "slack",
                  "email"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Channel"
          }
        },
        "type": "object",
        "required": [
          "contact_ids"
        ],
        "title": "BulkFollowUpRequest"
      },
      "BulkReinviteRequest": {
        "properties": {
          "contact_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Contact Ids"
          }
        },
        "type": "object",
        "required": [
          "contact_ids"
        ],
        "title": "BulkReinviteRequest"
      },
      "BulkReinviteResponse": {
        "properties": {
          "reinvited": {
            "items": {
              "$ref": "#/components/schemas/ContactOut"
            },
            "type": "array",
            "title": "Reinvited"
          },
          "invite_sent_count": {
            "type": "integer",
            "title": "Invite Sent Count"
          },
          "skipped_count": {
            "type": "integer",
            "title": "Skipped Count"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "reinvited",
          "invite_sent_count",
          "skipped_count",
          "message"
        ],
        "title": "BulkReinviteResponse",
        "description": "Result of re-inviting several completed participants at once."
      },
      "CampaignReportStatus": {
        "type": "string",
        "enum": [
          "in_progress",
          "ready",
          "failed"
        ],
        "title": "CampaignReportStatus"
      },
      "CampaignReportTrigger": {
        "type": "string",
        "enum": [
          "threshold_reached",
          "incremental_update",
          "manual_regenerate",
          "campaign_completed"
        ],
        "title": "CampaignReportTrigger",
        "description": "What caused a campaign report version to be generated."
      },
      "CancelContactResponse": {
        "properties": {
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "calendar_event_deleted": {
            "type": "boolean",
            "title": "Calendar Event Deleted"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "contact_id",
          "status",
          "calendar_event_deleted",
          "message"
        ],
        "title": "CancelContactResponse"
      },
      "CancelRequest": {
        "properties": {
          "mark_as_skipped": {
            "type": "boolean",
            "title": "Mark As Skipped",
            "default": false
          }
        },
        "type": "object",
        "title": "CancelRequest"
      },
      "ContactCreate": {
        "properties": {
          "person_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Person Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "slack_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slack User Id"
          },
          "slack_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slack Team Id"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "is_required": {
            "type": "boolean",
            "title": "Is Required",
            "default": false
          },
          "question_set_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Question Set Id"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ContactCreate"
      },
      "ContactImportResult": {
        "properties": {
          "imported": {
            "type": "integer",
            "title": "Imported"
          },
          "skipped": {
            "type": "integer",
            "title": "Skipped"
          },
          "errors": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Errors"
          }
        },
        "type": "object",
        "required": [
          "imported",
          "skipped",
          "errors"
        ],
        "title": "ContactImportResult"
      },
      "ContactOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "interview_id": {
            "type": "string",
            "format": "uuid",
            "title": "Interview Id"
          },
          "person_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Person Id"
          },
          "question_set_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Question Set Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "slack_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slack User Id"
          },
          "slack_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slack Team Id"
          },
          "slack_dm_channel_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slack Dm Channel Id"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "is_required": {
            "type": "boolean",
            "title": "Is Required"
          },
          "process_role_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Process Role Ref"
          },
          "meeting_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Meeting Url"
          },
          "booking_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Booking Token"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "reminder_count": {
            "type": "integer",
            "title": "Reminder Count",
            "default": 0
          },
          "last_reminder_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Reminder At"
          },
          "reinvited_from_contact_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reinvited From Contact Id"
          },
          "booking_token_expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Booking Token Expires At"
          },
          "invitation_status": {
            "type": "string",
            "title": "Invitation Status",
            "default": "none"
          },
          "scheduled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "scheduled_session_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled Session Status"
          },
          "scheduled_session_available_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled Session Available At"
          },
          "scheduled_session_started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled Session Started At"
          },
          "scheduled_session_expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled Session Expires At"
          },
          "delivery_failure_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivery Failure Reason"
          },
          "delivery_failure_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivery Failure At"
          },
          "last_accessed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Accessed At"
          },
          "session_accessibility_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Accessibility Message"
          }
        },
        "type": "object",
        "required": [
          "id",
          "interview_id",
          "question_set_id",
          "name",
          "email",
          "phone",
          "job_title",
          "department",
          "seniority_level",
          "is_required",
          "meeting_url",
          "status",
          "scheduled_at",
          "completed_at",
          "created_at"
        ],
        "title": "ContactOut"
      },
      "ContactUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "slack_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slack User Id"
          },
          "slack_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slack Team Id"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "is_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Required"
          }
        },
        "type": "object",
        "title": "ContactUpdate",
        "description": "Partial update for an existing contact. Only fields explicitly set are written.\n\n`is_required` is included as `bool | None` so unset means \"leave alone\";\npass `false`/`true` to flip it."
      },
      "ConversationContactOut": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "job_title",
          "department",
          "seniority_level"
        ],
        "title": "ConversationContactOut"
      },
      "ConversationDetailOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "contact_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Id"
          },
          "contact": {
            "$ref": "#/components/schemas/ConversationContactOut"
          },
          "is_anonymous": {
            "type": "boolean",
            "title": "Is Anonymous",
            "default": false
          },
          "anonymity_level": {
            "type": "string",
            "title": "Anonymity Level",
            "default": "none"
          },
          "campaign_anonymity_level": {
            "type": "string",
            "title": "Campaign Anonymity Level",
            "default": "none"
          },
          "privacy_drift": {
            "items": {
              "$ref": "#/components/schemas/ConversationPrivacyDriftOut"
            },
            "type": "array",
            "title": "Privacy Drift"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "transcript": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript"
          },
          "original_language_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Original Language Code"
          },
          "original_language_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Original Language Label"
          },
          "transcript_language_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript Language Code"
          },
          "transcript_language_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript Language Label"
          },
          "transcript_is_translated": {
            "type": "boolean",
            "title": "Transcript Is Translated",
            "default": false
          },
          "available_transcript_languages": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Available Transcript Languages"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "findings": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Findings"
          },
          "referenced_resources": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referenced Resources"
          },
          "areas_discussed": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Areas Discussed"
          },
          "extracted_pain_points": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extracted Pain Points"
          },
          "tools_mentioned": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tools Mentioned"
          },
          "processes_touched": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Processes Touched"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "ended_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended At"
          },
          "recording_available": {
            "type": "boolean",
            "title": "Recording Available",
            "default": false
          },
          "recording_mime_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recording Mime Type"
          },
          "recording_size_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recording Size Bytes"
          },
          "recording_duration_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recording Duration Seconds"
          },
          "user_recording_available": {
            "type": "boolean",
            "title": "User Recording Available",
            "default": false
          },
          "user_recording_mime_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Recording Mime Type"
          },
          "user_recording_size_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Recording Size Bytes"
          },
          "user_recording_duration_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Recording Duration Seconds"
          },
          "agent_recording_available": {
            "type": "boolean",
            "title": "Agent Recording Available",
            "default": false
          },
          "agent_recording_mime_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Recording Mime Type"
          },
          "agent_recording_size_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Recording Size Bytes"
          },
          "agent_recording_duration_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Recording Duration Seconds"
          },
          "session_feedback": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__api__campaign_insights__SessionFeedbackOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "screen_analysis_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Screen Analysis Status"
          },
          "screen_analysis_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Screen Analysis Summary"
          },
          "screen_analysis_json": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Screen Analysis Json"
          },
          "screen_shares": {
            "items": {
              "$ref": "#/components/schemas/ConversationScreenShareOut"
            },
            "type": "array",
            "title": "Screen Shares"
          }
        },
        "type": "object",
        "required": [
          "id",
          "contact_id",
          "contact",
          "summary",
          "transcript",
          "duration_minutes",
          "extracted_pain_points",
          "tools_mentioned",
          "processes_touched",
          "started_at",
          "ended_at"
        ],
        "title": "ConversationDetailOut"
      },
      "ConversationMessage": {
        "properties": {
          "role": {
            "type": "string",
            "title": "Role"
          },
          "content": {
            "type": "string",
            "title": "Content"
          }
        },
        "type": "object",
        "required": [
          "role",
          "content"
        ],
        "title": "ConversationMessage"
      },
      "ConversationPrivacyDriftOut": {
        "properties": {
          "dimension": {
            "type": "string",
            "title": "Dimension"
          },
          "direction": {
            "type": "string",
            "title": "Direction"
          }
        },
        "type": "object",
        "required": [
          "dimension",
          "direction"
        ],
        "title": "ConversationPrivacyDriftOut",
        "description": "One privacy dimension where this response and the campaign disagree."
      },
      "ConversationRecordingAccessOut": {
        "properties": {
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "track": {
            "type": "string",
            "title": "Track"
          },
          "mime_type": {
            "type": "string",
            "title": "Mime Type"
          },
          "size_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Size Bytes"
          },
          "duration_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Seconds"
          },
          "expires_in_seconds": {
            "type": "integer",
            "title": "Expires In Seconds",
            "default": 3600
          }
        },
        "type": "object",
        "required": [
          "url",
          "track",
          "mime_type"
        ],
        "title": "ConversationRecordingAccessOut"
      },
      "ConversationRowOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "contact_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "pain_point_count": {
            "type": "integer",
            "title": "Pain Point Count"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "session_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Token"
          },
          "reminder_count": {
            "type": "integer",
            "title": "Reminder Count",
            "default": 0
          },
          "reinvited_from_contact_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reinvited From Contact Id"
          },
          "invitation_status": {
            "type": "string",
            "title": "Invitation Status",
            "default": "none"
          },
          "session_rating": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Rating"
          },
          "is_anonymous_response": {
            "type": "boolean",
            "title": "Is Anonymous Response",
            "default": false
          },
          "audience_filter_attributes": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "title": "Audience Filter Attributes"
          },
          "language_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Code"
          },
          "language_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Label"
          }
        },
        "type": "object",
        "required": [
          "id",
          "contact_id",
          "name",
          "job_title",
          "department",
          "seniority_level",
          "status",
          "duration_minutes",
          "pain_point_count",
          "completed_at",
          "summary"
        ],
        "title": "ConversationRowOut"
      },
      "ConversationScreenObservationOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "screen_share_id": {
            "type": "string",
            "format": "uuid",
            "title": "Screen Share Id"
          },
          "offset_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Offset Seconds"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed At"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "visible_tools": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visible Tools"
          },
          "process_step": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Process Step"
          },
          "visible_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visible Text"
          },
          "suggested_probe": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Probe"
          },
          "confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "analysis_status": {
            "type": "string",
            "title": "Analysis Status"
          },
          "image_available": {
            "type": "boolean",
            "title": "Image Available",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "id",
          "screen_share_id",
          "offset_seconds",
          "observed_at",
          "summary",
          "visible_tools",
          "process_step",
          "visible_text",
          "suggested_probe",
          "confidence",
          "analysis_status"
        ],
        "title": "ConversationScreenObservationOut"
      },
      "ConversationScreenShareOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "request_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Request Id"
          },
          "prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prompt"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "stopped_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stopped At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "duration_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Seconds"
          },
          "expected_chunk_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Chunk Count"
          },
          "uploaded_bytes": {
            "type": "integer",
            "title": "Uploaded Bytes",
            "default": 0
          },
          "upload_limit_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upload Limit Bytes"
          },
          "recording_available": {
            "type": "boolean",
            "title": "Recording Available",
            "default": false
          },
          "recording_mime_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recording Mime Type"
          },
          "recording_size_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recording Size Bytes"
          },
          "recording_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recording Error"
          },
          "observations": {
            "items": {
              "$ref": "#/components/schemas/ConversationScreenObservationOut"
            },
            "type": "array",
            "title": "Observations"
          }
        },
        "type": "object",
        "required": [
          "id",
          "request_id",
          "prompt",
          "reason",
          "status",
          "started_at",
          "stopped_at",
          "completed_at",
          "duration_seconds"
        ],
        "title": "ConversationScreenShareOut"
      },
      "ConversationsListOut": {
        "properties": {
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "departments": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Departments"
          },
          "job_titles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Job Titles"
          },
          "facets": {
            "items": {
              "$ref": "#/components/schemas/AudienceFacetOut"
            },
            "type": "array",
            "title": "Facets"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ConversationRowOut"
            },
            "type": "array",
            "title": "Items"
          },
          "avg_duration_minutes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avg Duration Minutes"
          },
          "is_anonymous": {
            "type": "boolean",
            "title": "Is Anonymous",
            "default": false
          },
          "anonymity_level": {
            "type": "string",
            "title": "Anonymity Level",
            "default": "none"
          },
          "hide_conversations": {
            "type": "boolean",
            "title": "Hide Conversations",
            "default": false
          },
          "show_language_flags": {
            "type": "boolean",
            "title": "Show Language Flags",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "total",
          "departments",
          "job_titles",
          "items"
        ],
        "title": "ConversationsListOut"
      },
      "CorpusChoiceSelectionOut": {
        "properties": {
          "turn_index": {
            "type": "integer",
            "title": "Turn Index"
          },
          "payload": {
            "title": "Payload"
          }
        },
        "type": "object",
        "required": [
          "turn_index",
          "payload"
        ],
        "title": "CorpusChoiceSelectionOut"
      },
      "CorpusGuideQuestionOut": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "question_id": {
            "type": "string",
            "title": "Question Id"
          },
          "topic_id": {
            "type": "string",
            "title": "Topic Id"
          },
          "topic": {
            "type": "string",
            "title": "Topic"
          },
          "question": {
            "type": "string",
            "title": "Question"
          },
          "question_type": {
            "type": "string",
            "title": "Question Type"
          },
          "options": {
            "items": {},
            "type": "array",
            "title": "Options"
          },
          "component_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Config"
          }
        },
        "type": "object",
        "required": [
          "key",
          "question_id",
          "topic_id",
          "topic",
          "question",
          "question_type",
          "options",
          "component_config"
        ],
        "title": "CorpusGuideQuestionOut"
      },
      "CorpusManifestOut": {
        "properties": {
          "schema_version": {
            "type": "string",
            "const": "corpus-manifest-v1",
            "title": "Schema Version"
          },
          "campaign_id": {
            "type": "string",
            "title": "Campaign Id"
          },
          "scope": {
            "type": "string",
            "const": "completed_or_contentful_conversations",
            "title": "Scope"
          },
          "generated_at": {
            "type": "string",
            "title": "Generated At"
          },
          "total_records": {
            "type": "integer",
            "title": "Total Records"
          },
          "records_with_transcript": {
            "type": "integer",
            "title": "Records With Transcript"
          },
          "records_without_transcript": {
            "type": "integer",
            "title": "Records Without Transcript"
          },
          "complete_records": {
            "type": "integer",
            "title": "Complete Records"
          },
          "incomplete_records": {
            "type": "integer",
            "title": "Incomplete Records"
          },
          "counts_by_status": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object",
            "title": "Counts By Status"
          },
          "counts_by_release_status": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object",
            "title": "Counts By Release Status"
          },
          "counts_by_transcript_source": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object",
            "title": "Counts By Transcript Source"
          },
          "records_with_question_mapping_gaps": {
            "type": "integer",
            "title": "Records With Question Mapping Gaps"
          },
          "records_with_question_mapping_conflicts": {
            "type": "integer",
            "title": "Records With Question Mapping Conflicts"
          },
          "excluded_by_reason": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object",
            "title": "Excluded By Reason"
          },
          "records": {
            "items": {
              "$ref": "#/components/schemas/CorpusRecordReferenceOut"
            },
            "type": "array",
            "title": "Records"
          },
          "manifest_hash": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{64}$",
            "title": "Manifest Hash"
          },
          "truncated": {
            "type": "boolean",
            "const": false,
            "title": "Truncated"
          },
          "max_record_count": {
            "type": "integer",
            "title": "Max Record Count"
          },
          "max_turns_per_record": {
            "type": "integer",
            "title": "Max Turns Per Record"
          },
          "max_record_bytes": {
            "type": "integer",
            "title": "Max Record Bytes"
          },
          "max_export_bytes": {
            "type": "integer",
            "title": "Max Export Bytes"
          },
          "guide": {
            "items": {
              "$ref": "#/components/schemas/CorpusGuideQuestionOut"
            },
            "type": "array",
            "title": "Guide"
          },
          "guide_hash": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{64}$",
            "title": "Guide Hash"
          },
          "ndjson_hash": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{64}$",
            "title": "Ndjson Hash"
          }
        },
        "type": "object",
        "required": [
          "schema_version",
          "campaign_id",
          "scope",
          "generated_at",
          "total_records",
          "records_with_transcript",
          "records_without_transcript",
          "complete_records",
          "incomplete_records",
          "counts_by_status",
          "counts_by_release_status",
          "counts_by_transcript_source",
          "records_with_question_mapping_gaps",
          "records_with_question_mapping_conflicts",
          "excluded_by_reason",
          "records",
          "manifest_hash",
          "truncated",
          "max_record_count",
          "max_turns_per_record",
          "max_record_bytes",
          "max_export_bytes",
          "guide",
          "guide_hash",
          "ndjson_hash"
        ],
        "title": "CorpusManifestOut"
      },
      "CorpusMetadataSourcesOut": {
        "properties": {
          "job_title": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "stored_interview_contact",
                  "linked_person"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "stored_interview_contact",
                  "linked_person"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          }
        },
        "type": "object",
        "required": [
          "job_title",
          "department"
        ],
        "title": "CorpusMetadataSourcesOut"
      },
      "CorpusQuestionOut": {
        "properties": {
          "question_id": {
            "type": "string",
            "title": "Question Id"
          },
          "topic_id": {
            "type": "string",
            "title": "Topic Id"
          },
          "topic": {
            "type": "string",
            "title": "Topic"
          },
          "question": {
            "type": "string",
            "title": "Question"
          },
          "question_type": {
            "type": "string",
            "title": "Question Type"
          },
          "options": {
            "items": {},
            "type": "array",
            "title": "Options"
          },
          "component_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Config"
          },
          "turn_indexes": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Turn Indexes"
          },
          "response_turn_indexes": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Response Turn Indexes"
          },
          "mapping_source_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object",
            "title": "Mapping Source Counts"
          },
          "mapping_conflict_turn_indexes": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Mapping Conflict Turn Indexes"
          },
          "responses": {
            "items": {
              "$ref": "#/components/schemas/CorpusResponseTurnOut"
            },
            "type": "array",
            "title": "Responses"
          },
          "choice_selections": {
            "items": {
              "$ref": "#/components/schemas/CorpusChoiceSelectionOut"
            },
            "type": "array",
            "title": "Choice Selections"
          },
          "component_payload": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Payload"
          },
          "component_question_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Question Type"
          },
          "structured_answer_present": {
            "type": "boolean",
            "title": "Structured Answer Present"
          }
        },
        "type": "object",
        "required": [
          "question_id",
          "topic_id",
          "topic",
          "question",
          "question_type",
          "options",
          "component_config",
          "turn_indexes",
          "response_turn_indexes",
          "mapping_source_counts",
          "mapping_conflict_turn_indexes",
          "responses",
          "choice_selections",
          "component_payload",
          "component_question_type",
          "structured_answer_present"
        ],
        "title": "CorpusQuestionOut"
      },
      "CorpusRecordOut": {
        "properties": {
          "schema_version": {
            "type": "string",
            "const": "corpus-record-v1",
            "title": "Schema Version"
          },
          "campaign_id": {
            "type": "string",
            "title": "Campaign Id"
          },
          "response_id": {
            "type": "string",
            "title": "Response Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "is_complete": {
            "type": "boolean",
            "title": "Is Complete"
          },
          "has_transcript": {
            "type": "boolean",
            "title": "Has Transcript"
          },
          "transcript_revision": {
            "type": "integer",
            "title": "Transcript Revision"
          },
          "transcript_turn_count": {
            "type": "integer",
            "title": "Transcript Turn Count"
          },
          "transcript_source": {
            "type": "string",
            "enum": [
              "canonical",
              "legacy_json",
              "none"
            ],
            "title": "Transcript Source"
          },
          "guide_hash": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{64}$",
            "title": "Guide Hash"
          },
          "question_mapping_status": {
            "type": "string",
            "enum": [
              "complete",
              "gaps_present"
            ],
            "title": "Question Mapping Status"
          },
          "unmapped_response_turn_indexes": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Unmapped Response Turn Indexes"
          },
          "question_mapping_conflict_turn_indexes": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Question Mapping Conflict Turn Indexes"
          },
          "release_status": {
            "type": "string",
            "enum": [
              "raw_citable",
              "anonymous_citable",
              "aggregate_only"
            ],
            "title": "Release Status"
          },
          "privacy_level": {
            "type": "string",
            "title": "Privacy Level"
          },
          "is_anonymous": {
            "type": "boolean",
            "title": "Is Anonymous"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "audience_filter_attributes": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "propertyNames": {
              "enum": [
                "workgroup1",
                "workgroup2",
                "workgroup3"
              ]
            },
            "type": "object",
            "title": "Audience Filter Attributes"
          },
          "metadata_sources": {
            "$ref": "#/components/schemas/CorpusMetadataSourcesOut"
          },
          "contact_metadata_source": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "stored_interview_contact",
                  "linked_person",
                  "mixed"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Metadata Source"
          },
          "metadata_withheld_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata Withheld Reason"
          },
          "participant_metadata_output_allowed": {
            "type": "boolean",
            "title": "Participant Metadata Output Allowed"
          },
          "verbatim_output_allowed": {
            "type": "boolean",
            "title": "Verbatim Output Allowed"
          },
          "output_policy": {
            "type": "string",
            "title": "Output Policy"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "ended_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended At"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "questions": {
            "additionalProperties": {
              "$ref": "#/components/schemas/CorpusQuestionOut"
            },
            "type": "object",
            "title": "Questions"
          },
          "transcript": {
            "items": {
              "$ref": "#/components/schemas/CorpusTranscriptTurnOut"
            },
            "type": "array",
            "title": "Transcript"
          },
          "record_hash": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{64}$",
            "title": "Record Hash"
          }
        },
        "type": "object",
        "required": [
          "schema_version",
          "campaign_id",
          "response_id",
          "status",
          "is_complete",
          "has_transcript",
          "transcript_revision",
          "transcript_turn_count",
          "transcript_source",
          "guide_hash",
          "question_mapping_status",
          "unmapped_response_turn_indexes",
          "question_mapping_conflict_turn_indexes",
          "release_status",
          "privacy_level",
          "is_anonymous",
          "job_title",
          "department",
          "audience_filter_attributes",
          "metadata_sources",
          "contact_metadata_source",
          "metadata_withheld_reason",
          "participant_metadata_output_allowed",
          "verbatim_output_allowed",
          "output_policy",
          "started_at",
          "ended_at",
          "duration_minutes",
          "questions",
          "transcript",
          "record_hash"
        ],
        "title": "CorpusRecordOut"
      },
      "CorpusRecordReferenceOut": {
        "properties": {
          "response_id": {
            "type": "string",
            "title": "Response Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "is_complete": {
            "type": "boolean",
            "title": "Is Complete"
          },
          "has_transcript": {
            "type": "boolean",
            "title": "Has Transcript"
          },
          "release_status": {
            "type": "string",
            "enum": [
              "raw_citable",
              "anonymous_citable",
              "aggregate_only"
            ],
            "title": "Release Status"
          },
          "transcript_revision": {
            "type": "integer",
            "title": "Transcript Revision"
          },
          "transcript_turn_count": {
            "type": "integer",
            "title": "Transcript Turn Count"
          },
          "transcript_source": {
            "type": "string",
            "enum": [
              "canonical",
              "legacy_json",
              "none"
            ],
            "title": "Transcript Source"
          },
          "guide_hash": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{64}$",
            "title": "Guide Hash"
          },
          "question_mapping_status": {
            "type": "string",
            "enum": [
              "complete",
              "gaps_present"
            ],
            "title": "Question Mapping Status"
          },
          "question_mapping_conflict_count": {
            "type": "integer",
            "title": "Question Mapping Conflict Count"
          },
          "answered_question_count": {
            "type": "integer",
            "title": "Answered Question Count"
          },
          "record_hash": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{64}$",
            "title": "Record Hash"
          }
        },
        "type": "object",
        "required": [
          "response_id",
          "status",
          "is_complete",
          "has_transcript",
          "release_status",
          "transcript_revision",
          "transcript_turn_count",
          "transcript_source",
          "guide_hash",
          "question_mapping_status",
          "question_mapping_conflict_count",
          "answered_question_count",
          "record_hash"
        ],
        "title": "CorpusRecordReferenceOut"
      },
      "CorpusResponseTurnOut": {
        "properties": {
          "turn_index": {
            "type": "integer",
            "title": "Turn Index"
          },
          "content": {
            "type": "string",
            "title": "Content"
          },
          "choice_selection": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ],
            "title": "Choice Selection"
          }
        },
        "type": "object",
        "required": [
          "turn_index",
          "content"
        ],
        "title": "CorpusResponseTurnOut"
      },
      "CorpusTranscriptTurnOut": {
        "properties": {
          "turn_index": {
            "type": "integer",
            "title": "Turn Index"
          },
          "role": {
            "type": "string",
            "title": "Role"
          },
          "content": {
            "type": "string",
            "title": "Content"
          },
          "topic_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Topic Id"
          },
          "source_question_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Question Id"
          },
          "question_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Question Id"
          },
          "question_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Question Key"
          },
          "question_mapping_source": {
            "type": "string",
            "enum": [
              "choice_selection",
              "interviewer_prompt",
              "context",
              "unmapped"
            ],
            "title": "Question Mapping Source"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "choice_selection": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ],
            "title": "Choice Selection"
          }
        },
        "type": "object",
        "required": [
          "turn_index",
          "role",
          "content",
          "topic_id",
          "source_question_id",
          "question_id",
          "question_key",
          "question_mapping_source",
          "created_at"
        ],
        "title": "CorpusTranscriptTurnOut"
      },
      "DivergenceOut": {
        "properties": {
          "topic": {
            "type": "string",
            "title": "Topic"
          },
          "position_a": {
            "type": "string",
            "title": "Position A"
          },
          "sources_a": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Sources A"
          },
          "departments_a": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Departments A"
          },
          "position_b": {
            "type": "string",
            "title": "Position B"
          },
          "sources_b": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Sources B"
          },
          "departments_b": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Departments B"
          },
          "magnitude": {
            "type": "string",
            "title": "Magnitude"
          }
        },
        "type": "object",
        "required": [
          "topic",
          "position_a",
          "sources_a",
          "departments_a",
          "position_b",
          "sources_b",
          "departments_b",
          "magnitude"
        ],
        "title": "DivergenceOut"
      },
      "FollowUpRequest": {
        "properties": {
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "channel": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "teams",
                  "slack",
                  "email"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Channel"
          }
        },
        "type": "object",
        "title": "FollowUpRequest"
      },
      "FollowUpResponse": {
        "properties": {
          "sent_count": {
            "type": "integer",
            "title": "Sent Count"
          },
          "message": {
            "type": "string",
            "title": "Message"
          },
          "channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Channel"
          },
          "fell_back": {
            "type": "boolean",
            "title": "Fell Back",
            "default": false
          },
          "queued": {
            "type": "boolean",
            "title": "Queued",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "sent_count",
          "message"
        ],
        "title": "FollowUpResponse"
      },
      "FollowUpRule": {
        "type": "string",
        "enum": [
          "auto",
          "none",
          "on_short_answers",
          "one_followup",
          "up_to_three",
          "no_followup_allowed"
        ],
        "title": "FollowUpRule",
        "description": "Per-question follow-up budget — controls how aggressively the agent probes."
      },
      "GraphStatusResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "conversations_ingested": {
            "type": "integer",
            "title": "Conversations Ingested"
          },
          "conversations_total": {
            "type": "integer",
            "title": "Conversations Total"
          },
          "passages_created": {
            "type": "integer",
            "title": "Passages Created"
          },
          "phrases_created": {
            "type": "integer",
            "title": "Phrases Created"
          },
          "keywords_created": {
            "type": "integer",
            "title": "Keywords Created"
          },
          "core_chunks_count": {
            "type": "integer",
            "title": "Core Chunks Count"
          },
          "is_processing": {
            "type": "boolean",
            "title": "Is Processing",
            "default": false
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          }
        },
        "type": "object",
        "required": [
          "status",
          "conversations_ingested",
          "conversations_total",
          "passages_created",
          "phrases_created",
          "keywords_created",
          "core_chunks_count"
        ],
        "title": "GraphStatusResponse"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "InsightsChatMessageIn": {
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ],
            "title": "Role"
          },
          "content": {
            "type": "string",
            "maxLength": 200000,
            "title": "Content"
          },
          "response_payload": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Payload"
          },
          "client_message_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Client Message Id"
          },
          "request_message_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Request Message Id"
          },
          "turn_run_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Turn Run Id"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "role",
          "content"
        ],
        "title": "InsightsChatMessageIn"
      },
      "InterviewChatSessionCreate": {
        "properties": {
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "type": "object",
        "title": "InterviewChatSessionCreate"
      },
      "InterviewChatSessionOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "interview_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Id"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          },
          "scope_interview_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string",
                  "format": "uuid"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scope Interview Ids"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "pinned_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pinned At"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "workspace_id",
          "created_at",
          "updated_at"
        ],
        "title": "InterviewChatSessionOut"
      },
      "InterviewCreate": {
        "properties": {
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "goal": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Goal"
          },
          "agent_behavior": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Behavior"
          },
          "channel": {
            "type": "string",
            "title": "Channel",
            "default": "in_app_chat"
          },
          "completion_threshold": {
            "type": "integer",
            "title": "Completion Threshold",
            "default": 90
          },
          "timeframe_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timeframe Start"
          },
          "timeframe_end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timeframe End"
          },
          "interview_order": {
            "type": "string",
            "title": "Interview Order",
            "default": "seniority_high_first"
          },
          "interview_duration_minutes": {
            "type": "integer",
            "title": "Interview Duration Minutes",
            "description": "Interview length in minutes. Must be one of 5, 10, 15, 20, 30, or 45; other values are snapped to the nearest allowed one (ties favor the shorter), and 0 maps to the default of 30.",
            "default": 30
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone"
          },
          "start_immediately": {
            "type": "boolean",
            "title": "Start Immediately",
            "default": true
          },
          "scheduling_mode": {
            "type": "string",
            "title": "Scheduling Mode",
            "default": "availability"
          },
          "quick_mode_hours": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quick Mode Hours"
          },
          "weekly_availability": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weekly Availability"
          },
          "project_context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Context"
          },
          "interview_context_for_employee": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Context For Employee"
          },
          "invitation_email_message": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitation Email Message"
          },
          "teams_invitation_message": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Teams Invitation Message"
          },
          "agent_profile_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Profile Id"
          },
          "agent_profile_snapshot": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Profile Snapshot"
          },
          "interview_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Type",
            "default": "speaking_only"
          },
          "default_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Language"
          },
          "voice_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Id"
          },
          "voice_provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Provider"
          },
          "voice_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Language"
          },
          "voice_speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Speed"
          },
          "welcome_screen": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Welcome Screen"
          },
          "closing_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closing Message"
          },
          "completion_redirect_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2048
              },
              {
                "type": "null"
              }
            ],
            "title": "Completion Redirect Url"
          },
          "participant_voice_selection_enabled": {
            "type": "boolean",
            "title": "Participant Voice Selection Enabled",
            "default": false
          },
          "participant_mode_selection_enabled": {
            "type": "boolean",
            "title": "Participant Mode Selection Enabled",
            "default": false
          },
          "participant_language_selection_enabled": {
            "type": "boolean",
            "title": "Participant Language Selection Enabled",
            "default": false
          },
          "participant_selectable_languages": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Participant Selectable Languages"
          },
          "participant_anonymity_selection_enabled": {
            "type": "boolean",
            "title": "Participant Anonymity Selection Enabled",
            "default": false
          },
          "participant_review_enabled": {
            "type": "boolean",
            "title": "Participant Review Enabled",
            "default": false
          },
          "result_summary_enabled": {
            "type": "boolean",
            "title": "Result Summary Enabled",
            "default": false
          },
          "folder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Folder"
          },
          "recurring_interval": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recurring Interval"
          },
          "report_floor_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Floor Count"
          },
          "incremental_update_every_n": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Incremental Update Every N"
          },
          "is_anonymous": {
            "type": "boolean",
            "title": "Is Anonymous",
            "default": false
          },
          "anonymity_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Anonymity Level"
          }
        },
        "type": "object",
        "required": [
          "workspace_id",
          "name"
        ],
        "title": "InterviewCreate"
      },
      "InterviewDetailOut": {
        "properties": {
          "interview": {
            "$ref": "#/components/schemas/InterviewOut"
          },
          "contacts": {
            "items": {
              "$ref": "#/components/schemas/ContactOut"
            },
            "type": "array",
            "title": "Contacts"
          },
          "question_sets": {
            "items": {
              "$ref": "#/components/schemas/QuestionSetOut"
            },
            "type": "array",
            "title": "Question Sets"
          },
          "has_tagged_transcript_turns": {
            "type": "boolean",
            "title": "Has Tagged Transcript Turns",
            "default": false
          },
          "invitations_scheduled_for": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitations Scheduled For"
          }
        },
        "type": "object",
        "required": [
          "interview",
          "contacts",
          "question_sets"
        ],
        "title": "InterviewDetailOut",
        "description": "Combined response with interview, contacts, and question sets in one call."
      },
      "InterviewDuplicateIn": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "type": "object",
        "title": "InterviewDuplicateIn"
      },
      "InterviewOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "is_shared": {
            "type": "boolean",
            "title": "Is Shared",
            "default": false
          },
          "shared_from_workspace_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shared From Workspace Name"
          },
          "share_scope": {
            "type": "string",
            "title": "Share Scope",
            "default": "restricted"
          },
          "share_link_enabled": {
            "type": "boolean",
            "title": "Share Link Enabled",
            "default": false
          },
          "join_link_delivery": {
            "type": "boolean",
            "title": "Join Link Delivery",
            "default": false
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "goal": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Goal"
          },
          "agent_behavior": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Behavior"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "channel": {
            "type": "string",
            "title": "Channel"
          },
          "completion_threshold": {
            "type": "integer",
            "title": "Completion Threshold"
          },
          "timeframe_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timeframe Start"
          },
          "timeframe_end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timeframe End"
          },
          "interview_order": {
            "type": "string",
            "title": "Interview Order"
          },
          "interview_duration_minutes": {
            "type": "integer",
            "title": "Interview Duration Minutes"
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone"
          },
          "start_immediately": {
            "type": "boolean",
            "title": "Start Immediately",
            "default": true
          },
          "scheduling_mode": {
            "type": "string",
            "title": "Scheduling Mode",
            "default": "availability"
          },
          "quick_mode_hours": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quick Mode Hours"
          },
          "weekly_availability": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weekly Availability"
          },
          "project_context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Context"
          },
          "success_criteria": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Success Criteria"
          },
          "interview_context_for_employee": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Context For Employee"
          },
          "invitation_email_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitation Email Message"
          },
          "teams_invitation_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Teams Invitation Message"
          },
          "agent_profile_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Profile Id"
          },
          "agent_profile_snapshot": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Profile Snapshot"
          },
          "agent_template_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Template Id"
          },
          "draft_guide": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Draft Guide"
          },
          "draft_guide_revision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Draft Guide Revision"
          },
          "interview_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Type"
          },
          "default_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Language"
          },
          "voice_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Id"
          },
          "voice_provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Provider"
          },
          "voice_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Language"
          },
          "voice_speed": {
            "type": "number",
            "title": "Voice Speed",
            "default": 1.0
          },
          "participant_voice_selection_enabled": {
            "type": "boolean",
            "title": "Participant Voice Selection Enabled",
            "default": false
          },
          "participant_mode_selection_enabled": {
            "type": "boolean",
            "title": "Participant Mode Selection Enabled",
            "default": false
          },
          "participant_language_selection_enabled": {
            "type": "boolean",
            "title": "Participant Language Selection Enabled",
            "default": false
          },
          "participant_selectable_languages": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Participant Selectable Languages"
          },
          "participant_anonymity_selection_enabled": {
            "type": "boolean",
            "title": "Participant Anonymity Selection Enabled",
            "default": false
          },
          "participant_review_enabled": {
            "type": "boolean",
            "title": "Participant Review Enabled",
            "default": false
          },
          "result_summary_enabled": {
            "type": "boolean",
            "title": "Result Summary Enabled",
            "default": false
          },
          "result_summary_recipient_count": {
            "type": "integer",
            "title": "Result Summary Recipient Count",
            "default": 0
          },
          "welcome_screen": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Welcome Screen"
          },
          "closing_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closing Message"
          },
          "completion_redirect_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completion Redirect Url"
          },
          "folder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Folder"
          },
          "recurring_interval": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recurring Interval"
          },
          "followup_enabled": {
            "type": "boolean",
            "title": "Followup Enabled",
            "default": false
          },
          "followup_strategy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Strategy"
          },
          "followup_intervals_hours": {
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Intervals Hours"
          },
          "followup_deadline_days": {
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Deadline Days"
          },
          "followup_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Message"
          },
          "report_floor_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Floor Count"
          },
          "incremental_update_every_n": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Incremental Update Every N"
          },
          "is_anonymous": {
            "type": "boolean",
            "title": "Is Anonymous",
            "default": false
          },
          "anonymity_level": {
            "type": "string",
            "title": "Anonymity Level",
            "default": "none"
          },
          "contact_count": {
            "type": "integer",
            "title": "Contact Count",
            "default": 0
          },
          "completed_count": {
            "type": "integer",
            "title": "Completed Count",
            "default": 0
          },
          "scheduled_count": {
            "type": "integer",
            "title": "Scheduled Count",
            "default": 0
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "created_by_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By Email"
          },
          "created_by_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By Name"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "workspace_id",
          "name",
          "description",
          "goal",
          "agent_behavior",
          "status",
          "channel",
          "completion_threshold",
          "timeframe_start",
          "timeframe_end",
          "interview_order",
          "interview_duration_minutes",
          "created_by",
          "created_at",
          "updated_at"
        ],
        "title": "InterviewOut"
      },
      "InterviewQueryRequest": {
        "properties": {
          "query": {
            "type": "string",
            "title": "Query"
          },
          "anonymize": {
            "type": "boolean",
            "title": "Anonymize",
            "default": false
          },
          "top_k": {
            "type": "integer",
            "title": "Top K",
            "default": 20
          },
          "conversation_history": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/ConversationMessage"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Conversation History"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          }
        },
        "type": "object",
        "required": [
          "query"
        ],
        "title": "InterviewQueryRequest"
      },
      "InterviewQueryResponse": {
        "properties": {
          "answer": {
            "type": "string",
            "title": "Answer"
          },
          "patterns": {
            "items": {
              "$ref": "#/components/schemas/PatternOut"
            },
            "type": "array",
            "title": "Patterns"
          },
          "divergences": {
            "items": {
              "$ref": "#/components/schemas/DivergenceOut"
            },
            "type": "array",
            "title": "Divergences"
          },
          "provenance": {
            "items": {
              "$ref": "#/components/schemas/ProvenanceLinkOut"
            },
            "type": "array",
            "title": "Provenance"
          },
          "verification": {
            "$ref": "#/components/schemas/VerificationOut"
          },
          "query_complexity": {
            "type": "string",
            "title": "Query Complexity"
          },
          "strategies_used": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Strategies Used"
          }
        },
        "type": "object",
        "required": [
          "answer",
          "patterns",
          "divergences",
          "provenance",
          "verification",
          "query_complexity",
          "strategies_used"
        ],
        "title": "InterviewQueryResponse"
      },
      "InterviewUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "goal": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Goal"
          },
          "agent_behavior": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Behavior"
          },
          "channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Channel"
          },
          "completion_threshold": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completion Threshold"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "timeframe_start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timeframe Start"
          },
          "timeframe_end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timeframe End"
          },
          "interview_order": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Order"
          },
          "interview_duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Duration Minutes",
            "description": "Interview length in minutes. Must be one of 5, 10, 15, 20, 30, or 45; other values are snapped to the nearest allowed one (ties favor the shorter), and 0 maps to the default of 30."
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone"
          },
          "start_immediately": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Immediately"
          },
          "scheduling_mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduling Mode"
          },
          "quick_mode_hours": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quick Mode Hours"
          },
          "weekly_availability": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weekly Availability"
          },
          "project_context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Context"
          },
          "interview_context_for_employee": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Context For Employee"
          },
          "invitation_email_message": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitation Email Message"
          },
          "teams_invitation_message": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Teams Invitation Message"
          },
          "agent_profile_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Profile Id"
          },
          "agent_profile_snapshot": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Profile Snapshot"
          },
          "interview_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interview Type"
          },
          "default_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Language"
          },
          "voice_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Id"
          },
          "voice_provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Provider"
          },
          "voice_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Language"
          },
          "voice_speed": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Speed"
          },
          "welcome_screen": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Welcome Screen"
          },
          "closing_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closing Message"
          },
          "completion_redirect_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2048
              },
              {
                "type": "null"
              }
            ],
            "title": "Completion Redirect Url"
          },
          "participant_voice_selection_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Participant Voice Selection Enabled"
          },
          "participant_mode_selection_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Participant Mode Selection Enabled"
          },
          "participant_language_selection_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Participant Language Selection Enabled"
          },
          "participant_selectable_languages": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Participant Selectable Languages"
          },
          "participant_anonymity_selection_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Participant Anonymity Selection Enabled"
          },
          "participant_review_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Participant Review Enabled"
          },
          "result_summary_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result Summary Enabled"
          },
          "folder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Folder"
          },
          "recurring_interval": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recurring Interval"
          },
          "followup_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Enabled"
          },
          "followup_strategy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Strategy"
          },
          "followup_intervals_hours": {
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Intervals Hours"
          },
          "followup_deadline_days": {
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Deadline Days"
          },
          "followup_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Followup Message"
          },
          "report_floor_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Floor Count"
          },
          "incremental_update_every_n": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Incremental Update Every N"
          },
          "is_anonymous": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Anonymous"
          },
          "anonymity_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Anonymity Level"
          }
        },
        "type": "object",
        "title": "InterviewUpdate"
      },
      "PassageOut": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "text": {
            "type": "string",
            "title": "Text"
          },
          "contact_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Name"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "similarity_score": {
            "type": "number",
            "title": "Similarity Score",
            "default": 0.0
          }
        },
        "type": "object",
        "required": [
          "key",
          "text"
        ],
        "title": "PassageOut"
      },
      "PatternOut": {
        "properties": {
          "theme": {
            "type": "string",
            "title": "Theme"
          },
          "description": {
            "type": "string",
            "title": "Description"
          },
          "mention_count": {
            "type": "integer",
            "title": "Mention Count"
          },
          "total_respondents": {
            "type": "integer",
            "title": "Total Respondents"
          },
          "percentage": {
            "type": "number",
            "title": "Percentage"
          },
          "departments_affected": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Departments Affected"
          },
          "supporting_passage_keys": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Supporting Passage Keys"
          }
        },
        "type": "object",
        "required": [
          "theme",
          "description",
          "mention_count",
          "total_respondents",
          "percentage",
          "departments_affected",
          "supporting_passage_keys"
        ],
        "title": "PatternOut"
      },
      "PeopleGroupOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "member_count": {
            "type": "integer",
            "title": "Member Count",
            "default": 0
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "workspace_id",
          "name",
          "created_at",
          "updated_at"
        ],
        "title": "PeopleGroupOut"
      },
      "PeopleImportResult": {
        "properties": {
          "imported": {
            "type": "integer",
            "title": "Imported"
          },
          "updated": {
            "type": "integer",
            "title": "Updated"
          },
          "skipped": {
            "type": "integer",
            "title": "Skipped"
          },
          "errors": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Errors"
          }
        },
        "type": "object",
        "required": [
          "imported",
          "updated",
          "skipped"
        ],
        "title": "PeopleImportResult"
      },
      "PeopleListPageOut": {
        "properties": {
          "people": {
            "items": {
              "$ref": "#/components/schemas/PersonListItemOut"
            },
            "type": "array",
            "title": "People"
          },
          "groups": {
            "items": {
              "$ref": "#/components/schemas/PeopleGroupOut"
            },
            "type": "array",
            "title": "Groups"
          }
        },
        "type": "object",
        "required": [
          "people",
          "groups"
        ],
        "title": "PeopleListPageOut"
      },
      "PersonCampaignOut": {
        "properties": {
          "interview_id": {
            "type": "string",
            "format": "uuid",
            "title": "Interview Id"
          },
          "interview_name": {
            "type": "string",
            "title": "Interview Name"
          },
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "interview_id",
          "interview_name",
          "contact_id",
          "status",
          "created_at"
        ],
        "title": "PersonCampaignOut"
      },
      "PersonCreate": {
        "properties": {
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_label": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Label"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 6.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "person_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PersonType"
              },
              {
                "type": "null"
              }
            ]
          },
          "group_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Group Ids"
          }
        },
        "type": "object",
        "required": [
          "workspace_id"
        ],
        "title": "PersonCreate"
      },
      "PersonDetailOut": {
        "properties": {
          "person": {
            "$ref": "#/components/schemas/PersonOut"
          },
          "campaigns": {
            "items": {
              "$ref": "#/components/schemas/PersonCampaignOut"
            },
            "type": "array",
            "title": "Campaigns"
          },
          "transcripts": {
            "items": {
              "$ref": "#/components/schemas/PersonTranscriptOut"
            },
            "type": "array",
            "title": "Transcripts"
          },
          "insights": {
            "items": {
              "$ref": "#/components/schemas/PersonInsightOut"
            },
            "type": "array",
            "title": "Insights"
          }
        },
        "type": "object",
        "required": [
          "person",
          "campaigns",
          "transcripts",
          "insights"
        ],
        "title": "PersonDetailOut"
      },
      "PersonInsightOut": {
        "properties": {
          "interview_id": {
            "type": "string",
            "format": "uuid",
            "title": "Interview Id"
          },
          "interview_name": {
            "type": "string",
            "title": "Interview Name"
          },
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id"
          },
          "role_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role Description"
          },
          "digital_maturity": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Digital Maturity"
          },
          "work_style": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Work Style"
          },
          "key_frictions": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Key Frictions"
          },
          "tools_used": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tools Used"
          },
          "processes": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Processes"
          },
          "portrait_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Portrait Summary"
          },
          "extracted_pain_points": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extracted Pain Points"
          },
          "tools_mentioned": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tools Mentioned"
          },
          "processes_touched": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Processes Touched"
          },
          "digital_maturity_score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Digital Maturity Score"
          }
        },
        "type": "object",
        "required": [
          "interview_id",
          "interview_name",
          "contact_id"
        ],
        "title": "PersonInsightOut"
      },
      "PersonListItemOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "seniority_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Label"
          },
          "person_type": {
            "type": "string",
            "title": "Person Type"
          },
          "source": {
            "type": "string",
            "title": "Source"
          },
          "audience_filter_attributes": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "title": "Audience Filter Attributes"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "group_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Group Ids"
          },
          "group_names": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Group Names"
          },
          "campaign_count": {
            "type": "integer",
            "title": "Campaign Count",
            "default": 0
          },
          "completed_count": {
            "type": "integer",
            "title": "Completed Count",
            "default": 0
          },
          "last_participated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Participated At"
          },
          "channels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Channels"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "workspace_id",
          "name",
          "person_type",
          "source",
          "created_at",
          "updated_at"
        ],
        "title": "PersonListItemOut"
      },
      "PersonOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          },
          "source_connection_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Connection Id"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "seniority_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Label"
          },
          "person_type": {
            "type": "string",
            "title": "Person Type"
          },
          "source": {
            "type": "string",
            "title": "Source"
          },
          "source_attributes_json": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Attributes Json"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "group_ids": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Group Ids"
          },
          "group_names": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Group Names"
          },
          "campaign_count": {
            "type": "integer",
            "title": "Campaign Count",
            "default": 0
          },
          "completed_count": {
            "type": "integer",
            "title": "Completed Count",
            "default": 0
          },
          "last_participated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Participated At"
          },
          "channels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Channels"
          },
          "teams_display_identifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Teams Display Identifier"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "workspace_id",
          "name",
          "person_type",
          "source",
          "created_at",
          "updated_at"
        ],
        "title": "PersonOut"
      },
      "PersonTranscriptOut": {
        "properties": {
          "conversation_id": {
            "type": "string",
            "format": "uuid",
            "title": "Conversation Id"
          },
          "interview_id": {
            "type": "string",
            "format": "uuid",
            "title": "Interview Id"
          },
          "interview_name": {
            "type": "string",
            "title": "Interview Name"
          },
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "transcript": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "ended_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended At"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          }
        },
        "type": "object",
        "required": [
          "conversation_id",
          "interview_id",
          "interview_name",
          "contact_id",
          "status"
        ],
        "title": "PersonTranscriptOut"
      },
      "PersonType": {
        "type": "string",
        "enum": [
          "internal",
          "external"
        ],
        "title": "PersonType"
      },
      "PersonUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 50
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "job_title": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Title"
          },
          "department": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Department"
          },
          "seniority_label": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Label"
          },
          "seniority_level": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 6.0,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Seniority Level"
          },
          "person_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PersonType"
              },
              {
                "type": "null"
              }
            ]
          },
          "group_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string",
                  "format": "uuid"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Group Ids"
          }
        },
        "type": "object",
        "title": "PersonUpdate"
      },
      "ProgressOut": {
        "properties": {
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "pending": {
            "type": "integer",
            "title": "Pending"
          },
          "scheduled": {
            "type": "integer",
            "title": "Scheduled"
          },
          "in_progress": {
            "type": "integer",
            "title": "In Progress"
          },
          "completed": {
            "type": "integer",
            "title": "Completed"
          },
          "failed": {
            "type": "integer",
            "title": "Failed"
          },
          "skipped": {
            "type": "integer",
            "title": "Skipped"
          },
          "completion_percent": {
            "type": "number",
            "title": "Completion Percent"
          },
          "target_threshold": {
            "type": "integer",
            "title": "Target Threshold"
          }
        },
        "type": "object",
        "required": [
          "total",
          "pending",
          "scheduled",
          "in_progress",
          "completed",
          "failed",
          "skipped",
          "completion_percent",
          "target_threshold"
        ],
        "title": "ProgressOut"
      },
      "ProvenanceLinkOut": {
        "properties": {
          "claim": {
            "type": "string",
            "title": "Claim"
          },
          "passages": {
            "items": {
              "$ref": "#/components/schemas/PassageOut"
            },
            "type": "array",
            "title": "Passages"
          }
        },
        "type": "object",
        "required": [
          "claim",
          "passages"
        ],
        "title": "ProvenanceLinkOut"
      },
      "QuestionCreate": {
        "properties": {
          "question_text": {
            "type": "string",
            "title": "Question Text"
          },
          "is_required": {
            "type": "boolean",
            "title": "Is Required",
            "default": true
          },
          "sort_order": {
            "type": "integer",
            "title": "Sort Order",
            "default": 0
          },
          "question_type": {
            "$ref": "#/components/schemas/QuestionType",
            "default": "open_ended"
          },
          "options": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Options"
          },
          "component_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Config"
          },
          "follow_up_rule": {
            "$ref": "#/components/schemas/FollowUpRule",
            "default": "auto"
          },
          "follow_up_guideline": {
            "type": "string",
            "title": "Follow Up Guideline",
            "default": ""
          },
          "requires_screen_share": {
            "type": "boolean",
            "title": "Requires Screen Share",
            "default": false
          },
          "screen_share_prompt": {
            "type": "string",
            "title": "Screen Share Prompt",
            "default": ""
          }
        },
        "type": "object",
        "required": [
          "question_text"
        ],
        "title": "QuestionCreate"
      },
      "QuestionOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "question_set_id": {
            "type": "string",
            "format": "uuid",
            "title": "Question Set Id"
          },
          "question_text": {
            "type": "string",
            "title": "Question Text"
          },
          "is_required": {
            "type": "boolean",
            "title": "Is Required"
          },
          "sort_order": {
            "type": "integer",
            "title": "Sort Order"
          },
          "question_type": {
            "$ref": "#/components/schemas/QuestionType"
          },
          "options": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Options"
          },
          "component_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Config"
          },
          "follow_up_rule": {
            "$ref": "#/components/schemas/FollowUpRule"
          },
          "follow_up_guideline": {
            "type": "string",
            "title": "Follow Up Guideline",
            "default": ""
          },
          "requires_screen_share": {
            "type": "boolean",
            "title": "Requires Screen Share",
            "default": false
          },
          "screen_share_prompt": {
            "type": "string",
            "title": "Screen Share Prompt",
            "default": ""
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "question_set_id",
          "question_text",
          "is_required",
          "sort_order",
          "question_type",
          "options",
          "follow_up_rule",
          "created_at"
        ],
        "title": "QuestionOut"
      },
      "QuestionSetCreate": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "sort_order": {
            "type": "integer",
            "title": "Sort Order",
            "default": 0
          },
          "topic_metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Topic Metadata",
            "description": "Topic steering. priority: required, important or optional. success_criteria: one to three strings, when the topic counts as understood. success_threshold: the legacy single criterion, read only when success_criteria is absent. mentions: what the interviewer brings up on its own in this topic. sub_topics: list of strings."
          },
          "questions": {
            "items": {
              "$ref": "#/components/schemas/QuestionCreate"
            },
            "type": "array",
            "title": "Questions",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "QuestionSetCreate"
      },
      "QuestionSetOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "interview_id": {
            "type": "string",
            "format": "uuid",
            "title": "Interview Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "sort_order": {
            "type": "integer",
            "title": "Sort Order"
          },
          "section_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Section Type"
          },
          "topic_metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Topic Metadata",
            "description": "Topic steering. priority: required, important or optional. success_criteria: one to three strings, when the topic counts as understood. success_threshold: the legacy single criterion, read only when success_criteria is absent. mentions: what the interviewer brings up on its own in this topic. sub_topics: list of strings."
          },
          "questions": {
            "items": {
              "$ref": "#/components/schemas/QuestionOut"
            },
            "type": "array",
            "title": "Questions",
            "default": []
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "interview_id",
          "name",
          "description",
          "sort_order",
          "created_at"
        ],
        "title": "QuestionSetOut"
      },
      "QuestionSetUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          }
        },
        "type": "object",
        "title": "QuestionSetUpdate"
      },
      "QuestionType": {
        "type": "string",
        "enum": [
          "open_ended",
          "single_choice",
          "multiple_choice",
          "likert_scale",
          "ranking",
          "statement",
          "range_slider",
          "matrix"
        ],
        "title": "QuestionType",
        "description": "Shape of an interview question — drives how the agent delivers and how answers get quantified."
      },
      "QuestionUpdate": {
        "properties": {
          "question_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Question Text"
          }
        },
        "type": "object",
        "title": "QuestionUpdate"
      },
      "ReactivateSessionRequest": {
        "properties": {
          "grace_period_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grace Period Minutes"
          }
        },
        "type": "object",
        "title": "ReactivateSessionRequest",
        "description": "Request to reactivate an expired or unavailable session."
      },
      "ReactivateSessionResponse": {
        "properties": {
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id"
          },
          "scheduled_session_status": {
            "type": "string",
            "title": "Scheduled Session Status"
          },
          "scheduled_session_expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled Session Expires At"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "contact_id",
          "scheduled_session_status",
          "scheduled_session_expires_at",
          "message"
        ],
        "title": "ReactivateSessionResponse",
        "description": "Response after reactivating a session."
      },
      "RegenerateReportResponse": {
        "properties": {
          "version": {
            "$ref": "#/components/schemas/ReportVersionOut"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "version",
          "message"
        ],
        "title": "RegenerateReportResponse"
      },
      "ReinviteResponse": {
        "properties": {
          "contact": {
            "$ref": "#/components/schemas/ContactOut"
          },
          "invite_sent": {
            "type": "boolean",
            "title": "Invite Sent"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "contact",
          "invite_sent",
          "message"
        ],
        "title": "ReinviteResponse",
        "description": "Result of re-inviting a participant who already completed an interview."
      },
      "ReportBlockedReason": {
        "type": "string",
        "enum": [
          "report_requires_tagged_turns",
          "below_floor"
        ],
        "title": "ReportBlockedReason",
        "description": "Why the auto trigger will not start a report run."
      },
      "ReportGenerationStatusOut": {
        "properties": {
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CampaignReportStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string",
                "const": "report_requires_tagged_turns"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "blocked_reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReportBlockedReason"
              },
              {
                "type": "null"
              }
            ]
          },
          "completed_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed Count"
          },
          "floor_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Floor Count"
          },
          "version_number": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version Number"
          },
          "trigger_reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CampaignReportTrigger"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          }
        },
        "type": "object",
        "title": "ReportGenerationStatusOut",
        "description": "Latest version regardless of readiness — lets the report page tell\ngenerating / failed / ready apart without downloading artifacts.\n\nDeliberately no error_message: version errors are raw worker tracebacks,\nwhich never belong in a user-facing surface. error_code names the known,\nuser-actionable failures so the UI can show its own copy.\n\nblocked_reason says why no run will start on its own while none is in\nprogress or ready — the same rule the automatic trigger applies, so the\npage never claims a report is being prepared when nothing is queued.\ncompleted_count and floor_count are the counts that rule compared."
      },
      "ReportSolutionOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "title": {
            "type": "string",
            "title": "Title"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "horizon": {
            "type": "string",
            "title": "Horizon"
          },
          "quick_win": {
            "type": "boolean",
            "title": "Quick Win"
          },
          "structural": {
            "type": "boolean",
            "title": "Structural"
          },
          "est_savings_eur": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Est Savings Eur"
          },
          "est_hours_saved_per_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Est Hours Saved Per Week"
          },
          "affected_processes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Affected Processes"
          },
          "departments": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Departments"
          },
          "contributors": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contributors"
          },
          "evidence_quotes": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Quotes"
          },
          "implementation_notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Implementation Notes"
          },
          "sort_order": {
            "type": "integer",
            "title": "Sort Order"
          }
        },
        "type": "object",
        "required": [
          "id",
          "title",
          "description",
          "horizon",
          "quick_win",
          "structural",
          "est_savings_eur",
          "est_hours_saved_per_week",
          "affected_processes",
          "departments",
          "contributors",
          "evidence_quotes",
          "implementation_notes",
          "sort_order"
        ],
        "title": "ReportSolutionOut"
      },
      "ReportVersionOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "version_number": {
            "type": "integer",
            "title": "Version Number"
          },
          "trigger_reason": {
            "$ref": "#/components/schemas/CampaignReportTrigger"
          },
          "status": {
            "$ref": "#/components/schemas/CampaignReportStatus"
          },
          "conversation_count_at_generation": {
            "type": "integer",
            "title": "Conversation Count At Generation"
          },
          "coverage_snapshot": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Coverage Snapshot"
          },
          "agent_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Run Id"
          },
          "report_artifacts": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Artifacts"
          },
          "solutions": {
            "items": {
              "$ref": "#/components/schemas/ReportSolutionOut"
            },
            "type": "array",
            "title": "Solutions"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "version_number",
          "trigger_reason",
          "status",
          "conversation_count_at_generation",
          "created_at"
        ],
        "title": "ReportVersionOut"
      },
      "RescheduleRequest": {
        "properties": {
          "new_time": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Time"
          }
        },
        "type": "object",
        "title": "RescheduleRequest"
      },
      "RescheduleResponse": {
        "properties": {
          "contact_id": {
            "type": "string",
            "format": "uuid",
            "title": "Contact Id"
          },
          "scheduled_at": {
            "type": "string",
            "format": "date-time",
            "title": "Scheduled At"
          },
          "meeting_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Meeting Url"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "contact_id",
          "scheduled_at",
          "meeting_url",
          "message"
        ],
        "title": "RescheduleResponse"
      },
      "StartInterviewResponse": {
        "properties": {
          "interview": {
            "$ref": "#/components/schemas/InterviewOut"
          },
          "scheduled_count": {
            "type": "integer",
            "title": "Scheduled Count"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "interview",
          "scheduled_count",
          "message"
        ],
        "title": "StartInterviewResponse"
      },
      "TranscriptAnalysisRunCreate": {
        "properties": {
          "objective": {
            "type": "string",
            "maxLength": 4000,
            "minLength": 1,
            "title": "Objective"
          },
          "user_message_id": {
            "type": "string",
            "format": "uuid",
            "title": "User Message Id"
          },
          "analysis_kind": {
            "type": "string",
            "title": "Analysis Kind",
            "default": "management_summary_priorities"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          }
        },
        "type": "object",
        "required": [
          "objective",
          "user_message_id"
        ],
        "title": "TranscriptAnalysisRunCreate"
      },
      "TranscriptAnalysisRunOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "chat_session_id": {
            "type": "string",
            "format": "uuid",
            "title": "Chat Session Id"
          },
          "interview_id": {
            "type": "string",
            "format": "uuid",
            "title": "Interview Id"
          },
          "request_message_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Request Message Id"
          },
          "assistant_message_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assistant Message Id"
          },
          "objective": {
            "type": "string",
            "title": "Objective"
          },
          "analysis_kind": {
            "type": "string",
            "title": "Analysis Kind"
          },
          "model": {
            "type": "string",
            "title": "Model"
          },
          "model_provider": {
            "type": "string",
            "title": "Model Provider"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "phase": {
            "type": "string",
            "title": "Phase"
          },
          "run_generation": {
            "type": "integer",
            "title": "Run Generation"
          },
          "progress": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Progress"
          },
          "usage": {
            "additionalProperties": true,
            "type": "object",
            "title": "Usage"
          },
          "coverage": {
            "additionalProperties": true,
            "type": "object",
            "title": "Coverage"
          },
          "result": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result"
          },
          "suggested_follow_ups": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Follow Ups"
          },
          "stale_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stale Reason"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "report_version_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Version Id"
          },
          "report_version_number": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Version Number"
          },
          "guide_fingerprint": {
            "type": "string",
            "title": "Guide Fingerprint"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "chat_session_id",
          "interview_id",
          "objective",
          "analysis_kind",
          "model",
          "model_provider",
          "status",
          "phase",
          "run_generation",
          "usage",
          "coverage",
          "guide_fingerprint",
          "created_at"
        ],
        "title": "TranscriptAnalysisRunOut"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          },
          "ctx": {
            "type": "object",
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "VerificationOut": {
        "properties": {
          "passed": {
            "type": "boolean",
            "title": "Passed"
          },
          "department_coverage": {
            "type": "number",
            "title": "Department Coverage"
          },
          "departments_hit": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Departments Hit"
          },
          "departments_missing": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Departments Missing"
          },
          "passage_count": {
            "type": "integer",
            "title": "Passage Count"
          },
          "unique_contacts": {
            "type": "integer",
            "title": "Unique Contacts"
          }
        },
        "type": "object",
        "required": [
          "passed",
          "department_coverage",
          "departments_hit",
          "departments_missing",
          "passage_count",
          "unique_contacts"
        ],
        "title": "VerificationOut"
      },
      "WebhookDeliveryOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "endpoint_id": {
            "type": "string",
            "format": "uuid",
            "title": "Endpoint Id"
          },
          "event_type": {
            "type": "string",
            "title": "Event Type"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "attempts": {
            "type": "integer",
            "title": "Attempts"
          },
          "response_status": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Status"
          },
          "last_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Error"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "delivered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivered At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "endpoint_id",
          "event_type",
          "status",
          "attempts",
          "response_status",
          "last_error",
          "created_at",
          "delivered_at"
        ],
        "title": "WebhookDeliveryOut"
      },
      "WebhookEndpointCreate": {
        "properties": {
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "url": {
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri",
            "title": "Url"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Events",
            "description": "Event types to subscribe to. Empty = all."
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 512
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "active": {
            "type": "boolean",
            "title": "Active",
            "default": true
          }
        },
        "type": "object",
        "required": [
          "workspace_id",
          "url"
        ],
        "title": "WebhookEndpointCreate"
      },
      "WebhookEndpointCreatedOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "url": {
            "type": "string",
            "title": "Url"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Events"
          },
          "active": {
            "type": "boolean",
            "title": "Active"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "secret": {
            "type": "string",
            "title": "Secret"
          }
        },
        "type": "object",
        "required": [
          "id",
          "workspace_id",
          "url",
          "events",
          "active",
          "description",
          "created_by",
          "created_at",
          "updated_at",
          "secret"
        ],
        "title": "WebhookEndpointCreatedOut"
      },
      "WebhookEndpointOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "title": "Workspace Id"
          },
          "url": {
            "type": "string",
            "title": "Url"
          },
          "events": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Events"
          },
          "active": {
            "type": "boolean",
            "title": "Active"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "workspace_id",
          "url",
          "events",
          "active",
          "description",
          "created_by",
          "created_at",
          "updated_at"
        ],
        "title": "WebhookEndpointOut"
      },
      "WebhookEndpointUpdate": {
        "properties": {
          "url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2083,
                "minLength": 1,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "events": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Events"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active"
          }
        },
        "type": "object",
        "title": "WebhookEndpointUpdate"
      },
      "app__api__campaign_insights__SessionFeedbackOut": {
        "properties": {
          "rating": {
            "type": "number",
            "title": "Rating"
          },
          "suggestions": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Suggestions"
          },
          "additional_feedback": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Additional Feedback"
          }
        },
        "type": "object",
        "required": [
          "rating",
          "suggestions",
          "additional_feedback"
        ],
        "title": "SessionFeedbackOut",
        "description": "Session-level feedback from the interviewee (completion screen rating)."
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "scheme": "bearer"
      },
      "ClerkJWT": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Clerk-issued RS256 JWT."
      },
      "WorkspaceApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Workspace-scoped API key (prefix: `ont_`)."
      }
    }
  },
  "tags": [
    {
      "name": "interviews",
      "description": "Campaign CRUD, lifecycle, contacts, question sets."
    },
    {
      "name": "campaign-insights",
      "description": "Campaign conversations and recording downloads."
    },
    {
      "name": "campaign-reports",
      "description": "Synthesis Reports — regenerate, generation status, current version."
    },
    {
      "name": "question-results",
      "description": "Results for structured campaign questions."
    },
    {
      "name": "interview-query",
      "description": "Graph RAG query over campaign data."
    },
    {
      "name": "insights-chat",
      "description": "Durable full-corpus analysis runs."
    },
    {
      "name": "interview-export",
      "description": "Markdown / ZIP / PDF exports of transcripts, responses, and reports."
    },
    {
      "name": "protected-corpus",
      "description": "Hash-verified raw-corpus access for Confidential analysis keys."
    },
    {
      "name": "people",
      "description": "Workspace people directory that feeds campaign contacts."
    },
    {
      "name": "webhook-endpoints",
      "description": "Outbound webhook endpoints for automation."
    }
  ],
  "security": [
    {
      "ClerkJWT": []
    },
    {
      "WorkspaceApiKey": []
    }
  ]
}
