---
title: "Update an Actor"
method: PATCH
path: "/actors/{id}"
tags: ["Actors"]
---

# Update an Actor

`PATCH /actors/{id}`

Updates an Actor.

**Warning: changing an Actor's email signs them out and unlinks their identity providers.**

If the `email` field is changed to a different address, Firezone will:

- Unlink every identity provider (Google, Okta, Entra, etc.) connected to this Actor.
- End all active sessions for this Actor, both in the admin portal and on
  connected Client devices. The user will be signed out immediately.

The Actor will need to sign in again through their identity provider, which
re-links it under the new email.

Email comparison ignores case and surrounding whitespace, so changes like
`User@Example.com` → `user@example.com` are not treated as a real change
and will not unlink identities.

**Setting `is_disabled` to `true` immediately revokes all of the Actor's
active Client tokens and portal sessions.** An Actor cannot disable itself.

## Path parameters

- `id` string, required

## Request body

- ActorUpdateRequest — PATCH/PUT body for updating an Actor. All fields are optional; omitted fields keep their current value.
  - `actor` object, required
    - `allow_email_otp_sign_in` boolean — Allow Email OTP Sign In
    - `email` string, nullable — Actor Email. Optional for service accounts.
    - `is_disabled` boolean — Whether the Actor is disabled. Setting this to `true` immediately revokes the Actor's active Client tokens and portal sessions. An Actor cannot disable itself.
    - `name` string — Actor Name
    - `type` 'account_user' | 'account_admin_user' | 'service_account' — Actor Type

## Response `200`

ActorResponse

- ActorResponse — Response schema for single Actor
  - `data` Actor — Actor
    - `allow_email_otp_sign_in` boolean — Allow Email OTP Sign In
    - `created_by_directory_id` string, uuid, nullable — Directory ID that created this actor
    - `email` string, nullable, required — Actor Email
    - `id` string, uuid — Actor ID
    - `inserted_at` string, date-time — When the actor was created
    - `is_disabled` boolean — Whether the actor is disabled
    - `last_seen_at` string, date-time, nullable — Last time the actor was seen
    - `name` string, required — Actor Name
    - `type` string, required — Actor Type
    - `updated_at` string, date-time — When the actor was last updated

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Content
- `429` — Too Many Requests

---

[API](https://skmtc.dev/firezone/apis/firezone-api.md) · [All operations](https://skmtc.dev/firezone/apis/firezone-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/firezone/firezone-api/revisions/110de2cb2283/schema)
