---
title: "Move SaveHQ saves"
method: POST
path: "/api/v1/actions/move_saves"
tags: ["Change the board"]
---

# Move SaveHQ saves

`POST /api/v1/actions/move_saves`

## Request

- Base URL: `https://savehq.app`
- URL: `https://savehq.app/api/v1/actions/move_saves`
- Auth: HTTP bearer

Move saves into one category (replacing the category they were in), or to Uncategorized with categoryId null. Moving 20 or more at once needs the user's OK.

Needs the person's OK: 20+ saves.

## Request body

- object
  - `itemIds` string[], required: Save ids exactly as given to you.
  - `categoryId` string, nullable, required: Target category id, or null for Uncategorized.
  - `confirmToken` string: The confirmToken returned with this change's preview, once the user has agreed to it.

## Response `200`

Done (status "done", with summary and changeId), or nothing to change

- ChangeDone
  - `status` 'done' | 'no_change'
  - `summary` string
  - `changeId` string
  - `message` string

## Other responses

- `202`: Not done yet: needs the person's OK. Send the same request again with confirmToken.
- `400`: Something to fix in the request
- `401`: Missing, expired or revoked API key or token
- `429`: Over 60 requests a minute for this person; retry after 60 seconds

---

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