links
Create, list, get, and delete share links.
A link is the public-facing URL someone uses to view a document or dataroom. Links carry their own access controls (password, email gating, expiry, download permission); the document or dataroom behind them just sits there.
list
papermark links list [--document <id>] [--dataroom <id>] [--limit <n>] [--cursor <id>]Lists share links. Filter by document or dataroom, or omit both for all links.
| Flag | Default | Effect |
|---|---|---|
--document <id> | none | Only links pointing at this document |
--dataroom <id> | none | Only links pointing at this dataroom |
-l, --limit <n> | 25 | Page size, 1–100 |
-c, --cursor <id> | none | Continuation cursor |
papermark links list --document doc_aBc123For dataroom-bound links specifically,
papermark datarooms links <id>
is an ergonomic equivalent that takes the dataroom ID positionally
instead of as a flag.
get
papermark links get <id>Fetches one link by ID. Includes its access controls but not the view history; use views list for that.
create
papermark links create \
(--document <id> | --dataroom <id>) \
[--name <name>] \
[--password <password>] \
[--expires <iso-8601>] \
[--email-protected] \
[--allow-download] \
[--confidential-view] \
[--watermark] \
[--watermark-text <text>] \
[--watermark-tiled <on|off>] \
[--watermark-position <pos>] \
[--watermark-rotation <deg>] \
[--watermark-color <hex>] \
[--watermark-font-size <n>] \
[--watermark-opacity <n>]Either --document or --dataroom is required (exactly one).
| Flag | Default | Effect |
|---|---|---|
--document <id> | none | Document to share |
--dataroom <id> | none | Dataroom to share |
-n, --name <name> | auto | Internal label |
--password <pw> | none | Viewer must enter this password |
--expires <iso> | never | ISO 8601 datetime, e.g. 2026-12-31T00:00:00Z |
--email-protected | off | Viewer must enter their email before viewing |
--allow-download | off | Viewer can download the file (default is view-only) |
--confidential-view | off | Reveal only a narrow band of each page at a time; rest is blurred (anti-screenshot) |
--watermark | off | Enable watermark overlay. Implied when any --watermark-* flag is set. |
--watermark-text <text> | none | Watermark text. Tokens {{email}}, {{date}}, {{time}}, {{link}}, {{ipAddress}} are interpolated per view. |
--watermark-tiled <on|off> | none | Tile the watermark across the page instead of anchoring it. |
--watermark-position <pos> | none | One of top-left, top-center, top-right, middle-left, middle-center, middle-right, bottom-left, bottom-center, bottom-right. |
--watermark-rotation <deg> | none | One of 0, 30, 45, 90, 180. |
--watermark-color <hex> | none | Text color as #RGB or #RRGGBB. |
--watermark-font-size <n> | none | Font size in points (integer, 1–96). |
--watermark-opacity <n> | none | Opacity from 0 (invisible) to 1 (fully opaque). |
The seven --watermark-* config flags must be passed together. Pass --watermark alone to enable the overlay with viewer defaults.
$ papermark links create \
--document doc_KlmN456 \
--password "open-sesame" \
--expires 2026-12-31T00:00:00Z \
--email-protected
ID: link_abcd1234
URL: https://papermark.com/view/abcd1234efghupdate
papermark links update <id> [flags]Change a link's access controls in place. The URL stays the same; viewers don't need to be re-notified. PATCH semantics: omitted flags are unchanged, but a passed value replaces the current one.
Boolean access controls are tri-state and take on or off:
| Flag | Effect |
|---|---|
-n, --name <name> | Rename the link |
--expires <iso> | Set expiry; empty string clears it |
--password <pw> | Set password; empty string clears it |
--email-protected <on|off> | Toggle email gating |
--email-authenticated <on|off> | Toggle email verification |
--allow-download <on|off> | Toggle download permission |
--allow-list <items> | Comma-separated email/domain allow list |
--deny-list <items> | Comma-separated email/domain deny list |
--watermark <on|off> | Toggle watermark overlay |
--watermark-text <text> | Update watermark text (with {{email}} / {{date}} / {{time}} / {{link}} / {{ipAddress}} tokens) |
--watermark-tiled <on|off> | Tile vs. anchored at --watermark-position |
--watermark-position <pos> | One of 9 anchor positions |
--watermark-rotation <deg> | One of 0, 30, 45, 90, 180 |
--watermark-color <hex> | #RGB or #RRGGBB |
--watermark-font-size <n> | 1–96 |
--watermark-opacity <n> | 0–1 |
--watermark-clear | Clear the existing watermark config (mutually exclusive with --watermark-*) |
--screenshot-protection <on|off> | Toggle screenshot blur |
--confidential-view <on|off> | Toggle anti-screenshot view (only a narrow band of each page renders sharp) |
Watermark config on update is PATCH-style: pass all seven --watermark-* flags together to replace the config, or pass --watermark-clear to drop it.
papermark links update link_abcd1234 --confidential-view ondelete
papermark links delete <id>Revokes the link. The URL stops working immediately; existing viewers in flight see an "expired" page on the next request.
Required scopes
| Command | Scope |
|---|---|
list, get | links.read |
create, update, delete | links.write |
For dataroom-bound links, you also need datarooms.read on the
referenced dataroom.