---
title: "Start edit pages session"
method: POST
path: "/api/v1/annotations/{annotationID}/edit_pages/start"
tags: ["Annotation"]
---

# Start edit pages session

`POST /api/v1/annotations/{annotationID}/edit_pages/start`

Starts editing the annotation and all its child documents (the documents into which the original document was split).
The parent annotation must be in the `to_review`, `split` or `reviewing` state (for the calling user). This call
will "lock" the parent and child annotations from being edited.

It returns some basic information about the parent annotation and a list of its children. Children to which
the current user does not have rights contains only limited information.

If the parent annotation cannot be "locked", an error is returned. If the child annotation cannot be locked, it is
skipped and sent in a response with value `started=False`.

## Path parameters

- `annotationID` integer, required

## Response `200`

Edit pages session started successfully

- object
  - `parent_annotation` string, uri — URL of the parent annotation
  - `children` object[] — List of child annotation objects
    - `parent_pages` EditPage[] — Pages from parent used in this child
      - `page` string, uri, required — Page URL
      - `rotation_deg` 0 | 90 | 180 | 270 — Rotation to apply in degrees
      - `deleted` boolean — Indicates whether the page is marked as deleted.
    - `queue` string, uri, nullable — Queue URL for the child annotation
    - `status` string, nullable — Current status of the child annotation
    - `url` string, uri, nullable — URL of the child annotation
    - `original_file_name` string — File name of the original document
    - `values` object — Edit values to be propagated to newly created annotations. Keys must be prefixed with "edit:", e.g. `"edit:document_type"`. [Schema Datapoint description](/guides/queue-schema#schema-content) describes how it is used to initialize datapoint value.
    - `started` boolean — Whether this child was started for review or not
  - `session_timeout` string — Session timeout duration format `"HH:MM:SS"`

## Other responses

- `400` — Invalid input data.
- `401` — The username/password is invalid or token is invalid (e.g. expired).
- `403` — Insufficient permission, missing authentication, invalid CSRF token and similar issue.
- `404` — The specified resource was not found.
- `409` — Conflict
- `413` — Payload too large (especially for files uploaded).
- `429` — Request rate is too high, wait before sending more requests. See [Rate Limiting](/guides/overview#rate-limiting) for more details.
- `500` — Server failure while processing the request.
- `502` — Invalid response from the upstream server.
- `503` — We're temporarily offline for maintenance. Please try again later.
- `504` — Upstream server could not complete the request in time.

---

[API](https://skmtc.dev/rossum/apis/rossum-api.md) · [All operations](https://skmtc.dev/rossum/apis/rossum-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rossum/rossum-api/revisions/f1b5a910991d/schema)
