---
title: "Get automation review health"
method: GET
path: "/api/v1/automations/{id}/reviews/health"
tags: ["Reviews"]
---

# Get automation review health

`GET /api/v1/automations/{id}/reviews/health`

## Request

- Base URL: `https://studio.eigenpal.com`
- URL: `https://studio.eigenpal.com/api/v1/automations/{id}/reviews/health`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/eigenpal/apis/eigenpal-api/docs/api/v1/automations/:id/reviews/health/get.ts> (a function with typed inputs; its response is checked against the schema)

Aggregates reviewed correctness, review coverage, bucketed counts, and rolling-window confidence for one automation. Prefer this endpoint for single-automation monitoring dashboards.

## Path parameters

- `id` string, required: Workflow id, agent id, or typed alias like workflows.slug / agents.slug.

## Query parameters

- `type` string: Comma-separated: workflow,agent.
- `status` string: Comma-separated execution statuses.
- `trigger` string: Comma-separated trigger types.
- `triggeredBy` string: Comma-separated user ids, or __system__ for system-triggered runs.
- `sourceRef` string
- `batchId` string
- `exampleId` string
- `exampleIdContains` string
- `from` string: Start of the run-created time range. Defaults to now-30d.
- `to` string: End of the run-created time range.
- `completedAfter` string
- `completedBefore` string
- `experiments` string: Set to false to exclude experiment batch runs.
- `bucket` 'day' | 'week' | 'month': Calendar bucket size for the bar chart series. Defaults to day.
- `rollingWindow` integer: Number of reviewed runs per rolling correctness point. Defaults to 100.
- `minRollingReviews` integer: Minimum reviewed runs required before emitting rolling points. Defaults to 1.

## Response `200`

Automation review health metrics.

- RunReviewHealthResponse
  - `timeRange` object, required
    - `from` string, required
    - `to` string, required
  - `granularity` object, required
    - `bucket` 'day' | 'week' | 'month', required
    - `rollingWindow` integer, required
    - `minRollingReviews` integer, required
  - `summary` RunReviewHealthSummary, required
    - `totalRuns` integer, required
    - `reviewedRuns` integer, required: Runs with a ranked verdict (`correct` or `incorrect`). Null verdict (nit) is excluded.
    - `reviewCoverage` number, nullable, required
    - `correctReviews` integer, required
    - `incorrectReviews` integer, required
    - `nitReviews` integer, required: Runs with a review row and null verdict (nit). Excluded from review coverage and accuracy.
    - `reviewedCorrectness` number, nullable, required
    - `confidence` RunReviewHealthConfidence, required: Wilson score confidence interval for reviewed correctness. Null bounds mean there are no reviewed runs in the sample.
      - `lower` number, nullable, required
      - `upper` number, nullable, required
      - `method` 'wilson', required
  - `buckets` RunReviewHealthBucket[], required
    - `start` string, required
    - `end` string, required
    - `totalRuns` integer, required
    - `reviewedRuns` integer, required: Runs with a ranked verdict (`correct` or `incorrect`). Null verdict (nit) is excluded.
    - `reviewCoverage` number, nullable, required
    - `correctReviews` integer, required
    - `incorrectReviews` integer, required
    - `nitReviews` integer, required: Runs with a review row and null verdict (nit). Excluded from review coverage and accuracy.
    - `reviewedCorrectness` number, nullable, required
  - `rolling` RunReviewHealthRollingPoint[], required
    - `at` string, required
    - `reviewedRuns` integer, required: Runs with a ranked verdict (`correct` or `incorrect`). Null verdict (nit) is excluded.
    - `correctReviews` integer, required
    - `reviewedCorrectness` number, required
    - `confidenceLower` number, required
    - `confidenceUpper` number, required
    - `totalRunsInWindow` integer, required: Total production runs in the rolling window ending at this point.
    - `reviewCoverage` number, required: Share of runs in the rolling window that were reviewed (0-1). Uses the same window size as rolling accuracy, applied to all runs.

## Other responses

- `400`: Validation error. Request shape did not match the spec.
- `401`: Missing or invalid API key
- `403`: API key lacks required scope
- `404`: Resource not found
- `413`: Payload too large. Upload exceeded the per-request size cap.
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/eigenpal/apis/eigenpal-api.md) - [All operations](https://skmtc.dev/eigenpal/apis/eigenpal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/eigenpal/apis/eigenpal-api/revisions/dddcddf1975c?raw)
