---
title: "Get User Daily Consumption"
method: GET
path: "/v3/enterprise/consumption/daily/users/{user_id}"
tags: ["consumption"]
---

# Get User Daily Consumption

`GET /v3/enterprise/consumption/daily/users/{user_id}`

Get daily ACU consumption for a specific user.

Returns total ACUs and consumption broken down by date for the user.

**Timezone behavior**: Billing cycles use midnight PST (Pacific Standard Time)
as the day boundary, which corresponds to 08:00:00 UTC. To match the consumption
data shown in the Devin dashboard, pass Unix timestamps that align with this
timezone offset (e.g., 1733385600 for December 5, 2025 at midnight PST).

## Path parameters

- `user_id` string, required

## Query parameters

- `time_before` integer, nullable
- `time_after` integer, nullable

## Response `200`

Successful Response

- ConsumptionResponse
  - `data` ConsumptionRow[], required — Array of consumption data rows.
    - `timestamp` string — Time bucket for the row. Format depends on `granularity`: `YYYY-MM-DD` for daily, `YYYY-MM` for monthly. Only present when `granularity` is specified.
    - `user_id` string — User identifier (auth UID). Only present when `group_by` includes `user`.
    - `user_email` string — User's email address. Only present when `group_by` includes `user`.
    - `model_uid` string — Model identifier. Only present when `group_by` includes `model_uid`.
    - `ide` string — IDE name. Only present when `group_by` includes `ide`.
    - `ide_version` string — IDE version. Only present when `group_by` includes `ide_version` (which additionally requires `ide`).
    - `consumption` Consumption, required — Usage metrics for the row. Fields are populated based on the team's billing strategy.
      - `prompt_credits` integer — Prompt credits consumed (credits-based billing only).
      - `flex_credits` integer — Flex credits consumed (credits-based billing only).
      - `billed_acus` number, double — Billed ACUs consumed (ACU-based billing only).
      - `message_count` integer — Number of messages (billing events) in this row. Always populated regardless of billing strategy.
  - `pagination` object, required
    - `next_page_cursor` string, nullable — Opaque cursor for fetching the next page of results. Pass this value as the `page_cursor` query parameter in a follow-up request. `null` when there are no more pages. Page cursors expire after 24 hours.
  - `metadata` object, required
    - `billing_strategy` 'CREDITS' | 'ACU' — The billing strategy for the authenticated team. Determines which fields in `consumption` are populated: - `CREDITS` — `prompt_credits` and `flex_credits` - `ACU` — `billed_acus`
    - `data_freshness` string, date-time — Timestamp indicating when the underlying data was last refreshed (truncated to the hour).
    - `query_time_ms` integer — Server-side query execution time in milliseconds.
    - `team_id` string — The team ID resolved from the authenticated service key.
    - `group_id` string — The group ID the results were scoped to. Only present when `group_id` was supplied.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Unprocessable Content
- `429` — Too Many Requests

---

[API](https://skmtc.net/devinenterprise/apis/devin-api-v1.md) · [All operations](https://skmtc.net/devinenterprise/apis/devin-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/devinenterprise/devin-api-v1/versions/e3244476af1c/schema)
