---
title: "Account Usage API"
slug: account-usage-api
description: "Retrieve your account usage and plan limits directly from the API."
created_at: "2026-10-01"
updated_at: "2026-10-01"
image: https://cdn.resend.com/posts/account-usage-api.jpg
humans: ["gabriel-miranda", "diel-duarte"]
---

Today, we're introducing the [**Usage API**](/docs/api-reference/usage/retrieve-usage). One request returns your current usage and limits across every quota on your account.

<YouTube videoId="0bcmTp_Yyl4" />

## What you can build with it

- **Quota alerts**: notify your team before you hit your daily or monthly email limit.
- **Send throttling**: pause non-critical sends when you're close to a cap.
- **Internal dashboards**: show Resend usage next to your infrastructure metrics.
- **Agent awareness**: let your agent check remaining quota.

## Retrieving your usage

Call [`GET /usage`](/docs/api-reference/usage/retrieve-usage) with any API key.

<CodeTabs codeHeight={250}>
```nodejs
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

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

```php
$resend = Resend::client('re_xxxxxxxxx');

$resend->usage->get();
```

```python
import resend

resend.api_key = "re_xxxxxxxxx"

resend.Usage.get()
```

```ruby
require "resend"

Resend.api_key = "re_xxxxxxxxx"

usage = Resend::Usage.get
puts usage
```

```go
package main

import "github.com/resend/resend-go/v4"

func main() {
	client := resend.NewClient("re_xxxxxxxxx")

	client.Usage.Get()
}
```

```rust
use resend_rs::{Resend, Result};

#[tokio::main]
async fn main() -> Result<()> {
  let resend = Resend::new("re_xxxxxxxxx");

  let _usage = resend.usage.get().await?;

  Ok(())
}
```

```java
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.usage.model.UsageResponse;

public class Main {
    public static void main(String[] args) throws ResendException {
        Resend resend = new Resend("re_xxxxxxxxx");

        UsageResponse usage = resend.usage().get();
    }
}
```

```dotnet
using Resend;

IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI

var resp = await resend.UsageAsync();
Console.WriteLine( "Contacts used={0}", resp.Content.Contacts.Used );
```

```curl
curl -X GET 'https://api.resend.com/usage' \
     -H 'Authorization: Bearer re_xxxxxxxxx'
```

```cli
resend usage
```
</CodeTabs>

## What's in the response

The response covers every quota on your account:

- **`emails`**: sent and received emails, viewable by `daily` or `monthly` windows.
- **`contacts`**: how many contacts have been used from your quota.
- **`segments`**: how many segments have been used from your quota (if applicable).
- **`broadcasts`**: how many total broadcasts have been created.
- **`domains`**: how many domains have been used from your quota (if applicable).
- **`ai_credits`**: credits used along with `next_increase_at`.
- **`automation_runs`**: runs used this period and when the count resets.
- **`rate_limit`**: your team's API rate limit for all requests.

A `limit` of `null` means there's no cap for that resource on your plan.

```json
{
  "object": "usage",
  "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"
  }
}
```

## Available in the CLI and MCP server

Run `resend usage` in the [CLI](/docs/cli) to see a table of your usage, or `resend usage --json` for scripts. The [MCP server](/docs/mcp-server) also includes a `get-usage` tool, so your agent can check your limits on its own.

To learn more, check out the [API documentation](/docs/api-reference/usage/retrieve-usage).
