---
title: "Land Branch"
method: POST
path: "/api/v1/apps/{app_id}/branches/{branch_id}/land"
tags: ["apps"]
---

# Land Branch

`POST /api/v1/apps/{app_id}/branches/{branch_id}/land`

## Request

- Base URL: `https://api.netter.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.netter.ai/api/v1/apps/{app_id}/branches/{branch_id}/land`
- Auth: none declared

Fast-forward main to this branch's head.

The body is optional so a bodyless POST behaves exactly as before. Pass
`expected_head_version_id` (the head the diff modal showed) to have the
land refused with `branch_head_moved` if the branch moved under the user.

## Path parameters

- `app_id` string, uuid, required
- `branch_id` string, uuid, required

## Request body

- LandBranchRequest: Optional body for land. `expected_head_version_id` is the branch head the caller reviewed in the diff modal. Sending it turns land into a checked operation: if a concurrent build advanced the branch in between, the land is refused with `branch_head_moved` instead of putting unreviewed changes on main. Omitting it (or the whole body) preserves the original behaviour.
  - `expected_head_version_id` string, uuid, nullable

## Response `200`

Successful Response

- AppBranchRead
  - `action_bindings` AppActionManifest
    - `schema_version` 1
    - `bindings` AppActionBinding[]
      - `alias` string, required
      - `action_id` string, uuid, required
      - `revision_id` string, uuid, required
  - `id` string, uuid, required
  - `app_id` string, uuid, required
  - `name` string, required
  - `kind` string, required
  - `status` string, required
  - `error_message` string, nullable
  - `chat_id` string, uuid, nullable, required
  - `head_version_id` string, uuid, nullable, required
  - `base_version_id` string, uuid, nullable, required
  - `created_by` string, uuid, required
  - `landed_at` string, date-time, nullable, required
  - `closed_at` string, date-time, nullable, required
  - `is_behind` boolean

## Other responses

- `422`: Validation Error

## Changes

> 63 revisions in range; 1 not diffed.

- **2026-10-02** `11cfdb04b2ca`: 1 info
  - added the optional property `action_bindings` to the response with the `200` status
- **2026-08-28** `eed6fb164abd`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/netter/apis/dmi-backend/changes/api/v1/apps/:app_id/branches/:branch_id/land/post.md)

---

[API](https://skmtc.dev/netter/apis/dmi-backend.md) - [All operations](https://skmtc.dev/netter/apis/dmi-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/netter/apis/dmi-backend/revisions/8774ff8257cc?raw)
