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

# REST API

> POST /v1/evaluate from curl or any HTTP client.

Create an API key on the collector first. Set `direction` on every call (`input` /
`output`). Prefer the Go SDK over hand-rolled HTTP in Go. Full contract:
[Evaluate API](/trustguard/api/evaluate).

**Input**

## Coverage

| Surface    | Monitor | Block | Redact |
| ---------- | :-----: | :---: | :----: |
| LLM input  |    ✅    |   ⚠️  |   ⚠️   |
| LLM output |    ✅    |   ⚠️  |   ⚠️   |
| Tool-level |    ⚠️   |   ⚠️  |   ⚠️   |

**Ask** — `status` is advisory: nothing prompts anyone unless your code does.

**Use it when** your runtime has no published SDK, or adding a dependency is not
an option. **Not when** you are on Python, Node or Go: the SDKs already handle
the client, the types and the payload shape.

⚠️ TrustGuard returns the verdict, your code enforces it — and here retries,
timeouts and fail mode are yours to implement too. Decide explicitly whether an
unreachable TrustGuard allows or denies.

**Limits.** Coverage is per call site.

Full comparison: [Coverage](/trustguard/integrations/coverage).

```bash theme={null}
curl -X POST "{TRUSTGUARD_URL}/v1/evaluate" \
  -H "Authorization: Bearer <collector-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "protocol": "llm",
    "direction": "input",
    "payload": { "input": "summarize this customer call" },
    "session_id": "sess-123",
    "consumer_id": "alex@acme.com"
  }'
```

**Output**

```bash theme={null}
curl -X POST "{TRUSTGUARD_URL}/v1/evaluate" \
  -H "Authorization: Bearer <collector-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "protocol": "llm",
    "direction": "output",
    "payload": { "input": "Here is a summary…" },
    "session_id": "sess-123",
    "consumer_id": "alex@acme.com"
  }'
```

```text theme={null}
{ "status": "allow", "findings": [], "transformed_payload": null, "trace_id": "…", "request_id": "…" }
```
