---
title: "Get completion-rate history (trend)"
method: GET
path: "/api/v1/me/request-health-history"
tags: ["Settings"]
---

# Get completion-rate history (trend)

`GET /api/v1/me/request-health-history`

## Request

- Base URL: `https://api.proof.holdings`
- URL: `https://api.proof.holdings/api/v1/me/request-health-history`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `auth_token`

Per-bucket completion-rate trend for the dashboard sparkline and usage chart, and for AI agents. Requests are bucketed by created_at (UTC day or week) and scored with the same stale-expiry bucketing and completed/(completed+expired+cancelled) rate as /me/summary. The series is dense (zero-filled) and chronological. Counts + rate only — no recipient identifiers (SEC-001); demo traffic excluded (SEC-003). (m-dashboard-completion-trend)

## Query parameters

- `days` integer: Window length in days (clamped 1-90, default 30)
- `interval` 'day' | 'week': Bucket granularity
- `environment` 'production' | 'test': Scope metrics to test or production (default: the calling key environment)

## Response `200`

Dense, chronological per-bucket completion-rate series

- RequestHealthHistoryResponse: Per-bucket completion-rate trend: requests bucketed by created_at (UTC day/week), reusing /me/summary's stale-expiry bucketing and completed/(completed+expired+cancelled) rate. Dense (zero-filled), chronological. Counts + rate only — no recipient identifiers (SEC-001). Demo traffic excluded (SEC-003).
  - `interval` 'day' | 'week', required
  - `days` number, required
  - `as_of` string, date-time, required
  - `points` object[], required
    - `period` string, required: Bucket start, YYYY-MM-DD (UTC)
    - `pending` number, required
    - `partial` number, required
    - `completed` number, required
    - `expired` number, required
    - `cancelled` number, required
    - `total` number, required
    - `completion_rate` number, nullable, required: completed/(completed+expired+cancelled); null when the denominator is 0

## Other responses

- `400`: Validation error (e.g. days out of range)
- `401`: Unauthorized

---

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