---
title: "Get history"
method: GET
path: "/people/{personId}/history"
tags: ["People"]
---

# Get history

`GET /people/{personId}/history`

## Request

- Base URL: `https://api.modem.dev/v1`
- URL: `https://api.modem.dev/v1/people/{personId}/history`
- Auth: HTTP bearer

Get change history for a person. Returns audit trail of modifications with user attribution.

## Path parameters

- `personId` string, required

## Query parameters

- `changedByFilter` string[]: Filter by actor type. Defaults to user and agent changes (excludes system).
- `limit` integer: Maximum number of history records to return (default 20, max 50).

## Response `200`

OK

- object
  - `history` object[], required
    - `changedAt` string, date-time
    - `changedBy` 'agent' | 'system' | 'user', required: Actor type that initiated the change: system (internal/cascading), agent (AI), or user (manual).
    - `changes` object, required
    - `id` union, required
      - string, uuid
      - string, uuid
    - `operation` 'DELETE' | 'INSERT' | 'UPDATE', required: Type of database operation that triggered the history record.
    - `previousValues` object, nullable, required
    - `user` object, nullable, required
      - `id` union, required
        - string
        - string
      - `image` string, nullable, required: Optional URL to the user avatar image.
      - `name` string, required: Human-readable name of the user.
  - `mergedInto` object, nullable, required
    - `id` string, required
    - `mergedAt` string, date-time
    - `targetPerson` object, nullable, required
      - `id` string, required
      - `name` string, required
    - `user` object, nullable, required
      - `id` union, required
        - string
        - string
      - `image` string, nullable, required: Optional URL to the user avatar image.
      - `name` string, required: Human-readable name of the user.
  - `merges` object[], required
    - `id` string, required
    - `mergedAt` string, date-time
    - `sourcePersons` object[], required
      - `id` string, required
      - `name` string, required
    - `user` object, nullable, required
      - `id` union, required
        - string
        - string
      - `image` string, nullable, required: Optional URL to the user avatar image.
      - `name` string, required: Human-readable name of the user.
  - `totalCount` number, required

## Other responses

- `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.
- `429`: Rate limit exceeded.
- `500`: Internal server error.

---

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