---
title: "PUT /account/{account_id}"
method: PUT
path: "/account/{account_id}"
---

# PUT /account/{account_id}

`PUT /account/{account_id}`

Updates an existing account with new information

## Path parameters

- `account_id` string, required

## Request body

- AccountUpdateRequest
  - `id` string, required — The account identifier
  - `email` string — The email associated with the account
  - `phone` string — The phone number on file for the account in E.164 format (e.g. +14155550123)
  - `first_name` string — The account holder's first name
  - `last_name` string — The account holder's last name
  - `username` string — The username associated with the account
  - `expected_countries` string[] — Countries the account is expected to legitimately operate from, as ISO 3166-1 alpha-2 codes. A non-empty list replaces the stored list; an empty or omitted list leaves the stored list unchanged.
  - `metadata` object — Additional metadata about the account

## Response `200`

Updated account information

- AccountResponse
  - `project_id` string — The ID of the project
  - `request_id` string — The ID of the request
  - `account` object
    - `id` string — The account identifier
    - `email` string — The email associated with the account
    - `phone` string — The phone number stored for the account in E.164 format
    - `first_name` string — The account holder's first name
    - `last_name` string — The account holder's last name
    - `username` string — The username stored for the account
    - `expected_countries` string[] — Countries the account is expected to operate from (ISO 3166-1 alpha-2 codes)
    - `metadata` object — Additional metadata about the account
    - `group` string — Groups must be enabled for the project to use this field. See [Multi Accounting Groups](/integration/advanced/multi-accounting-groups) for more information.
  - `num_sessions` integer — Number of sessions associated with this account
  - `first_seen` string, date-time — Timestamp when the account was first seen
  - `last_seen` string, date-time — Timestamp when the account was last seen
  - `last_session` string — ID of the last session
  - `decision` string — Decision about the account authenticity
  - `account_score` number, float — Overall account risk score
  - `bot` number, float — Bot detection score
  - `multiple_accounts` number, float — Multiple accounts detection score
  - `risk_signals` number, float — Risk signals score
  - `accounts_linked` integer — Number of accounts linked to this account
  - `country` string — Country code of the account
  - `lists` string[] — Lists the account belongs to
  - `unique_devices` object
    - `1_day` integer — Number of unique devices in the last day
    - `7_day` integer — Number of unique devices in the last 7 days
  - `unique_networks` object
    - `1_day` integer — Number of unique networks in the last day
    - `7_day` integer — Number of unique networks in the last 7 days
  - `email` object
    - `email` string — Email address
    - `disposable` boolean — Whether the email is disposable
    - `personal` boolean — Whether the email is personal
    - `valid` boolean — Whether the email is valid
    - `domain_type` 'relay' | 'personal' | 'disposable' | 'business' | 'government' | 'education' | 'invalid' | 'not_active' — The type of domain. See [Domain Types](/signals-scores/email#domain-types) for details.
    - `email_score` number, float — Email risk score from -1 (most trustworthy) to 1 (most risky)
    - `trust_signals` string[] — Array of trust signals detected for this email. See [Trust Flags](/signals-scores/email#trust-flags) for descriptions.
    - `risk_signals` string[] — Array of risk signals detected for this email. See [Risk Flags](/signals-scores/email#risk-flags) for descriptions.
    - `num_account_from_domain` integer — Number of accounts from the same apex domain seen in your project. Capped at 1000. See [Domain Account Velocity](/signals-scores/email#domain-account-velocity) for details.
  - `risk_signal_average` object
    - `device_risk` number, float — Device risk score
    - `proxy` number, float — Proxy detection score
    - `vpn` number, float — VPN detection score
    - `datacenter` number, float — Datacenter detection score
    - `tor` number, float — Tor detection score
    - `spoofed_ip` number, float — Spoofed IP detection score
    - `recent_fraud_ip` number, float — Recent fraud IP detection score
    - `impossible_travel` number, float — Impossible travel detection score
    - `device_network_mismatch` number, float — Device network mismatch score
    - `location_spoofing` number, float — Location spoofing detection score

## Other responses

- `400` — Account not found or invalid request

---

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