Get a document
Returns metadata for a single document — name, type, content type, page count, folder, and timestamps.
Authorization
bearerAuth documents.readDashboard-issued token (pm_live_...) or OAuth-issued access token.
In: header
Scope: documents.read
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://api.papermark.com/v1/documents/string"{
"id": "clxy9abc1234567890",
"object": "document",
"name": "pitch-deck-q4.pdf",
"type": "pdf",
"content_type": "application/pdf",
"url": null,
"num_pages": 12,
"folder_id": null,
"created": "2026-04-17T10:00:00.000Z",
"updated_at": "2026-04-17T10:00:00.000Z"
}{
"error": {
"code": "bad_request",
"message": "The request body is not valid JSON.",
"doc_url": "https://www.papermark.com/docs/api/errors#bad_request",
"details": null
}
}{
"error": {
"code": "unauthorized",
"message": "Missing bearer token. Include an `Authorization: Bearer <token>` header.",
"doc_url": "https://www.papermark.com/docs/api/errors#unauthorized",
"details": null
}
}{
"error": {
"code": "forbidden",
"message": "Token is missing required scope: links.write.",
"doc_url": "https://www.papermark.com/docs/api/errors#forbidden",
"details": null
}
}{
"error": {
"code": "not_found",
"message": "Link link_abcd1234 not found.",
"doc_url": "https://www.papermark.com/docs/api/errors#not_found",
"details": null
}
}{
"error": {
"code": "unprocessable_entity",
"message": "Invalid request body.",
"doc_url": "https://www.papermark.com/docs/api/errors#unprocessable_entity",
"details": {
"formErrors": [],
"fieldErrors": {
"expires_at": [
"Invalid datetime"
]
}
}
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 30s.",
"doc_url": "https://www.papermark.com/docs/api/errors#rate_limit_exceeded",
"details": null
}
}Create a document
Create a document from a previously-uploaded file (via POST /v1/documents/upload-url using `upload_id`), an external file URL (`source_url`), or a non-file source via `type` + `external_url` (`link` for any external page, `notion` for a public Notion page).
Update a document
Edit document metadata: rename it, or move it to a different team-library folder. Replacing the file content is a separate operation — use POST /v1/documents/{id}/versions.