---
title: "Start Edit Session"
method: POST
path: "/api/v1/internal/projects/{project_id}/edit-session"
tags: ["internal", "internal-projects"]
---

# Start Edit Session

`POST /api/v1/internal/projects/{project_id}/edit-session`

Begin an admin write-mode editing session on a user's project.

Acquires the project editing lock for the admin (409 if another user holds
it) and records one EDIT_PROJECT_AS_ADMIN audit row. With ``force=true``
the holder is evicted instead of 409ing and the audit metadata records the
takeover. The client then navigates into the project with
``?admin_mode=write``.

## Path parameters

- `project_id` string, uuid, required

## Query parameters

- `force` boolean

## Response `200`

Successful Response

- ProjectLockStatus — Status of the project editing lock.
  - `is_locked` boolean, required — Whether the project is currently locked.
  - `locked_by_user_id` string, nullable — User ID of the lock holder, if locked.
  - `locked_by_display_name` string, nullable — Display name of the lock holder for UI.
  - `locked_by_avatar_color` string, nullable — Avatar color name of the lock holder for UI.
  - `is_current_user` boolean — True when the current user holds the lock.
  - `ttl_seconds` integer, nullable — Remaining TTL of the lock in seconds, if locked.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/maia-analytics/apis/maia-api.md) · [All operations](https://skmtc.net/maia-analytics/apis/maia-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/maia-analytics/maia-api/versions/ba2b8d962161/schema)
