> ## Documentation Index
> Fetch the complete documentation index at: https://resend.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve Usage

> Retrieve your account usage and plan limits.

<Warning>
  The Usage API is currently in private beta and only available to a limited
  number of users. The response shape might change before GA.
  [Get in touch](https://resend.com/contact) if you're interested in testing
  this feature.

  <span />

  Once you have access, upgrade your Resend SDK to use the methods on this
  page:

  ```bash Node.js theme={"theme":{"light":"github-light","dark":"vesper"}}
  npm install resend@6.19.0-preview-usage.0
  ```
</Warning>

## Response Fields

<ParamField body="object" type="string">
  Always `usage`.
</ParamField>

<ParamField body="generated_at" type="string">
  When this usage snapshot was generated.
</ParamField>

<ParamField body="emails" type="object">
  Email sending and receiving quota, broken down by day and month.

  <Expandable title="properties">
    <ParamField body="daily" type="object">
      Rolling 24-hour quota. Shaped as `{ used, limit, sent, received,
                  resets_at }`. `limit` is `null` once the team has an active sending
      subscription — daily caps only apply to the free tier.
    </ParamField>

    <ParamField body="monthly" type="object">
      Calendar-month quota, shaped the same as `daily`. `limit` is always a
      number that scales with the plan.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="contacts" type="object">
  Shaped as `{ used, limit }`.
</ParamField>

<ParamField body="segments" type="object">
  Shaped as `{ used, limit }`. `limit` is `null` once the team has an active
  contacts subscription — segment caps only apply to the free tier.
</ParamField>

<ParamField body="broadcasts" type="object">
  Shaped as `{ used, limit }`. `limit` is always `null` — broadcasts have no
  cap.
</ParamField>

<ParamField body="ai_credits" type="object">
  Shaped as `{ used, limit, next_increase_at }`. `next_increase_at` is `null`
  until the team's first AI credit use in the current rolling window; once
  credits are used, it's when the oldest usage ages out and frees up quota.
</ParamField>

<ParamField body="automation_runs" type="object">
  Shaped as `{ used, limit, resets_at }`.
</ParamField>

<ParamField body="domains" type="object">
  Shaped as `{ used, limit }`. `limit` is `null` when the plan has no domain
  cap.
</ParamField>

<ParamField body="rate_limit" type="object">
  The team's API rate limit, shaped as `{ limit, duration }`. `duration` is a
  string like `"1000ms"`.
</ParamField>

<RequestExample>
  ```ts Node.js theme={"theme":{"light":"github-light","dark":"vesper"}}
  import { Resend } from 'resend';

  const resend = new Resend('re_xxxxxxxxx');

  const { data, error } = await resend.usage.get();
  ```

  ```bash cURL theme={"theme":{"light":"github-light","dark":"vesper"}}
  curl -X GET 'https://api.resend.com/usage' \
       -H 'Authorization: Bearer re_xxxxxxxxx'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={"theme":{"light":"github-light","dark":"vesper"}}
  {
    "object": "usage",
    "generated_at": "2026-07-28T18:10:00.000Z",
    "emails": {
      "daily": {
        "used": 10,
        "limit": 100,
        "sent": 8,
        "received": 2,
        "resets_at": "2026-07-29T00:00:00.000Z"
      },
      "monthly": {
        "used": 100,
        "limit": 3000,
        "sent": 80,
        "received": 20,
        "resets_at": "2026-08-01T00:00:00.000Z"
      }
    },
    "contacts": {
      "used": 10,
      "limit": 3000
    },
    "segments": {
      "used": 1,
      "limit": 3
    },
    "broadcasts": {
      "used": 2,
      "limit": null
    },
    "ai_credits": {
      "used": 5,
      "limit": 100,
      "next_increase_at": null
    },
    "automation_runs": {
      "used": 3,
      "limit": 10000,
      "resets_at": "2026-08-01T00:00:00.000Z"
    },
    "domains": {
      "used": 1,
      "limit": 1
    },
    "rate_limit": {
      "limit": 1000,
      "duration": "1000ms"
    }
  }
  ```
</ResponseExample>
