---
title: "Query Interview Graph"
method: POST
path: "/v1/interviews/{interview_id}/graph/query"
tags: ["interview-query"]
---

# Query Interview Graph

`POST /v1/interviews/{interview_id}/graph/query`

Ask an ad-hoc question about a campaign's interview data.

Uses the interview graph RAG pipeline:
1. Classify query complexity
2. Retrieve relevant passages via vector search + graph traversal
3. Verify retrieval quality (coverage, provenance)
4. Synthesize a structured answer with patterns and divergences

## Path parameters

- `interview_id` string, uuid, required

## Headers

- `X-API-Key` string, nullable

## Request body

- InterviewQueryRequest
  - `query` string, required
  - `anonymize` boolean
  - `top_k` integer
  - `conversation_history` ConversationMessage[], nullable
    - `role` string, required
    - `content` string, required
  - `model` string, nullable

## Response `200`

Successful Response

- InterviewQueryResponse
  - `answer` string, required
  - `patterns` PatternOut[], required
    - `theme` string, required
    - `description` string, required
    - `mention_count` integer, required
    - `total_respondents` integer, required
    - `percentage` number, required
    - `departments_affected` string[], required
    - `supporting_passage_keys` string[], required
  - `divergences` DivergenceOut[], required
    - `topic` string, required
    - `position_a` string, required
    - `sources_a` string[], required
    - `departments_a` string[], required
    - `position_b` string, required
    - `sources_b` string[], required
    - `departments_b` string[], required
    - `magnitude` string, required
  - `provenance` ProvenanceLinkOut[], required
    - `claim` string, required
    - `passages` PassageOut[], required
      - `key` string, required
      - `text` string, required
      - `contact_name` string, nullable
      - `department` string, nullable
      - `job_title` string, nullable
      - `seniority_level` integer, nullable
      - `similarity_score` number
  - `verification` VerificationOut, required
    - `passed` boolean, required
    - `department_coverage` number, required
    - `departments_hit` string[], required
    - `departments_missing` string[], required
    - `passage_count` integer, required
    - `unique_contacts` integer, required
  - `query_complexity` string, required
  - `strategies_used` string[], required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ontora/apis/ontora-api.md) · [All operations](https://skmtc.dev/ontora/apis/ontora-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ontora/ontora-api/revisions/7f57037fd94b/schema)
