---
title: "Get a board's activity feed"
method: GET
path: "/api/board/{boardId}/activity"
tags: ["Board"]
---

# Get a board's activity feed

`GET /api/board/{boardId}/activity`

## Request

- Base URL: `https://core-api.getaptly.com`
- URL: `https://core-api.getaptly.com/api/board/{boardId}/activity`
- Auth: one of:
  - API key in header `x-token`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/getaptly/apis/aptly-api/docs/api/board/:boardId/activity/get.ts> (a function with typed inputs; its response is checked against the schema)

One merged, newest-first feed for this board: card and board-configuration changes,
automation log rows (runs and configuration edits) and card comments. Every read is
pinned to this board and bounded in time (the last 92 days, or 365 when `cardId` is given).
Page with `before`: pass the `nextCursor` of the previous page; it is `null` on the last page.
Change values are shortened (long text is clipped, large structures summarised as
`[N items]`), and automation configuration snapshots are not included.
Webhook URL credentials are masked in both current and previous change values.
Audit rows containing both comments and other changes match both type filters. When
both are requested, each mixed row appears once as a change item with comments included.
Unrelated query parameters (including `x-token` authentication and cache-busters)
are ignored when validating the activity filters.
Needs a credential that can administer the board's configuration (an API key, or an
internal partner token with `board-admin`); delegate tokens are refused even when
an `x-token` is also supplied in a header or query parameter.

## Path parameters

- `boardId` string, required

## Query parameters

- `types` string
- `cardId` string
- `before` string
- `limit` integer

## Response `200`

A page of activity.

- object
  - `data` object
    - `boardUuid` string
    - `types` string[]
    - `since` string, date-time: Start of the window the feed covers.
    - `nextCursor` string, nullable
    - `items` object[]
      - `id` string, required
      - `type` 'change' | 'automation' | 'comment', required
      - `createdAt` string, date-time, required
      - `actor` object, required
        - `userId` string, nullable
        - `name` string, nullable
      - `cardId` string
      - `cardName` string
      - `scope` 'card' | 'board': change items only.
      - `action` string: change items only: created, edited, archived, reopened or deleted.
      - `changes` object[]: change items only.
        - `field` string
        - `fieldName` string
        - `fieldType` string
        - `display` string
        - `value` unknown
        - `previous` unknown
      - `comments` object[]: Present on comment items and mixed change items when comments are requested. `removed` marks a deleted comment.
        - `id` string
        - `text` string
        - `author` string
        - `removed` boolean
      - `kind` 'run' | 'configuration': automation items only.
      - `automationType` string
      - `automationUuid` string
      - `automationName` string
      - `description` string
      - `success` boolean
      - `error` string

## Other responses

- `400`: Invalid query (unknown `types` value, bad `limit`, malformed `before`).
- `401`: Invalid or missing credential.
- `403`: The credential cannot administer this board.
- `404`: Board not found.

---

[API](https://skmtc.dev/getaptly/apis/aptly-api.md) - [All operations](https://skmtc.dev/getaptly/apis/aptly-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getaptly/apis/aptly-api/revisions/75c367e0b8e5?raw)
