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

# Observability endpoints

> Health and feedback endpoints.

## GET /health

Liveness check. The only endpoint that does not require `X-Engine-Key`.

```http theme={null}
GET /health
```

```json theme={null}
{
  "status": "ok",
  "uptime_seconds": 12.5,
  "subsystems": {
    "database": "ok",
    "llm_provider": "ok",
    "asset_directory": "ok"
  }
}
```

A `status` of anything other than `"ok"` means at least one subsystem is
unhealthy. Inspect `subsystems` for which.

Use this for load-balancer health probes and ops dashboards.

## POST /feedback

Submit user feedback about a turn — a correction, a rating, or an error
report. Feedback flows into the Learning Centre as a learning signal.

```http theme={null}
POST /feedback
X-Engine-Key: <key>
Content-Type: application/json

{
  "task_id": "task-001",
  "feedback_type": "correction",
  "correction_text": "The latest commit was 9d2..., not 8c4..."
}
```

| Field             | Type   | Required                        | Purpose                                    |
| ----------------- | ------ | ------------------------------- | ------------------------------------------ |
| `task_id`         | string | yes                             | The task the feedback is about.            |
| `feedback_type`   | string | yes                             | `correction`, `rating`, or `error_report`. |
| `correction_text` | string | when `feedback_type=correction` | What the right answer was.                 |

```json theme={null}
{ "status": "recorded", "feedback_id": "fb-..." }
```

## See also

* [Operations → Observability](../../../operations/infra/observability)
  for metrics, logs, and tracing.
* [Learning Centre](../../../internal/architecture/components#learning-centre)
  for how feedback turns into long-term memory.
