---
title: "Get Document Content"
method: GET
path: "/api/documents/{document_id}/content"
tags: ["documents"]
---

# Get Document Content

`GET /api/documents/{document_id}/content`

## Request

- Base URL: `https://zsign.io` (the document declares no server; this is the origin it was published from)
- URL: `https://zsign.io/api/documents/{document_id}/content`
- Auth: HTTP bearer

Stream a document's raw PDF bytes to its owner.

Built for the field-placement editor's pdf.js viewer, which needs the
sender's own upload rendered in the browser -- something no route here
offered before (signers get their copy via the token-scoped
GET /api/sign/{token}/document in signing.py; the owner had nothing).

Deliberately type-agnostic: every `documents` row this queries --
draft, template, one_off alike -- has its bytes at `gcs_path`, so
ownership is the only thing gating this route, not document_type.

## Path parameters

- `document_id` string, uuid, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zsign/apis/zsign-api.md) · [All operations](https://skmtc.dev/zsign/apis/zsign-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zsign/apis/zsign-api/revisions/a674ac4137ba?raw)
