Skip to main content
GET
List envelopes, newest first, optionally filtered by status.

Authorizations

Authorization
string
header
required

Authorization: Bearer vsk_live_…. Chosen over a bespoke X-API-KEY header because every client, proxy and log-redaction rule already knows this one. What a key may DO is its scopes — see x-scopes at the root of this document and x-required-scope on each operation. The scope list is not written here because OpenAPI reserves a requirement’s scope array for oauth2 and openIdConnect and requires it to be empty for an http scheme.

Query Parameters

limit
integer
default:25

⚠️ A VALUE OUTSIDE THE RANGE IS REFUSED, NOT CLAMPED, for the same reason GET /api/v1/templates refuses one: a caller who asks for 1000 and receives 100 has a working integration reading their whole account in ten times the requests they budgeted, and nothing anywhere says so. How many envelopes to return.

Required range: 1 <= x <= 100
cursor
string<uuid>

The next_cursor from the previous page. Omit it to start at the newest envelope. Opaque — see above. An envelope id to resume after.

status
enum<string>

⚠️ AN UNKNOWN VALUE IS REFUSED, NOT ANSWERED WITH AN EMPTY PAGE. A typo — "complete" for "completed" — would otherwise read as "you have none", which is data-shaped and is exactly the failure this refusal exists to avoid. Omit it to list every status. Restrict the list to one status.

Available options:
draft,
sent,
partially_signed,
completed,
declined,
voided,
expired

Response

A page of envelope summaries, newest first, with the cursor for the next.

The page.

data
object[]
required

This page’s envelopes.

has_more
boolean
required

⚠️ THE ANSWER, rather than something to infer. A caller inferring "more" from a full page loops one extra time on every organisation whose envelope count is an exact multiple of limit.

next_cursor
string | null
required

Pass this as cursor for the next page. Null exactly when has_more is false -- the two are computed from one expression, so a true with a null cursor cannot happen. ⚠️ OPAQUE: it is the last envelope’s id, but that is an implementation detail rather than a promise -- pass it back exactly as received and never construct one by hand.