---
title: "Console: the signed-in account’s plan and subscription state."
method: GET
path: "/billing/subscription"
tags: ["billing"]
---

# Console: the signed-in account’s plan and subscription state.

`GET /billing/subscription`

## Request

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

## Response `200`

Success

- GetBillingPlanReply
  - `tier` 'free' | 'starter' | 'pro' | 'scale', required
  - `plan_status` 'none' | 'trialing' | 'active' | 'past_due' | 'canceled', required
  - `needs_plan_selection` boolean, required
  - `plan_source` 'free' | 'subscription' | 'manual' | 'lifetime', required
  - `billing_term` 'month' | 'year', nullable, required
  - `entitlements` object, required
    - `tier` 'free' | 'starter' | 'pro' | 'scale', required
    - `included_emails_per_month` integer, required
    - `retention_days` integer, required
    - `max_domains` integer, nullable, required
    - `max_seats` integer, required
    - `overage_minor_per_1000_emails` integer, nullable, required
  - `subscription` object, nullable, required
    - `status` string, required
    - `price_lookup_key` string, nullable, required
    - `current_period_end` string, date-time, nullable, required
    - `cancel_at_period_end` boolean, required
  - `billing_configured` boolean, required
  - `terms_on_sale` string[], required
  - `plans` object[], required
    - `tier` 'starter' | 'pro' | 'scale', required
    - `name` string, required
    - `featured` boolean, required
    - `included_emails_per_month` integer, required
    - `max_domains` integer, nullable, required
    - `max_seats` integer, required
    - `retention_days` integer, required
    - `prices` object, required
      - `month` object, required
        - `per_month_minor` integer, required
        - `total_minor` integer, required
        - `months` integer, required
        - `discount_percent` integer, required
      - `year` object, required
        - `per_month_minor` integer, required
        - `total_minor` integer, required
        - `months` integer, required
        - `discount_percent` integer, required
    - `volume_rungs` object[], required
      - `included_emails_per_month` integer, required
      - `monthly_price_minor` integer, required
      - `prices` object, required
        - `month` object, required
          - `per_month_minor` integer, required
          - `total_minor` integer, required
          - `months` integer, required
          - `discount_percent` integer, required
        - `year` object, required
          - `per_month_minor` integer, required
          - `total_minor` integer, required
          - `months` integer, required
          - `discount_percent` integer, required
  - `lifetime` object, nullable, required
    - `tier` 'tier1' | 'tier2' | 'tier3' | 'tier4', required
    - `name` string, required
    - `emails_total` integer, required
    - `emails_used` integer, required
    - `emails_left` integer, required
    - `max_emails_per_month` integer, required
    - `refundable` boolean, required
  - `lifetime_on_sale` boolean, required
  - `lifetime_plans` object[], required
    - `tier` 'tier1' | 'tier2' | 'tier3' | 'tier4', required
    - `name` string, required
    - `featured` boolean, required
    - `price_minor` integer, required
    - `emails_total` integer, required
    - `max_emails_per_month` integer, required
    - `features_of` 'starter' | 'pro' | 'scale', required
    - `max_domains` integer, nullable, required
    - `max_seats` integer, required
    - `retention_days` integer, required
    - `price_now_minor` integer, nullable, required
  - `lifetime_refund_rule` string, required
  - `viewer` object, required
    - `role` 'owner' | 'admin' | 'viewer', nullable, required
    - `can_purchase` boolean, required
    - `can_purchase_lifetime` boolean, required
  - `purchasable` object[], required
    - `tier` 'starter' | 'pro' | 'scale', required
    - `monthly_price_minor` integer, required
    - `included_emails_per_month` integer, required

## Other responses

- `401`: No usable credential was sent. Codes: missing_api_key, session_required, mfa_required.
- `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)
