Obtain an OAuth access token with the agreement_write scope via the Authorization Code or JWT flow; retrieve the user's API access point from GET /api/rest/v6/baseUris.
Upload your document via POST to /api/rest/v6/transientDocuments (multipart/form-data) and capture the transientDocumentId from the response.
POST to /api/rest/v6/agreements with an agreementInfo body containing the transientDocumentId, participantSetsInfo (each with memberInfos and role such as SIGNER), signatureType, and state set to IN_PROCESS.
Capture the agreementId from the response for status polling.
Retrieve the signed document via GET /api/rest/v6/agreements/{agreementId}/combinedDocument once the agreement status is SIGNED.
Known gotchas
Transient documents expire after one hour; upload them immediately before creating the agreement rather than pre-staging.
The API access point URL varies by shard (e.g., api.na1.adobesign.com vs api.eu1.adobesign.com); always derive it from /baseUris rather than hardcoding a region.
Adobe Sign enforces rate limits per OAuth app; bulk sending at high volume requires a dedicated enterprise plan and pre-approval.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp