---
title: "This period's usage for one project, with what it would cost"
method: GET
path: "/v1/projects/{project_id}/usage/summary"
tags: ["projects"]
---

# This period's usage for one project, with what it would cost

`GET /v1/projects/{project_id}/usage/summary`

## Request

- Base URL: `https://api.wavehouse.cloud`
- URL: `https://api.wavehouse.cloud/v1/projects/{project_id}/usage/summary`
- Auth: one of:
  - API key in cookie `whc_session`
  - HTTP bearer
  - API key in header `X-API-Key`

The org summary narrowed to one project: used is the project's own, org_used the whole org's. Allowance, overage, every amount and blocked are the ORG's, because an allowance is spent by every project together.

## Path parameters

- `project_id` string, required

## Response `200`

OK

- UsageSummaryView
  - `amount_micros` integer, required: the org's, on a project summary too: an allowance is never split across projects
  - `charged` boolean, required: false when the plan never bills usage past its allowance (pause_ingest, negotiated): every *_micros figure is then 0 and no amount applies
  - `currency` string, required: ISO 4217; every *_micros figure here is in it
  - `egress_bytes` integer, required
  - `fixed_fees` FixedFeeView[], required: the org's: the plan's price, extra projects and add-ons a month at today's counts; empty when the plan is not charged
    - `addon_id` string
    - `amount_micros` integer, required: per month
    - `description` string, required
    - `kind` 'plan' | 'extra_projects' | 'addon', required
    - `quantity` integer, required
    - `unit_price_micros` integer, required: per month
  - `fixed_fees_micros` integer, required: the fixed fees' monthly total
  - `lines` UsageLineView[], required
    - `allowance` integer, required: the org's; 0 means the plan includes none of this metric, not that it is unlimited
    - `amount_micros` integer, required: what the org's overage costs at today's price; display only in this release
    - `blocked` boolean, required: true only on the ingest line, on a plan that pauses at its allowance, at or past it: ingest through the API (console and MCP) is refused; a project's own data-plane writes never are
    - `display_name` string, required
    - `metric` string, required
    - `org_used` integer, required: the whole org's use, which the allowance, overage, amounts and blocked apply to; equals used on the org summary
    - `overage` integer, required: the org's use past its allowance
    - `price_unit` string
    - `projected` integer, required: where used ends the period at this rate
    - `projected_amount_micros` integer, required: what the org's projected overage would cost
    - `role` string, required: overage (metered and charged past the allowance) | limit | display
    - `unit` string, required
    - `unit_price_micros` integer, required
    - `used` integer, required: this summary's own use: the project's on a project summary
  - `meter_at` string, date-time: the newest meter observation the figures include (the edge meter reports its open hour every minute); absent while the meter holds no row
  - `org_id` string, required
  - `period_end` string, date-time, required: exclusive: the instant the next period starts
  - `period_start` string, date-time, required
  - `plan_id` string, required
  - `plan_name` string
  - `project_id` string
  - `projected_amount_micros` integer, required: the org's
  - `projects` UsageProjectsView, required
    - `held` integer, required: the org's projects counting toward the plan; one scheduled for deletion does not
    - `included` integer, required: 0 is unlimited
    - `next_blocked` boolean, required: one more project is refused (402) on this plan
    - `next_monthly_micros` integer, required: what one more project adds to the fixed fees each month: 0 when it is included or the plan never bills
  - `warn_at_fraction` number, double, required

## Other responses

- `429`: Rate limited, per client IP, API key or org; a client IP is also refused on every route for a while after repeated authentication failures. A limited operation carries RateLimit-Policy and RateLimit on every response; wait Retry-After seconds before retrying.
- `default`: Error

---

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