API
HTTP REST API for documents, links, data rooms, visitors, and analytics.
The Papermark API is a small, deliberately boring REST surface: HTTP
- JSON + bearer tokens. 25 endpoints across 5 resources. No SDK, no build step, no client library to keep in sync.
curl https://api.papermark.com/v1/documents \
-H "Authorization: Bearer pm_live_…"What's here
| Page | Read first if… |
|---|---|
| Getting started | You want to make your first call right now |
| Authentication | You're integrating from a third-party tool (OAuth) or building CI |
| Scopes | You're picking what a token can do |
| Rate limits | You're building anything that polls or batches |
| Errors | You hit one and want to know what code means |
| Reference | You want every endpoint, request shape, response shape — generated from openapi.json |
What's in the surface
- Datarooms — create, list, get, add documents to. The primary unit for sharing a set of documents under one access boundary.
- Documents — upload, list, get, search, delete. Standalone or attached to one or more datarooms.
- Links — create, list, get, delete share links pointing at either a document or a dataroom, with passwords, expiry, email gating, download permission.
- Visitors — list visitors and their view history.
- Analytics — aggregate stats per document, link, dataroom, and per individual view.
The full spec is at /docs/openapi.json —
which is also what generates the reference pages on this site, so
nothing can drift.
What's not here
- Webhooks — planned, see Webhooks
- GraphQL — not planned. The REST surface stays the surface.
- Streaming uploads — large files use S3 presigned URLs; see Getting started
Other ways to call this API
- CLI —
papermarkon npm. Same surface from a terminal, with--jsonoutput for pipelines. - MCP server — drop the same surface into Claude or ChatGPT so an agent can act on your behalf.