Skip to main content
PATCH
/
v2
/
people
/
{id}
Update Person
curl --request PATCH \
  --url https://api.opennous.cloud/v2/people/{id}
: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.
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

{
  "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 customer graph, both show up in /v2/accounts/:id, and asserted facts stick until you change them.