> ## Documentation Index
> Fetch the complete documentation index at: https://docs.opennous.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Person

> Assert claim values directly on a person. Asserted claims are sticky — the derivation engine will not overwrite them from later observations.

`:id` may be an entity UUID, email, domain, or LinkedIn URL. Identifier fields on the body attach to the entity. Every other field is asserted as a claim.

```bash theme={null}
curl -X PATCH https://api.opennous.cloud/v2/people/sarah@acme.com \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "job_title": "Chief Revenue Officer",
    "phone": "+1-415-555-0100"
  }'
```

## Body

Any subset of identifier fields (`email`, `linkedin_url`, `linkedin_member_id`, `hubspot_id`, `pipedrive_id`, `apollo_id`, `attio_id`) plus any claim fields (`first_name`, `last_name`, `job_title`, `company`, `seniority`, `department`, `city`, `country`, `phone`, `pipeline_stage`, etc.).

To clear a claim, pass `null` for its value. The claim is invalidated rather than deleted, so prior values remain auditable.

## Response

```json theme={null}
{
  "person": {
    "id": "a1b2c3d4-...",
    "entity_id": "a1b2c3d4-...",
    "job_title": "Chief Revenue Officer",
    "phone": "+1-415-555-0100",
    "...": "..."
  },
  "claims_written": 2
}
```

Both `id` and `entity_id` are returned and always carry the same value (the entity UUID). `GET /v2/people` returns only `id`.

## The write model in one line

Observations record what happened. Assertions through `POST` and `PATCH` declare what is true now. Both land in the same context graph, both show up in `/v2/accounts/:id`, and asserted facts stick until you change them.
