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

# List the changes made to an entity

> Returns what happened to a task, project or area — created, When or Deadline set, completed, reopened, handed to an agent — oldest first, with who did it. The most recent `limit` changes are kept.



## OpenAPI

````yaml https://api.doers.sh/openapi.json get /v2/changes
openapi: 3.1.0
info:
  title: Doers API
  version: 2.0.0
  description: >-
    The open API of Doers: tasks, projects, areas, prioritised context and the
    day's plan.


    ## Authentication


    Every route requires a bearer token, generated from **Settings > API & MCP**
    in the app:


    ```

    Authorization: Bearer pc_…

    ```


    ## Two date fields, not to be confused


    - `when` — the **schedule**: `today`, `anytime` (Later), `someday` (Future)
    or a date.

    - `deadline` — the **commitment**, independent of the schedule.


    ## Time zone


    The server reasons in UTC and does not know yours. Send the `X-PC-Today:
    YYYY-MM-DD` header

    (or the `day` argument where it exists) so dated operations use your local
    day.


    ## MCP server


    The same token gives access to the [Model Context
    Protocol](https://modelcontextprotocol.io)

    server at `POST https://app.doers.sh/mcp`, which exposes the same operations
    as tools for Claude,

    Cursor and other compatible clients.
servers:
  - url: https://api.doers.sh
    description: Production.
security:
  - bearerAuth: []
tags:
  - name: Tasks
  - name: Projects
  - name: Areas
  - name: Headings
  - name: Comments
  - name: Realtime
  - name: Devices
  - name: Context
  - name: Plan
  - name: Sessions
  - name: Rounds
  - name: Journal
  - name: Habits
  - name: Stats
  - name: Users
  - name: Profiles
  - name: Workspaces
  - name: Access
  - name: Activity
  - name: Tokens
  - name: Referrals
  - name: Files
  - name: Connections
  - name: Collaborators
  - name: Links
  - name: Packages
  - name: Installs
  - name: Billing
  - name: Calendar
  - name: Coach
  - name: Marketplace
paths:
  /v2/changes:
    get:
      tags:
        - Comments
      summary: List the changes made to an entity
      description: >-
        Returns what happened to a task, project or area — created, When or
        Deadline set, completed, reopened, handed to an agent — oldest first,
        with who did it. The most recent `limit` changes are kept.
      operationId: listChanges
      parameters:
        - name: limit
          in: query
          required: false
          description: How many changes to return.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 100
        - name: parentId
          in: query
          required: true
          description: Id of the parent task, project or area.
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - name: parentKind
          in: query
          required: true
          description: Which kind of entity carries the comments.
          schema:
            type: string
            enum:
              - task
              - project
              - area
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
                properties:
                  changes:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        kind:
                          type: string
                          enum:
                            - created
                            - when
                            - deadline
                            - completed
                            - reopened
                            - agent-run
                            - renamed
                            - time
                            - priority
                            - project
                            - area
                            - heading
                            - assigned
                            - repeat
                            - tags
                            - description
                            - checklist-added
                            - checklist-done
                            - checklist-reopened
                            - checklist-removed
                            - file-attached
                            - file-removed
                            - shared
                            - unshared
                            - archived
                            - restored
                            - deleted
                            - run-status
                            - heading-added
                            - heading-renamed
                            - heading-removed
                            - color
                            - project-added
                            - project-removed
                        value:
                          anyOf:
                            - type: string
                            - type: 'null'
                        oldValue:
                          anyOf:
                            - type: string
                            - type: 'null'
                        actor:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                username:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                image:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                              required:
                                - id
                                - name
                                - username
                                - image
                              additionalProperties: false
                            - type: 'null'
                        via:
                          anyOf:
                            - type: object
                              properties:
                                kind:
                                  type: string
                                  enum:
                                    - client
                                    - coach
                                    - agent
                                name:
                                  type: string
                              required:
                                - kind
                                - name
                              additionalProperties: false
                            - type: 'null'
                        createdAt:
                          type: number
                          description: Epoch milliseconds.
                      required:
                        - id
                        - kind
                        - value
                        - oldValue
                        - actor
                        - via
                        - createdAt
                      additionalProperties: false
                required:
                  - changes
                additionalProperties: false
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: >-
        Invalid request — unreadable body, out-of-range field or unknown
        parameter.
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Token missing, unknown or revoked.
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Readable resource, but your role does not permit this action.
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: >-
        Resource does not exist **or** belongs to another account — the API
        never distinguishes the two.
    TooManyRequests:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Too many requests. `Retry-After` says how many seconds to wait.
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Stable machine-readable code.
            message:
              type: string
              description: Human-readable message.
            details:
              type: array
              description: Per-field detail, present on validation errors.
              items:
                type: object
                properties:
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - field
                  - message
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: A `pc_…` token generated from Settings > API & MCP.

````