---
title: "Plan, usage against each published limit, and what the next tier changes."
method: GET
path: "/billing"
tags: ["usage"]
---

# Plan, usage against each published limit, and what the next tier changes.

`GET /billing`

## Request

- Base URL: `https://api.agentisend.com`
- URL: `https://api.agentisend.com/billing`
- Auth: HTTP bearer

## Response `200`

Success

- GetBillingReply
  - `currency` string, required
  - `pricing_document_version` integer, required
  - `plan` object, required
    - `id` string, required
    - `name` string, required
    - `monthly_price_minor` integer, required
    - `included_emails_per_month` integer, required
    - `max_domains` integer, nullable, required
    - `max_seats` integer, required
    - `retention_days` integer, required
    - `overage_minor_per_1000_emails` integer, nullable, required
  - `period` object, required
    - `started_at` string, date-time, required
    - `resets_at` string, date-time, required
    - `days` integer, required
  - `limits` object[], required
    - `metric` 'emails_per_month' | 'lifetime_emails' | 'domains' | 'seats' | 'retention_days', required
    - `label` string, required
    - `used` integer, required
    - `limit` integer, nullable, required
    - `unit` string, required
    - `at_limit` string, required
  - `overage` object, required
    - `policy` 'pause' | 'bill', required
    - `available` boolean, required
    - `enabled` boolean, required
    - `cap_emails` integer, nullable, required
    - `consumed_this_period` integer, required
    - `rate_minor_per_1000` integer, nullable, required
    - `text` string, required
    - `auto_charges` boolean, required
  - `next_tier` object, nullable, required
    - `id` string, required
    - `name` string, required
    - `monthly_price_minor` integer, required
    - `included_emails_per_month` integer, required
    - `max_domains` integer, nullable, required
    - `max_seats` integer, required
    - `retention_days` integer, required
    - `overage_minor_per_1000_emails` integer, nullable, required
  - `payment` object, required
    - `writes_enabled` boolean, required
    - `text` string, required

## Other responses

- `401`: No usable credential was sent. Codes: missing_api_key, session_required, mfa_required.
- `403`: The credential may not do this, or the account or key is stopped. Codes: sending_domain_blocked, young_domain_held, domain_sending_disabled, domain_not_verified, onboarding_recipient_not_a_member, onboarding_sender_unavailable, account_suspended, account_sandboxed, human_action_required, csrf_origin_rejected, charge_not_this_account, invalid_api_key, restricted_api_key, insufficient_role, invite_email_mismatch, domain_scope_violation, dedicated_ip_assigned_by_us, approval_required, staff_review_required, trust_paused, kill_switch_active.
- `404`: Nothing with this id exists on the account. Codes: billing_customer_missing, not_found, session_expired, support_ticket_not_found.
- `429`: A rate, quota or ramp ceiling was reached. Codes: onboarding_daily_cap_reached, trust_throttled, invite_limit_reached, rate_ceiling_exceeded, daily_quota_exceeded, monthly_quota_exceeded, rate_limit_exceeded, support_rate_limited.
- `500`: Something failed on our side. Codes: internal_server_error.

---

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