---
search:
  tags:
    - People
    - PATCH
seo:
  description: >-
    Update a single person (displayName, avatarUrl, description, isVip,
    primaryEmail,… Reference for the PATCH /people/{personId} endpoint in the
    Modem API.
sidebar:
  label: Update person
  badge: PATCH
title: Update person
type: openapi-operation
---
Update a single person (displayName, avatarUrl, description, isVip, primaryEmail, connections). At least one field must be provided; omitted fields are left unchanged and null clears a nullable field.

`PATCH /people/{personId}`

**Request body** (`application/json`, required)

- `avatarUrl` (string<uri> | null)
- `connections` (object)
- `description` (string | null)
- `displayName` (string)
- `isVip` (boolean)
- `primaryEmail` (string<email> | null)

Request body example:

```json
{
  "avatarUrl": "http://example.com",
  "connections": {
    "github": "string",
    "linkedin": "string",
    "phone": "string",
    "title": "string",
    "twitter": "string",
    "website": "string"
  },
  "description": "string",
  "displayName": "string",
  "isVip": true,
  "primaryEmail": "user@example.com"
}
```

**Responses**

- `200` — OK
- `400` — Invalid request (validation failed).
- `401` — Missing or invalid API key.
- `403` — The API key does not have access to this resource.
- `404` — The requested resource was not found.
- `409` — The request conflicts with an existing resource or idempotency operation.
- `429` — Rate limit exceeded.
- `500` — Internal server error.

Response example, 200:

```json
{
  "avatarUrl": "http://example.com",
  "connections": {
    "github": "string",
    "linkedin": "string",
    "phone": "string",
    "title": "string",
    "twitter": "string",
    "website": "string"
  },
  "description": "string",
  "displayName": "string",
  "id": "string",
  "isVip": true,
  "primaryEmail": "user@example.com"
}
```
