# List HSA/FSA Administrators

**GET** `/administrators`

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

Directory of supported administrators for `benefit_account` connections.

## Authorization

- PartnerKey (http, bearer)

## Query parameters

- `search` (string)
  Fuzzy search by administrator name.
- `limit` (integer)
  Max results per page.
- `offset` (integer)
  Pagination offset.

## Responses

### 200

Administrators.

- `data` (object[])
  - `id` (string)
    The Sail administrator id.
  - `name` (string)
    The administrator's display name.
  - `capabilities` (object)
    What Sail can do for this administrator.
    - `supports_rpa` (boolean)
      Whether Sail connects to this administrator via automated login (RPA) rather than a direct API integration.
    - `products` ("expenses" | "benefit_account" | "account_numbers" | "identity"[])
      Products this administrator can supply data for.
  - `urls` (object)
    Public URLs associated with this administrator.
    - `main` (string)
      The administrator's main website URL.
    - `logo` (string)
      URL of the administrator's logo. Null if unavailable.
    - `forgot_password` (string)
      URL of the administrator's password-recovery page.
    - `forgot_username` (string)
      URL of the administrator's username-recovery page.
- `pagination` (object)
  Pagination metadata for this page.
  - `total` (integer)
    Total number of matching records, across all pages.
  - `limit` (integer)
    The `limit` used for this page.
  - `offset` (integer)
    The `offset` used for this page.
  - `has_more` (boolean)
    Whether additional pages remain after this one.

Example:

```json
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "capabilities": {
        "supports_rpa": true,
        "products": [
          "expenses"
        ]
      },
      "urls": {
        "main": "string",
        "logo": "string",
        "forgot_password": "string",
        "forgot_username": "string"
      }
    }
  ],
  "pagination": {
    "total": 0,
    "limit": 0,
    "offset": 0,
    "has_more": true
  }
}
```

### 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"
  }
}
```