---
title: "Get daily usage rows for the authenticated account"
method: GET
path: "/api/v1/account/usage"
tags: ["Account"]
---

# Get daily usage rows for the authenticated account

`GET /api/v1/account/usage`

## Request

- Base URL: `https://api.uptimemonitoring.com`
- URL: `https://api.uptimemonitoring.com/api/v1/account/usage`
- Auth: HTTP bearer

## Query parameters

- `days` integer

## Response `200`

Usage

- AccountUsageResponse
  - `monitors_current` integer
  - `days` AccountUsage[]
    - `account_id` integer
    - `date` string, date
    - `incidents` integer: Count of incidents whose started_at fell on this UTC day, from account_activity_day. Exact after migration 032's deploy date; earlier days may hold a backfilled/legacy-merged value instead of an exact recount.
    - `webhooks_sent` integer: Count of delivered webhooks whose attempt-start time (not completion) fell on this UTC day, from account_activity_day. Exact after migration 032's deploy date; earlier days may hold a backfilled/legacy-merged value instead of an exact recount.
    - `monitors_avg` number, float
    - `monitors_created` integer
    - `monitors_deleted` integer
    - `webhooks_created` integer
    - `webhooks_deleted` integer
    - `checks_total` integer: Per-day total check count, summed from monitor_uptime_day.
    - `checks_succeeded` integer

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Account is currently suspended. On `POST /api/v1/monitors`, and on a `PUT /api/v1/monitors/{monitorID}` that changes `url` or `type` (issue #335), this can also be returned by the per-account port-scan heuristic when the triggering request crossed the port-fan threshold inside the sliding window (10 minutes by default; `SCAN_WINDOW`). A host-fan trip does NOT suspend the account — see the 429 response instead.
- `429`: Per-account dispatcher rate limit exceeded (200 requests/minute). The `Retry-After` header gives the integer seconds until at least one token has refilled. The `X-RateLimit-*` trio reflects the bucket whose rejection produced this response — usually the global 200/min cap; on `POST /api/v1/monitors` a 429 may instead reflect the per-route 20/min creation limit.

---

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