Get document page preview

POST/api/v1/documentPagePreview

Render a saved document page as a PNG preview

Renders current saved content. The default page is the first in document order. Embedded PDF pages are unsupported. Each render overwrites a fixed per-page S3 key and returns a presigned GET URL valid for one hour.

Permission

An OAuth access token with this scope. How to get a token

documents:read
Read document summaries and hydrated document data.

Parameters

Not sure what to enter? Here’s where to find IDs.

client_idquery · stringrequired
The Client ID of your OAuth client. It’s public, and goes on every request alongside your access token. Find it in QuoteCloud under Settings → API dashboard → Manage Integrations → OAuth Clients.Length at least 1.

Request body

Sent as application/json.

documentRefstringrequired
Visible document number or Convex document ID
pageIdstring
Page ID in document page order
widthnumber
Pixel width rounded down and clamped to 100 through 2000Default 1000.

Responses

200Fresh page preview with a one-hour S3 URL.
dataobjectrequired
Fields
statusstringrequired
One of success.
documentRefstringrequired
documentIdstringrequired
pageIdstringrequired
pageIndexintegerrequired
Zero-based document page indexValue at least 0.
pageCountintegerrequired
Value at least 1.
widthintegerrequired
Value 100 to 2000.
contentTypestringrequired
One of image/png.
previewUrlstring (uri)required
expiresAtstring (date-time)required
renderedAtstring (date-time)required
400Invalid request or validation failure.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
401Missing or invalid bearer token or client ID.
errorstringrequired
error_descriptionstring
403Insufficient scope, missing add-on, usage limit, or permission denial.

Exactly one of these:

OAuthError
errorstringrequired
error_descriptionstring
ApiErrorEnvelope
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
404Requested resource was not found in the token's company.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
429Shared company API request quota exceeded. Wait before retrying.
Retry-Afterheader · integer
Minimum seconds to wait before retrying.Value at least 1.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
retryAfterSecondsintegerrequired
Value at least 1.
500Unexpected server error.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired

Rate limit

120 requests a minute per company, shared across REST, Zapier and MCP. On a 429, wait for Retry-After.