---
title: "Download one file of a drop"
method: GET
path: "/drops/{slug}/contents/{path}"
---

# Download one file of a drop

`GET /drops/{slug}/contents/{path}`

## Request

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

Returns the raw bytes as an attachment (text files as text/plain, everything else as application/octet-stream), never rendered. X-Ship-Mime carries the type the drop serves the file with.

## Response `200`

File bytes.

## Other responses

- `400`: Bad request — unparseable body, bad paths, invalid ttl/name, per-request file cap, invalid zip.
- `401`: Missing or invalid credential.
- `404`: Not found (also returned for resources owned by someone else).
- `451`: The drop was taken down (blocked).
- `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/contents/:path/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)
