---
title: "Request a change"
method: POST
path: "/change-requests"
---

# Request a change

`POST /change-requests`

## Request

- Base URL: `https://api.slite.com/v1`
- URL: `https://api.slite.com/v1/change-requests`
- Auth: HTTP bearer

Open a change request: an agent reads the docs you name, turns your
command into proposed changes, and leaves them for review. Nothing is
applied until a reviewer approves it in Slite. The response comes back as
soon as the request is queued, with `status: "processing"` and the `url`
to hand to the reviewers.

**Beta:** change requests are not yet available to every workspace. Where
they are not enabled, calls fail with `403` and the error id
`change-request/not-enabled`: contact support to have them enabled.

## Request body

- CreateChangeRequestBody
  - `command` string, required: What to change, in plain words — or the exact content to write, in markdown or sliteml, which the agent reproduces verbatim.
  - `editableNoteIds` string[], required: The docs the request may change or add sub-docs under. You must be able to edit each of them.
  - `sourceRoots` ChangeRequestSourceRoot[]: Where the agent may search. Without roots it does not search at all and works from the command and the editable docs only.
    - `kind` 'note' | 'root' | 'sourceType', required
    - `value` string, required
  - `audienceUserIds` string[]: Who reviews the request besides you. Each of them must be able to read every editable doc and every doc root.
  - `assigneeUserId` string: Who the request is assigned to: you or a member of the audience who can edit every editable doc. Defaults to you; required when your account cannot review change requests, such as a service account.
  - `title` string: The request's title until the agent names it.

## Response `201`

Created

- ChangeRequestResponse
  - `createdAt` string, date-time, required
  - `audienceUserIds` string[], required
  - `assigneeUserId` string, nullable, required
  - `threadId` string, nullable, required: The agent thread behind the request; null if it never started.
  - `url` string, required: The change request in the app, to hand to the people who review it.
  - `status` 'processing' | 'pending_review' | 'completed' | 'no_changes' | 'failed', required
  - `id` string, required
  - `retryAfterSeconds` number, double: While `processing`: when to check again.

## Other responses

- `401`: Invalid authentication
- `402`: Your workspace has run out of AI credits
- `403`: Change requests are not enabled for this workspace
- `422`: Input validation error
- `429`: Rate limitation error, or too many change requests in progress
- `default`: Unexpected error

## Changes

- **2026-10-16** `7b61189405cb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/slite/apis/public-slite-api/changes/change-requests/post.md)

---

[API](https://skmtc.dev/slite/apis/public-slite-api.md) - [All operations](https://skmtc.dev/slite/apis/public-slite-api/llms.txt) - [OpenAPI document](https://skmtc.dev/slite/apis/public-slite-api/revisions/2925272c1935?raw)
