---
title: "Fetch the signer's copy of the document"
method: GET
path: "/api/signer/document"
tags: ["signer"]
---

# Fetch the signer's copy of the document

`GET /api/signer/document`

## Request

- Base URL: `https://api.atlaswork.ai`
- URL: `https://api.atlaswork.ai/api/signer/document`
- Auth: HTTP bearer

Record access for the signer (ATL-232 / ATL-285 / ATL-286): returns the PDF of the document as it stands at this signer's turn, so they can read it outside the viewer, keep a copy, or hand it to counsel before signing. Matches the viewer: earlier signers' completed values are stamped in, and blocks still awaiting a signature (including this signer's own) are marked, so the copy is never a blank original. Stamped from the signer's own view, so a later party's values can never appear. Served same-origin rather than redirected to storage: a browser fetch that followed a 302 to private Vercel Blob CORS-preflights that host, and Blob OPTIONS is not 2xx, so Download failed on staging. Same content gate as `GET /envelope`: a participant whose turn has not arrived, a terminal envelope, and a missing renderable document are all 404. Being a plain URL (the token may ride in the `token` query param), it is safe to open in a new tab.

## Response `200`

The signer's PDF, served same-origin

## Other responses

- `401`: Missing, invalid, expired, or reissued signing link
- `404`: The link's envelope or participant no longer exists, the signer's turn has not arrived, the envelope is terminal, or no renderable document is stored

## Changes

- **2026-11-03** `d3b4f91b9bb2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/atlaswork/apis/atlas-api/changes/api/signer/document/get.md)

---

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