---
title: "Legal doctrine with case-law grounding (nexus_doctrina)"
method: POST
path: "/api/v1/nodo-doctrina"
tags: ["Nodes"]
---

# Legal doctrine with case-law grounding (nexus_doctrina)

`POST /api/v1/nodo-doctrina`

## Request

- Base URL: `https://legal.nexusquantum.legal`
- URL: `https://legal.nexusquantum.legal/api/v1/nodo-doctrina`
- Auth: HTTP bearer

Doctrinal node with corpus RAG (pgvector/Weaviate). Wraps /api/nodo-doctrina (SSE→JSON) + `citationChecks`. Credits: 2 (fixed). If the account does not have the case-law add-on, it degrades to no RAG (it does not fail).

## Request body

- object
  - `query` string, required
  - `jurisdiction` string, required: ISO code. REQUIRED — no default.
  - `language` string: Optional — if omitted, the language follows the jurisdiction (SG→en, ES/CO→es, CH→de, …). An explicit supported value takes precedence.
  - `history` object[]
    - `role` 'user' | 'assistant'
    - `content` string

## Response `200`

{ text, jurisdiction, sources?, corpus?, citationChecks?, processingMs, requestId }. `sources` are the corpus decisions that grounded the answer and `corpus` where they came from (e.g. `Corpus SG (SGCA · SGHC)`); both ABSENT if there was no grounding — that is what distinguishes a grounded answer from one written from the model's own knowledge.

## Other responses

- `400`: MISSING_JURISDICTION | VALIDATION_ERROR | INVALID_JSON
- `402`: INSUFFICIENT_CREDITS
- `403`: MCP_SCOPE_REQUIRED
- `409`: BYO_PROVIDER_REQUIRED — BYO-mandatory account without an enabled BYO configuration. Internal SSE node: if the stream already opened, the same code travels as an event {type:'error', code}.
- `429`: RATE_LIMITED

---

[API](https://skmtc.dev/nexusquantum/apis/nexus-legal-api.md) · [All operations](https://skmtc.dev/nexusquantum/apis/nexus-legal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nexusquantum/apis/nexus-legal-api/revisions/4084d8d4eb0b?raw)
