---
title: "Update my person"
method: PATCH
path: "/me/person"
tags: ["person"]
---

# Update my person

`PATCH /me/person`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/me/person`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

Partial update of the caller's own person. A first_name or last_name in the patch is also copied onto the account display name teammates see in the directory and in group member lists: onto every one of the person's accounts when the person's own login session makes the edit, and onto the calling account alone for an API key, OAuth app or exchanged token, which act in one workspace. A non empty first_name or last_name must be at most 100 characters, contain a letter, and hold no control or invisible characters (400 invalid_name); an empty one clears it.

## Request body

- InternalDeliveryHttpHandlerUpdatePersonRequest
  - `dob` string: YYYY-MM-DD
  - `first_name` string
  - `home_address_line1` string
  - `home_address_line2` string
  - `home_city` string
  - `home_country` string
  - `home_place_id` string
  - `home_postal_code` string
  - `home_region` string
  - `last_name` string
  - `name` string
  - `primary_email` string
  - `primary_phone` string
  - `profile_image_url` string
  - `username` string: account-scoped; applied to the caller's current account

## Response `200`

OK

- InternalDeliveryHttpHandlerPersonUpdateResponse
  - `data` EnforcerV3InternalUsecasePersonUpdateResult
    - `email_changed` boolean: verified flag was cleared; re-verify needed
    - `person` EnforcerV3InternalDomainPersonPerson
      - `created_at` string
      - `dob` string
      - `email_verified` boolean
      - `first_name` string
      - `home_address_line1` string
      - `home_address_line2` string
      - `home_city` string
      - `home_country` string
      - `home_place_id` string: Home address — canonical, owned here (cybrid KYC + report-builder read it). HomePlaceID references an enforcer-geo place; the rest is a denormalized snapshot so /auth/me serves the address without a geo round-trip.
      - `home_postal_code` string
      - `home_region` string
      - `id` string
      - `last_name` string
      - `name` string: deprecated display name; prefer first_name/last_name
      - `phone_verified` boolean
      - `primary_email` string
      - `primary_phone` string
      - `profile_image_url` string
      - `updated_at` string
    - `phone_changed` boolean
  - `success` boolean

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found
- `409`: Conflict
- `500`: Internal Server Error

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
