---
title: "Limits and usage"
method: GET
path: "/usage"
tags: ["Usage"]
---

# Limits and usage

`GET /usage`

## Request

- Base URL: `https://api.layout.link/v1`
- URL: `https://api.layout.link/v1/usage`
- Auth: HTTP bearer

Every limit your application meets in this key's environment and what your developer account has spent today against each daily pool. Free to call and spends nothing.

## Headers

- `Layout-Version` '2026-10-01'

## Response `200`

Your limits and today's usage.

- Usage
  - `app` object, required
    - `id` string, required
  - `environment` 'sandbox' | 'live', required
  - `approvalStatus` 'pending' | 'approved' | 'denied' | 'suspended', required
  - `resetsAt` string, required: When every daily pool resets: the next midnight UTC.
  - `daily` DailyPool[], required
    - `name` string, required: The pool. One of the developer pools, or `sandbox_builds` / `cardless_builds` for this application's own allowance.
    - `description` string, required
    - `scope` 'developer' | 'application', required: `developer`: every application on your developer account together. `application`: this application alone.
    - `limit` integer, required: Your daily number, after any change Layout made for your account.
    - `used` integer, required: Spent today, since midnight UTC.
    - `remaining` integer, required
    - `poolLimit` integer: The pool's ceiling across every developer. When it is reached the refusal says it was Layout's limit.
    - `custom` boolean: True when Layout set this number for your account.
    - `note` string: Why the pool is closed to this credential, when `limit` is 0.
  - `perPerson` PerPersonLimit[], required
    - `name` string, required
    - `description` string, required
    - `period` 'day', required
    - `limit` integer, required
  - `rates` RateWindow[], required
    - `name` string, required
    - `description` string, required
    - `scope` 'credential' | 'address' | 'person' | 'developer' | 'platform', required: `developer`: every application on your developer account together, counted in one place. `platform`: shared by every developer on Layout, counted in one place, so your own use cannot be shown.
    - `period` 'minute' | 'hour', required
    - `limit` integer, required: Your number now.
    - `verifiedPeople` integer: On `texts` for an approved production application: the people your developer account has verified, which the hourly number grows with. Read every few minutes.
    - `max` integer: On `texts` for an approved production application: the most the hourly number grows to.
    - `next` object: On `texts`, until it reaches `max`: where the number grows next.
      - `verifiedPeople` integer, required: The verified people at which the number next grows.
      - `limit` integer, required: What it grows to.

## Other responses

- `400`: `unsupported_version`: the Layout-Version header names no version this API answers.
- `401`: Secret not recognised, malformed, or rotated.
- `403`: Application not permitted. Usually production on an unapproved application.
- `429`: Too many requests.
- `500`: Layout failed to answer. Retry with backoff.
- `503`: Usage could not be read right now. Retry with backoff.

---

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