# Structured fact ingest

Uploading structured facts alongside documents.

Use these paths when your data is already structured:

| Pattern | Approach |
| --- | --- |
| Product catalogue, policy fields | Upload JSON/CSV as **documents**, or `POST /facts` with `infer: "triples"` |
| Stable external keys | `entity` type + name in the unified graph; scope paths for tenancy |
| Graph edges between records | `relation` records between entities |

## Documents vs structured facts

- **Unstructured text** (PDF, Markdown, HTML): `POST /api/v1/{ctx}/documents` - async chunking and extraction.
- **Structured triples you already trust**: `POST /api/v1/{ctx}/facts` with `infer: "triples"`.
- **Conversational extraction**: `POST /api/v1/{ctx}/facts/batch` or `spectron remember`.

## Cross-layer linking

See [Cross-layer linking](/docs/agent-memory/reasoning/cross-layer-linking.md).
