Claim Traceability, Multi-Document Research, and New API Endpoints

/Webhound Team

Every factual claim in a Webhound research report now carries a structured trace — what it says, where it came from, how it was found, and how confident the system is. Reports are built across multiple working documents and assembled into a final output. And the API now exposes all of it.

These are infrastructure changes. They don't add a new button or a new workflow. They make everything the system already does more transparent, more traceable, and more useful to anyone building on top of it.

Claim traces

Every factual statement the research executor writes now gets a trace object attached to it — embedded directly in the document HTML as a structured comment. Each trace records:

  • What type of claim it is. Statistics, comparatives, synthesis across sources, calculations, qualitative facts, forward-looking statements, editorial judgments, or structural text. The type determines how the claim should be checked.
  • The exact evidence. Not "the source discusses this topic" — the actual passage, quote, or data point from the source. For calculations, the formula and inputs.
  • The research method. Which search query, which result, which section of which page. A reproducible trail that a reader could follow to land on the same evidence.
  • Confidence and importance. How strong the evidence is and how central the claim is to the report's argument. High-importance claims with weak evidence get flagged.
  • Dependencies. Which other claims this one builds on. If an upstream claim turns out to be wrong, everything downstream is suspect.

In the UI, traces appear as small colored dots next to each claim. Click one and you see the full trace — the evidence, the method, the sources, the confidence level, and why it's not higher. The Claims tab lists every traced claim with filters for type, confidence, importance, and document.

Multi-document research

Research sessions now produce multiple working documents — one per topic cluster — and a final output document assembled from all of them. The executor writes into working documents during research. When the budget runs out, an assembly call synthesizes everything into the output.

This means the executor never writes to the output document directly. Working documents are raw research — dense, heavily cited, not formatted for reading. The output is what the reader sees: organized, structured to match what they asked for, with citations generated from the traces.

You can switch between documents in the Document tab. Working documents show the research as it happened. The output shows the assembled result.

Citations from traces

Inline citations — the numbered [1], [2], [3] references in the document — are now generated automatically from the trace's source URLs. The executor doesn't write citation numbers. It writes trace comments with source URLs, and the system converts them to numbered superscripts. This eliminates the old problem of duplicate or mismatched citations and means every citation is directly tied to a traceable claim.

New API endpoints

Three additions to the API, all backward compatible:

  • GET /research/:id/documents returns all documents for a session — working docs and output — with per-document stats.
  • GET /research/:id/claims returns every traced claim, deduplicated, with type, evidence, method, confidence, importance, sources, and dependency graph.
  • GET /research/:id/document?doc_type=all now accepts a doc_type parameter. Default is output (backward compatible). Pass working or all to get the underlying research.

Existing API consumers don't need to change anything. The output document endpoint returns the same response it always did, plus new fields you can ignore. Full documentation is on the API page.

Other changes

  • Research uses the full budget. The system no longer stops research early to reserve budget for assembly. Assembly runs in grace mode if needed, so every dollar goes to actual research.
  • Output document naming. The assembled output is now named after the session (what the agent titled it), not generic "Research Output."
  • Claims tab. New tab in the document view listing every traced claim with filters for type, confidence, importance, and whether it's been audited. Each card shows the trace ID, claim text, inline source links, dependencies, and expandable evidence.
  • Sources tab. Dropdown filter by document instead of button bar. Source counts now reflect the actual traces, not duplicates across documents.

Questions? Email team@webhound.ai.