---
title: "Publish the draft"
method: POST
path: "/drops/{slug}/publish"
---

# Publish the draft

`POST /drops/{slug}/publish`

## Request

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

Makes the draft live at the drop's URL, or with as_new: true publishes it to a new link and keeps this drop unchanged. Safe to retry: reuse the same idempotency_key until you get a 200 or a 4xx.

## Request body

- object
  - `draft_rev` integer, required
  - `base_content_rev` integer, required: content_rev from GET /drops/{slug}/tree.
  - `title` string, nullable: Shown in the revision history; trimmed to 120 characters.
  - `idempotency_key` string, uuid, required
  - `as_new` boolean

## Response `200`

Published.

- object
  - `slug` string, required
  - `url` string, uri, required
  - `revision` object, required
    - `id` string
    - `number` integer
  - `content_rev` integer, required
  - `as_new` boolean, required

## Other responses

- `400`: bad_request or unknown_blob: upload the hashes listed in `missing`, then retry.
- `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`: content_changed: the site changed since the draft started (body has the new content_rev). draft_changed: the draft moved on. publish_in_progress: retry the same idempotency_key in 5 s.
- `410`: The drop has expired (expired).
- `413`: too_large: over 200 files or 20 MB.
- `429`: Rate limited. Back off per the Retry-After header (60s).
- `503`: publish_incomplete or backend_unavailable: retry the same idempotency_key in 5 s.

## Changes

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

[Operation history](https://skmtc.dev/ship/apis/ship-page/changes/drops/:slug/publish/post.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)
