---
title: "Update mutable mailbox settings (e.g., default signature)"
method: PATCH
path: "/v1/email/accounts/{account_id}"
tags: ["email"]
---

# Update mutable mailbox settings (e.g., default signature)

`PATCH /v1/email/accounts/{account_id}`

Partial-update endpoint. Only fields present in the request body
are applied — omitted keys leave the row unchanged. Explicit
``null`` on ``default_signature_html`` clears the signature.

Rebind path: when ``agent_id`` or ``team_id`` is present in the body,
the mailbox binding is updated in place (no OAuth re-run). At most one
of the two may be set (the schema validator enforces it); an explicit
``null`` on a present key clears that side of the binding.

## Path parameters

- `account_id` string, uuid, required

## Request body

- UpdateMailboxAccountRequest — Partial update for a connected mailbox. Mutable today: the per-account default signature (ENG-417) and the agent/team binding (rebind without re-running OAuth). Future fields (e.g., display name overrides) slot in here without a new endpoint. The binding is updated only when ``agent_id`` or ``team_id`` is present in the request body (``model_fields_set`` sentinel). At most one may be set per request — a mailbox binds to either a single agent or a team. Explicit ``None`` on a present key clears that side of the binding.
  - `default_signature_html` string, nullable
  - `agent_id` string, uuid, nullable
  - `agent_revision_id` string, uuid, nullable
  - `team_id` string, uuid, nullable
  - `team_revision_id` string, uuid, nullable

## Response `200`

Successful Response

- MailboxAccountResponse — One row in the org's connected-mailbox list.
  - `id` string, uuid, required
  - `address` string, required
  - `provider` 'gmail' | 'microsoft', required — Mailbox-native providers we connect to via Nylas in v1. Both providers ride the same `MailboxConnector` (Nylas implementation). Pattern B (brand-domain transactional sending: SendGrid / SES / Resend) is v2 and lives in a separate connector.
  - `status` 'pending' | 'active' | 'paused' | 'error' | 'needs_reauth' | 'retired', required
  - `agent_id` string, uuid, nullable, required
  - `agent_revision_id` string, uuid, nullable
  - `team_id` string, uuid, nullable
  - `team_revision_id` string, uuid, nullable
  - `external_account_id` string, nullable, required
  - `capabilities` string[]
  - `default_signature_html` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `404` — Resource not found
- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/versions/888bdd5c076e/schema)
