---
title: "Open a drop in the site editor (Pro/Team)"
method: GET
path: "/drops/{slug}/tree"
---

# Open a drop in the site editor (Pro/Team)

`GET /drops/{slug}/tree`

## Request

- Base URL: `https://ship.page`
- URL: `https://ship.page/drops/{slug}/tree`
- Auth: HTTP bearer

Owner-only; requires an active Pro/Team subscription, like every editor route. Call this first: the first call imports the drop's live files (up to 200 files and 20 MB in total) and starts its revision history. Publishing through the API afterwards still works and shows up as a revision.

## Response `200`

Live files, your private draft and the content_rev to publish against.

- EditorTree
  - `slug` string, required
  - `content_rev` integer, required: Changes on every publish, from the editor or the API. Publish with it as base_content_rev.
  - `cap` object, required
    - `files` integer
    - `bytes` integer
  - `live` object, required
    - `revision_id` string, required
    - `number` integer, required
    - `bytes` integer, required
    - `files` EditorFile[], required
      - `path` string, required
      - `bytes` integer, required
      - `sha256` string, required
      - `mime` string, required
  - `draft` EditorDraft, required
    - `draft_rev` integer, required: Send it back on the next draft write; it changes on every write.
    - `updated_at` string, date-time, required
    - `files` EditorFile[], required
      - `path` string, required
      - `bytes` integer, required
      - `sha256` string, required
      - `mime` string, required
  - `pending` boolean, required: A publish is still being written out.
  - `imported` boolean, required: True when this call imported the drop into the editor.

## Other responses

- `401`: Missing or invalid credential.
- `402`: Subscriber-gated feature on a free account. The body's `hint` and `upgrade_url` tell the user how to upgrade.
- `404`: Not found (also returned for resources owned by someone else).
- `409`: busy: an upload is still landing, retry after `retry-after` seconds. too_large / unsupported: the drop doesn't fit the editor; keep deploying it through the API.
- `410`: The drop has expired (expired).
- `429`: Rate limited. Back off per the Retry-After header (60s).
- `503`: Required backend unavailable. Password creation and rotation fail closed when billing cannot be verified; retry later.

## Changes

- **2026-10-20** `99aad34506e8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ship/apis/ship-page/changes/drops/:slug/tree/get.md)

---

[API](https://skmtc.dev/ship/apis/ship-page.md) · [All operations](https://skmtc.dev/ship/apis/ship-page/llms.txt) · [OpenAPI document](https://skmtc.dev/ship/apis/ship-page/revisions/99aad34506e8?raw)
