---
title: "Read what the assistant established about a message"
method: GET
path: "/api/emails/{address}/messages/{id}/facts"
tags: ["Mailzero Assistant"]
---

# Read what the assistant established about a message

`GET /api/emails/{address}/messages/{id}/facts`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/emails/{address}/messages/{id}/facts`
- Auth: HTTP bearer

The knowledge the analyses of this message produced: claims (subject, predicate, value with type and currency, basis, confidence, validity, evidence), entities, commitments and expectations. Nothing is computed on the way: a message the pipeline never analysed answers `analysed: false` with `reason` (`not_enabled` when the mailbox is not in the assistant, `not_analysed` when the analysis has not happened yet). Requires assistant:read.

## Path parameters

- `address` string, required
- `id` string, required

## Response `200`

The facts, or analysed: false

- MessageFacts: What the analyses established about one message
  - `message_id` string, required
  - `thread_id` string, required
  - `analysed` boolean, required
  - `reason` 'not_enabled' | 'not_analysed': Only when analysed is false
  - `analysis` object
    - `id` string
    - `generated_at` string, date-time
    - `coverage` string
    - `warnings` string[]
    - `pipeline_version` string
  - `facts` Fact[], required
    - `key` string, nullable
    - `subject` string, nullable
    - `predicate` string, nullable
    - `object` string, nullable
    - `value` object, nullable
      - `type` 'string' | 'date' | 'money'
      - `value` string, nullable
      - `currency` string, nullable
    - `basis` 'source_explicit' | 'source_implied' | 'model_inference' | 'null', nullable
    - `confidence` number, nullable
    - `valid_from` string, nullable
    - `valid_until` string, nullable
    - `sensitivity` string
    - `evidence_refs` string[]
    - `seen_at` string, date-time
  - `entities` object[], required
    - `kind` string
    - `name` string
    - `aliases` string[]
    - `ref` string
  - `commitments` object[], required
    - `who` string
    - `what` string
    - `due_at` string, nullable
    - `evidence_refs` string[]
  - `expectations` object[], required
    - `who` string
    - `what` string
    - `due_at` string, nullable
    - `evidence_refs` string[]

## Other responses

- `401`: Missing or invalid API key
- `404`: Mailbox or message not found
- `429`: Rate limit exceeded - wait and retry

---

[API](https://skmtc.dev/domani/apis/domani-run-api.md) · [All operations](https://skmtc.dev/domani/apis/domani-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/domani/apis/domani-run-api/revisions/7679f8159533?raw)
