---
title: "List card history"
method: GET
path: "/api/v2/projects/{projectId}/cards/{cardId}/history"
tags: ["Cards"]
---

# List card history

`GET /api/v2/projects/{projectId}/cards/{cardId}/history`

## Request

- Base URL: `https://davinci-app.com`
- URL: `https://davinci-app.com/api/v2/projects/{projectId}/cards/{cardId}/history`
- Auth: HTTP bearer

Returns card history events newest-first with offset pagination.

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

One page of card history events.

- CardHistoryPage
  - `history` AgileHistoryEvent[], required
    - `id` string, uuid, required
    - `project_id` string, uuid, nullable, required
    - `org_id` string, uuid, nullable, required
    - `team_id` string, uuid, nullable, required
    - `timestamp` string, date-time, nullable, required
    - `sequence` string, required: Globally monotonic card-history sequence.
    - `entity_id` string, uuid, required
    - `entity_type` 'card' | 'sprint' | 'team' | 'status', required
    - `user_id` string, uuid, nullable, required
    - `event_type` 'created' | 'deleted' | 'opened' | 'closed' | 'ownership_transfer_requested' | 'ownership_transfer_declined' | 'ownership_transferred' | 'field_updated' | 'status_changed' | 'sprint_added' | 'sprint_removed' | 'team_added' | 'team_removed' | 'card_added' | 'card_removed' | 'tag_added' | 'tag_removed' | 'user_link_added' | 'user_link_removed' | 'reference_added' | 'reference_removed' | 'card_link_added' | 'card_link_removed' | 'card_mentioned' | 'comment_added' | 'comment_updated' | 'comment_deleted', required
    - `event_data` object, required: For `field_updated`, `field` may be `resolution` and `old`/`new` carry the Markdown values.
    - `author_display_name` string, nullable, required
  - `meta` CardHistoryPageMeta, required
    - `limit` integer, required
    - `offset` integer, required
    - `hasMore` boolean, required
    - `historyHeadId` string, uuid, nullable, required: Latest committed card-history row ID; null only before a card has history.
    - `historyHeadSequence` string, nullable, required: Globally monotonic card-history sequence.

## Other responses

- `400`: Malformed request parameters or body. Agile requests may return `INVALID_PAGINATION` or `INVALID_IDEMPOTENCY_KEY`.
- `401`: No credential was supplied, or the supplied credential is malformed, expired, or revoked. A credential that is present but unusable is never downgraded to an anonymous request.
- `403`: Authenticated but not authorized. Either the acting user lacks the required resource permission, the key's scope ceiling excludes it, or the endpoint rejects this credential type (`CREDENTIAL_NOT_PERMITTED`).
- `404`: The resource does not exist in the parent named by the path, or is hidden from the caller. Absence and privacy denial are deliberately indistinguishable so project, organization, and private-team existence cannot be probed.
- `429`: Request rate exceeded, either globally or for this key.
- `500`: Unexpected server error.

## Changes

- **2026-09-15** (v2) `aa52eb4e8fd3`: 3 warning
  - added the new `ownership_transfer_declined` enum value to the `history/items/event_type` response property for the response status `200`
  - added the new `ownership_transfer_requested` enum value to the `history/items/event_type` response property for the response status `200`
  - added the new `ownership_transferred` enum value to the `history/items/event_type` response property for the response status `200`
- **2026-09-15** (v2) `67c8b8616dbb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/changes/api/v2/projects/:projectId/cards/:cardId/history/get.md)

---

[API](https://skmtc.dev/celedon-solutions/apis/davinci-public-api.md) - [All operations](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/revisions/279218ca2e8d?raw)
