List documents with bounded cursor pagination
owner_email and source cannot be combined. Documents are newest first by creation time unless sort_by=statusChangedAt is supplied. Status time ordering requires the statusChangedAt backfill for historical rows. Residual filters can return short or empty pages with hasMore=true; continue with meta.nextCursor until hasMore=false.
Permission
An OAuth access token with this scope. How to get a token
documents:readRead document summaries and hydrated document data.
Parameters
Not sure what to enter? Here’s where to find IDs.
client_idquery · stringrequiredThe 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.
statusquery · stringOnly documents with this status.One of
sent, opened, signing, signing_complete, part_paid, paid, accepted, lost, canceled, creating, revising, workflow_review_requested, workflow_review_accepted, pending_sent, scheduled_send, delivery_delayed, delivered, alert, email_complained, email_bounced, send_failed, expired, custom, template, system_template. owner_emailquery · string (email)Only documents owned by this QuoteCloud user. Can’t be combined with
source.sourcequery · stringOnly documents created this way. Can’t be combined with
owner_email.One of blank, document, template, import, salesforce, sabre, tramada, tres, amadeus, zapier, travelAPI, graphql, legacyDocument. created_afterquery · string (date-time)Only documents created after this date, for example
2026-01-31T00:00:00Z.status_changed_afterquery · stringStatus changed strictly after this ISO date or epoch milliseconds. Alias statusChangedAfter.
sort_byquery · stringOrdering field. Alias sortBy.One of
createdAt, statusChangedAt. Default createdAt. created_beforequery · string (date-time)Only documents created before this date, for example
2026-01-31T00:00:00Z.cursorquery · string or nullWhere the next page starts. Leave this out for the first page, then send
meta.nextCursor from the previous response.limitquery · integerHow many results to return per page, up to 100.Default
25. Value 1 to 100. Responses
200Document page.
dataarray of objectrequiredItem fields
idstringrequireddocumentRefstringrequireddisplayIdintegerrequiredtitlestringrequiredstatusstringrequiredsourcestringrequiredownerEmailstringrequiredcreatedAtstring (date-time)requiredstatusChangedAtstring (date-time)updatedAtstring (date-time)requiredhasMorebooleanrequirednextCursorstringrequiredmetaobjectrequiredFields
hasMorebooleanrequirednextCursorstringrequired400Invalid request or validation failure.
dataobjectrequiredFields
statusstringrequiredAlways
error. messagestringrequiredcodestringdocumentRefstringassetGenerationIdstringerrorsarray of objectItem fields
fieldstringrequiredmessagestringrequired401Missing or invalid bearer token or client ID.
errorstringrequirederror_descriptionstring403Insufficient scope, missing add-on, usage limit, or permission denial.
Exactly one of these:
OAuthError
errorstringrequirederror_descriptionstringApiErrorEnvelope
dataobjectrequiredFields
statusstringrequiredAlways
error. messagestringrequiredcodestringdocumentRefstringassetGenerationIdstringerrorsarray of objectItem fields
fieldstringrequiredmessagestringrequired429Shared company API request quota exceeded. Wait before retrying.
Retry-Afterheader · integerMinimum seconds to wait before retrying.Value at least 1.
dataobjectrequiredFields
statusstringrequiredAlways
error. messagestringrequiredretryAfterSecondsintegerrequiredValue at least 1.
Rate limit
120 requests a minute per company, shared across REST, Zapier and MCP. On a 429, wait for Retry-After.