---
title: "Get caller's account snapshot — user, quota, rate-limits, retention."
method: GET
path: "/v1/account"
tags: ["Account"]
---

# Get caller's account snapshot — user, quota, rate-limits, retention.

`GET /v1/account`

## Request

- Base URL: `https://api.inboxy.net`
- URL: `https://api.inboxy.net/v1/account`
- Auth: HTTP bearer

Returns one blob agents can use to decide whether an action is allowed (e.g. compare `quota.feeds.used` against `quota.feeds.limit` before calling `feed_add`). Same shape on api and mcp.

## Response `200`

Account snapshot.

- AccountSnapshot
  - `user` object, required
    - `id` string, uuid, required
    - `personal_email` string, email, required
    - `timezone` string, nullable
    - `plan` 'free' | 'paid' | 'pro', required
    - `forward_rewrite_links` boolean, required
  - `subscription` object, required: Subscription card. `name` is the customer-facing plan name; `plan_id` is the immutable plan version the account is pinned to (limits only change when an operator moves the account to a new version). `renews_at` / `cancels_at` are currently always null — not yet wired to live Stripe subscription state.
    - `name` string, required
    - `plan_id` string, required
    - `since` string, date-time, required
    - `renews_at` string, date-time, nullable, required
    - `cancels_at` string, date-time, nullable, required
  - `quota` object, required
    - `addresses` object, required
      - `used` integer, required
      - `limit` integer, required
    - `agent_addresses` object, required: Separate allowance for `agent-…` and `<domain>-…` aliases.
      - `used` integer, required
      - `limit` integer, required
    - `feeds` object, required
      - `used` integer, required
      - `limit` integer, required
    - `api_keys` object, required
      - `active` integer, required
    - `kept_messages` object, required: Per-user retention pins. 10 hard cap for all plans v1.
      - `used` integer, required
      - `limit` integer, required
    - `mail_import` object: Historic-mail imports (`POST /v1/mail/import`) this UTC calendar month against the plan's cap (`limit`). Duplicates are refunded.
      - `used` integer, required
      - `limit` integer, required
      - `period_resets_at` string, date-time, required
  - `rate_limits` object, required: Caller-visible caps so agents can self-throttle.
    - `requests_per_min` integer, required
    - `forward_per_hour` integer, required
    - `reply_per_hour` integer, required
    - `feed_add_per_hour` integer, required
    - `feed_refresh_per_hour` integer, required
  - `retention` object, required
    - `message_body_days` integer, required: Days a message body is kept before the daily retention sweep purges it. Set by the account's plan; a per-account override takes precedence. Messages pinned with mail_keep are exempt. Always a concrete window — never null.

## Other responses

- `401`: Missing or invalid bearer token.

---

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