# Get Contribution Summary

**GET** `/users/{user_id}/accounts/{account_id}/contributions/summary`

Base URL: `https://live.savewithsail.com/api/v1`

Year-to-date contribution total, applicable IRS limit, and remaining headroom, the "help users max out their HSA" use case in one call. Requires the `benefit_account` scope and product.

## Authorization

- PartnerKey (http, bearer)

## Path parameters

- `user_id` (string, required)
  The Sail user id.
- `account_id` (string, required)
  The Sail account id.

## Query parameters

- `tax_year` (integer)
  Defaults to the current tax year.

## Responses

### 200

Contribution summary.

- `account_id` (string)
  The Sail account id.
- `tax_year` (integer)
  The tax year this summary covers.
- `ytd_total` (number<float>)
  Total contributions made so far this tax year.
- `annual_limit` (number<float>)
  Applicable IRS limit for the account holder's coverage tier.
- `remaining` (number<float>)
  Headroom remaining before the annual limit is reached.
- `coverage_tier` ("self_only" | "family" | "unknown")
  The account holder's HSA coverage tier, which determines the applicable IRS limit.
- `as_of` (string<date-time>)
  When this summary was computed.

Example:

```json
{
  "account_id": "string",
  "tax_year": 2026,
  "ytd_total": 2150,
  "annual_limit": 4400,
  "remaining": 2250,
  "coverage_tier": "self_only",
  "as_of": "1970-01-01T00:00:00.000Z"
}
```

### default

Standard error envelope covering 400, 401, 403, 404, 429, and 500.

- `error` (object)
  The error detail.
  - `code` (string)
    Machine-readable code, e.g. `not_found`, `token_scope_mismatch`, `product_not_enabled`, `insufficient_key_scope`, `insufficient_token_scope`, `user_token_required`, `user_token_expired`, `invalid_user_token`, `invalid_key_configuration`, `connection_not_reconnectable`, `rate_limited`.
  - `message` (string)
    Human-readable error message. May change, so match on `error.code` instead.
  - `param` (string)
    The request field that caused the error, when applicable. Null otherwise.

Example:

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "param": "string"
  }
}
```