---
title: "Trend and per-target flakiness analytics"
method: GET
path: "/api/v1/analytics"
tags: ["Repository"]
---

# Trend and per-target flakiness analytics

`GET /api/v1/analytics`

## Request

- Base URL: `https://dungbeetle.dev`
- URL: `https://dungbeetle.dev/api/v1/analytics`
- Auth: one of:
  - HTTP basic
  - HTTP bearer

Requires the `analytics:read` scope on agent tokens.

## Response `200`

Windowed analytics for the repository.

- Analytics
  - `windowRuns` integer, required
  - `totals` object, required
    - `runs` integer, required
    - `passed` integer, required
    - `failed` integer, required
    - `passRate` number, required
  - `targets` object[], required
    - `target` string, required
    - `kind` string, required
    - `observations` integer, required
    - `failed` integer, required
    - `failRate` number, required
    - `flips` integer, required
    - `flakeRate` number, required
    - `lastStatus` string, required
  - `trend` object[], required
    - `date` string, required
    - `runs` integer, required
    - `failed` integer, required

## Other responses

- `401`: Missing/malformed Authorization header (`code: unauthorized`), bad Basic credentials (`code: invalid_credentials`), or an invalid, expired, or revoked agent token (`code: invalid_agent_token`).
- `403`: Agent token outside its granted scopes (`code: missing_scope`, with a `scope` field naming the required scope) or a route that is not agent-accessible at all (`code: agent_forbidden`). Basic-auth requests never see this.
- `429`: Too many failed attempts or uploads from this client (`code: rate_limited`). Honor the `Retry-After` header; successful authenticated requests never count toward the limit.

---

[API](https://skmtc.dev/dungbeetle/apis/dungbeetle-cloud-api.md) · [All operations](https://skmtc.dev/dungbeetle/apis/dungbeetle-cloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dungbeetle/apis/dungbeetle-cloud-api/revisions/74778b90420a?raw)
