---
title: "Read a card's history"
method: GET
path: "/projects/{projectId}/cards/{cardId}/activity"
tags: ["Projects"]
---

# Read a card's history

`GET /projects/{projectId}/cards/{cardId}/activity`

## Request

- Base URL: `https://api.atako.ai`
- URL: `https://api.atako.ai/projects/{projectId}/cards/{cardId}/activity`
- Auth: HTTP bearer

Oldest first: who created the card, moved it, reassigned it, edited it — one line per changed field, title/description edits by one author merged within 10 minutes. Archived cards too. A card older than the history gets a synthesized `created` line.

## Path parameters

- `projectId` string, uuid, required
- `cardId` string, uuid, required

## Response `200`

- object
  - `events` ProjectCardEvent[], required
    - `id` string, required
    - `kind` 'created' | 'title' | 'description' | 'column' | 'assignee' | 'priority' | 'blocked' | 'unblocked' | 'labels' | 'checklist' | 'due' | 'archived' | 'restored', required
    - `actor` string, required
    - `actorKind` 'human' | 'agent' | 'system', required
    - `at` string, date-time, required
    - `data` object, required: `{from,to}` (title, column, assignee, priority, due), `{reason}` (blocked), `{added,removed}` (labels), `{added,removed,checked,unchecked}` (checklist).

## Other responses

- `400`: Malformed project/card/page/revision id, invalid JSON body, or validation error.
- `401`: Missing, malformed, or invalid bearer token / API key, or revoked session (SESSION_REVOKED).
- `404`: Not found, or the caller is not authorized to access this resource.

---

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