# API Changelog

This page lists the changes to the parts of the [API reference](https://manual.codecks.io/api-reference/) marked as stable or preview. See [Stability](https://manual.codecks.io/api/#stability) for what each of them promises.

## Deprecations

A deprecated item keeps working until its removal date. Until then, every response that uses it carries these headers:

- `Deprecation`: the date the item was deprecated
- `Sunset`: the day after the removal date, the first day it stops working for API tokens
- `Link`: a link to the item's row below

After the removal date, reading a removed field fails with `400 unknown_field` (or `unknown_relation`, `unknown_model`), the same as for a typo. Calling a removed action fails as well. A removed param is ignored without an error, like any param the action doesn't know.

Entries marked _internal_ were never part of the reference. They are listed because the headers above link to them. Entries marked _preview_ could be removed without the 6 months' notice.

| item                                                    | deprecated | removed after | use instead             |
| ------------------------------------------------------- | ---------- | ------------- | ----------------------- |
| `integration.disabled` field, internal                  | 2026-09-09 | 2027-09-09    | –                       |
| `_root.apps` relation, internal                         | 2026-09-04 | 2027-09-04    | –                       |
| `account.appInstallations` relation, internal           | 2026-09-04 | 2027-09-04    | –                       |
| `app` model, internal                                   | 2026-09-04 | 2027-09-04    | –                       |
| `appInstallation` model, internal                       | 2026-09-04 | 2027-09-04    | –                       |
| `workflowItem.sortOrder` field, preview                 | 2026-09-04 | 2027-09-04    | –                       |
| `file.selfHosted` field, internal                       | 2026-06-22 | 2027-06-22    | –                       |
| `cards/bulkCreate` action, internal                     | 2026-05-18 | 2026-11-18    | `cards/bulkImport`      |
| `account.seats` field, internal                         | 2026-03-30 | 2027-03-30    | –                       |
| `visionBoard.isDeleted` field, internal                 | 2026-02-06 | 2027-02-06    | –                       |
| `deck.allowedCardTypes` field, internal                 | 2025-11-27 | 2026-11-27    | –                       |
| `pinnedMilestone.autoAssignNewCard` field, internal     | 2025-10-07 | 2026-10-07    | –                       |
| `pinnedMilestone.autoAssignStartedCard` field, internal | 2025-10-07 | 2026-10-07    | –                       |
| `user.projectAccess` relation, internal                 | 2022-09-22 | 2022-12-22    | `explicitProjectAccess` |

## Changes

### 2026-09-30

- `cards/update` and `cards/bulkUpdate` reject `"deckId": null` with a validation error. A card can't be moved out of its deck, so these calls never worked; they failed with an internal error before.

### 2026-09-25

- The API leaves beta. The [API reference](https://manual.codecks.io/api-reference/) now lists the stable and preview models, fields and relations, and the actions for writing data, with their params and responses.
- `decks/create` and `decks/update` no longer take a `content` param. It only ever answered with an error.
- `decks/delete` and `milestones/delete` are stable.
- `handQueue/addCardsToHand` no longer takes an `accountId` param. It was never read, so calls that still send it keep working.
