---
title: "Update the current account"
method: PATCH
path: "/api/v1/account"
tags: ["account"]
---

# Update the current account

`PATCH /api/v1/account`

## Headers

- `Authorization` string, required

## Request body

- object
  - `maxCallDurationSeconds` integer, nullable — Account-wide default cap on call length, in seconds, for every inbound and outbound call on the account. The effective cap on a call is the first one set in priority order — the per-call cap, then the number's cap, then this account cap — falling back to the global default when none is set. A higher-priority level overrides a lower one (it can raise or lower the limit), so this account cap applies only when neither the call nor the number sets one. Must be between 60 and 3600 seconds (1 minute to 1 hour); a value outside that range returns 400. Send null to clear it (falls back to the global default). Free accounts — accounts that have never added credit and never subscribed — are capped at 300 seconds (5 minutes), reported as `limits.maxCallDurationSeconds` on the account: a higher value sent here returns 400, and a cap inherited from another level is clamped to 300. When a cap is active, Dial warns ~30–40 seconds before the hard cut so the agent can wrap up naturally (managed and LLM self-hosted: an injected spoken prompt; audio self-hosted: a `duration_warning` protocol frame).

## Response `200`

Updated.

- Account
  - `id` string
  - `email` string, email — The account owner's address. This identifies the account and is the same for every member — it is not the caller's own address.
  - `role` 'owner' | 'member' — The calling API key's role in this account. `member` keys can do everything except delete the account.
  - `callerEmail` string, email — The caller's own address, as opposed to `email` above (the owner's). The two are identical for an owner key.
  - `createdAt` string, date-time
  - `apiKeys` ApiKey[]
    - `id` string
    - `label` string, nullable
    - `preview` string — First characters of the key, for identification.
    - `createdAt` string, date-time
  - `maxCallDurationSeconds` integer, nullable — Call-length cap in seconds; the effective cap on a call is the first one set in priority order — per-call, then number, then account — falling back to the global default. A higher-priority level overrides a lower one. Null means this level sets no cap. Free accounts (never added credit, never subscribed) are additionally capped by `limits.maxCallDurationSeconds` regardless of any configured cap.
  - `limits` AccountLimits — Guardrails applied to a free account — one that has never added credit and never subscribed. Null once the account has paid: both limits lift permanently on the first top-up or subscription. Read this instead of hardcoding the values, which can change.
    - `maxCallDurationSeconds` integer, required — Hard cap on the length of every call, in seconds. Overrides any per-call, per-number, or account cap. A higher value sent to Place a call, Update a phone number, or Update the current account returns 400; a cap inherited from another level is clamped to this value instead.
    - `maxConcurrentCalls` integer, required — Maximum number of calls in progress at once, inbound and outbound combined. An outbound call over the limit is rejected with 429 (`call_limit_reached`); an inbound call over the limit is declined.

## Other responses

- `400` — The request body failed validation.
- `401` — Missing or invalid API key.

---

[API](https://skmtc.net/getdial/apis/rest-api.md) · [All operations](https://skmtc.net/getdial/apis/rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getdial/rest-api/revisions/5f4eb30ac29a/schema)
