> ## Documentation Index
> Fetch the complete documentation index at: https://docs.heretic.quest/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /e Explain Endpoint: Full Request and Response Reference

> Complete reference for GET /e?n={sessionId}. Returns the full verdict JSON for a Heretic collector session, including signals and evidence families.

The explain endpoint is the primary API surface of Heretic. You pass a session ID — generated by the [`@heretic-hq/collector`](https://www.npmjs.com/package/@heretic-hq/collector) package running in your user's browser — and the edge returns a complete ruling: a verdict, the individual signals that fired, the evidence families that measured the session, and a human-readable summary you can surface in your own tooling.

## Request

**Method:** `GET`\
**URL:** `https://edge.heretic.quest/e`

### Query Parameters

<ParamField query="n" type="string" required>
  The session ID returned by the Heretic collector. The collector exposes this as a string after the measurement run completes. Example: `9f2c41ab`.
</ParamField>

### Headers

<ParamField header="Authorization" type="string" required>
  Your Heretic API key, passed as a Bearer token: `Bearer {your-api-key}`. You can create keys at [heretic.quest/dashboard/keys](https://heretic.quest/dashboard/keys).
</ParamField>

## Code Examples

**curl:**

```bash theme={null}
curl -H "Authorization: Bearer $HERETIC_API_KEY" \
  "https://edge.heretic.quest/e?n=9f2c41ab"
```

**TypeScript (fetch):**

```ts theme={null}
const res = await fetch(
  `https://edge.heretic.quest/e?n=${sessionId}`,
  { headers: { Authorization: `Bearer ${process.env.HERETIC_API_KEY}` } }
);
const verdict = await res.json();
```

## Response

A successful `200` response returns a JSON object conforming to the [Verdict Response Schema](/api/verdict-schema). The example below is a real session showing a contradicted verdict with two composite signals:

```json theme={null}
{
  "schema": 7,
  "provenance": { "build": "0.0.1+11f956e" },
  "verdict": "contradicted",
  "conclusive": true,
  "summary": "Claimed locale is physically unreachable; transport stack contradicts the claimed OS.",
  "contradicting_families": ["network-geometry", "transport-stack"],
  "families": { "measured": 6, "reporting": 6 },
  "signals": [
    {
      "id": "geo.rtt-below-vacuum",
      "tier": "composite",
      "headline": "RTT 2.1ms; light needs 27.4ms"
    },
    {
      "id": "stack.os-contradiction",
      "tier": "composite",
      "headline": "SYN by Linux 5.x; UA claims macOS 15"
    }
  ]
}
```

## Session Expiry

Sessions expire **15 minutes** after they are collected by the edge. If you request a session ID after that window, the API returns `404`. Fetch the verdict promptly after your collector run completes — or immediately upon receiving the session ID from the client.

<Warning>
  Do not store raw session IDs for delayed lookup. Either fetch the verdict at collection time and cache the result, or fetch within the 15-minute window. A cached verdict is permanent; an unfetched session is not.
</Warning>

## Related

* [API Overview and Authentication](/api/overview): base URL, authentication, and error code reference
* [Verdict Response Schema](/api/verdict-schema): complete documentation of every field in the response JSON


## Related topics

- [Heretic API: Base URL, Auth, and Error Codes Guide](/api/overview.md)
- [Heretic Verdict Schema: Complete JSON Field Reference](/api/verdict-schema.md)
- [Heretic Quick Start: Collect Sessions and Read Verdicts](/quickstart.md)
- [Heretic FAQ: Integration, Verdicts, Privacy, and Access](/reference/faq.md)
- [Heretic: Physics-Based Browser Intelligence Platform](/introduction.md)
