Suggest recipients as the sender types
The recipient picker's memory. Merges two sources and de-duplicates them by lowercased email: people the caller has sent to before, read out of the recipients of documents the caller may READ (their own, plus documents a teammate shared with the workspace — a teammate's PRIVATE document never contributes), and the members of the caller's workspace, which the auth service owns and is asked for with the caller's own bearer token. Document-agnostic on purpose: the editor already knows who is on the document in front of it, so filtering out people already added is the client's job. Ranking puts email matches ahead of name matches and prefixes ahead of infixes, then someone already sent to ahead of a colleague who hasn't been, then most recently used. An empty q returns the most recently used recipients, newest first, with workspace members filling the remainder. Degrades rather than fails: if the auth service is slow or unreachable the response is still 200 with send history alone, so the field the caller is typing into never breaks. Not paginated, deliberately. limit is a ceiling, not a window: there is no cursor and no offset, and a larger limit is capped rather than paged. Send history is stored as one row per time someone was added to a document, so an offset would skip rows rather than people and a second page would mostly repeat the first after de-duplication — and the member half has no cursor to page at all. Narrow with q instead. Browsing the full contact list is a separate surface, not a page of this one. kind=group switches this same endpoint to a different resource entirely: previously-used signer-group labels (EAS-125+) instead of people, matched by label text only. There is no workspace-roster merge for this kind — a label isn't an identity — so the response is shaped differently (GroupLabelSuggestion, not RecipientSuggestion): each entry also carries the member roster from that label's most recent use, offered as one-click additions once the new group exists, never added by this endpoint itself. Same tenancy boundary as the person path: a label (and its roster) is only ever suggested from a document the caller may read.
View as MarkdownAuthorization
bearer In: header
Query Parameters
What the sender has typed. Matched case-insensitively against email and name (kind=person, the default) or against the label alone (kind=group). Omit or leave blank for the most recently used.
Maximum suggestions to return. A larger value is accepted and silently capped at 25 — the ceiling is the server's, so no maximum is declared here that would make a spec-validating client refuse to send what the server handles.
1 <= value10person (default) suggests people. group suggests previously-used signer-group labels instead — see the endpoint description.
"person"Value in
- "person"
- "group"
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/recipients/suggest"{ "suggestions": [ { "email": "[email protected]", "name": "string", "source": "history", "lastUsedAt": "2019-08-24T14:15:22Z" } ]}The tokenised signing URL for one recipient (owner only)
Returns the link a recipient received by email, so the owner can hand it over another way. Restricted to the document's owner and never included in the document payload: the token in this URL is the recipient's authority to sign, and org sharing widens read access, so exposing it on the document would let any teammate who can view the envelope sign in a recipient's name. Retrieval is written to the audit trail as signing_link_copied. For a signer-group slot (EAS-125), url/email mirror the first still-live member and members lists every member with an active (not yet declined or invalidated) link.
The caller's saved signature
The adopted signature (PNG data URL) reused for in-person signing, or null.