---
title: "Get your asset library plan, usage and limits"
method: GET
path: "/api/v1/assets/usage"
tags: ["Assets"]
---

# Get your asset library plan, usage and limits

`GET /api/v1/assets/usage`

## Request

- Base URL: `https://api.popnow.ai`
- URL: `https://api.popnow.ai/api/v1/assets/usage`
- Auth: HTTP bearer

Plans unlock automatically with the owner's lifetime top-ups and never
go down. Returns the current plan, how much is stored, its limits, the
next plan and how much more to top up to reach it, the full plan table,
and how many assets were created today against the daily limit. Usage
and limits cover the owner's whole allowance: the personal library plus
every team library they own. A plan with all limits at 0 cannot save new
assets; assets already saved stay usable. Byte values use binary units
(500 MB = 524288000 bytes).

`scope` tells which library the key reaches and what it may do there.
When `scope.canTopUp` is false (a team key whose creator is not the
team owner, billing members included), `lifetimeTopupUsd` and
`topupToNextTierUsd` are omitted.

## Response `200`

Plan, usage and limits.

- AssetQuotaEnvelope
  - `code` 200, required
  - `msg` 'success', required
  - `request_id` string, required: Correlation identifier. Include it in support requests.
  - `data` AssetQuota, required
    - `tier` AssetPlan, required
      - `id` string, required: Lowercase plan key, for example free, plus, pro, studio, max.
      - `name` string, required: Plan name, for example Free, Plus, Pro, Studio or Max.
      - `minTopupUsd` string, required: Lifetime top-ups in USD that unlock this plan.
      - `maxBytes` integer, required: Total storage in bytes (binary units). 0 means saving is closed on this plan.
      - `maxCount` integer, required
      - `maxFileBytes` integer, required
    - `usage` object, required
      - `count` integer, required
      - `bytes` integer, required
    - `limits` object, required
      - `tier` string, required
      - `maxCount` integer, required
      - `maxBytes` integer, required
      - `maxFileBytes` integer, required
      - `globalMaxBytes` integer, required: Platform-wide ceiling; 0 disables it.
      - `nameMaxChars` 80, required
    - `full` boolean, required: True when no new asset fits (including plans where saving is closed).
    - `nextTier` AssetPlan, required
      - `id` string, required: Lowercase plan key, for example free, plus, pro, studio, max.
      - `name` string, required: Plan name, for example Free, Plus, Pro, Studio or Max.
      - `minTopupUsd` string, required: Lifetime top-ups in USD that unlock this plan.
      - `maxBytes` integer, required: Total storage in bytes (binary units). 0 means saving is closed on this plan.
      - `maxCount` integer, required
      - `maxFileBytes` integer, required
    - `topupToNextTierUsd` string: How much more to top up, in USD, to reach nextTier. Omitted when scope.canTopUp is false.
    - `lifetimeTopupUsd` string: The owner's lifetime top-ups in USD as a decimal string, for example "25" or "12.50". Omitted when scope.canTopUp is false.
    - `tiers` AssetPlan[], required
      - `id` string, required: Lowercase plan key, for example free, plus, pro, studio, max.
      - `name` string, required: Plan name, for example Free, Plus, Pro, Studio or Max.
      - `minTopupUsd` string, required: Lifetime top-ups in USD that unlock this plan.
      - `maxBytes` integer, required: Total storage in bytes (binary units). 0 means saving is closed on this plan.
      - `maxCount` integer, required
      - `maxFileBytes` integer, required
    - `dailyCreateLimit` integer, required: New assets allowed per owner allowance per UTC day.
    - `createdToday` integer, required
    - `scope` AssetScope, required
      - `workspaceId` string, required: The workspace whose library this is: your personal workspace, or the team. Empty for an account that has no personal workspace yet.
      - `personal` boolean, required
      - `role` 'owner' | 'admin' | 'developer' | 'billing' | 'readonly', required: Always owner for a personal library. For a team key, the current role of the member who created it.
      - `canWrite` boolean, required: Whether new assets can be saved here (owner, admin and developer).
      - `canTopUp` boolean, required: Whether the caller can see and raise the owner's allowance: only the owner (personal library, or a team key the owner created). Billing members cannot top up for the owner.

## Other responses

- `401`: Missing, malformed, expired, revoked, or otherwise invalid API key.
- `403`: Account, model, API-key, IP, or region authorization failed.
- `429`: Account-level request limit exceeded.
- `500`: Internal failure. Details are not exposed; report `request_id` to support.

---

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