Build with the Propper® API
Quick Start
Authenticate, then send your first document for signature.
Get an Access Token
const response = await fetch('https://auth.propper.ai/oauth2/token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
grant_type: 'client_credentials',
client_id: process.env.PROPPER_CLIENT_ID,
client_secret: process.env.PROPPER_CLIENT_SECRET,
scope: 'sign:read sign:write',
}),
});
const { access_token } = await response.json();With a token in hand, create an agreement, add recipients, and send it. Follow the Sign quickstart for the full flow.
What You Build On
Two surfaces, and the code for both is above.

REST API
Full-featured REST API for creating, sending, and managing documents. Comprehensive endpoints for all Propper features.
View examples
Webhooks
Real-time event notifications for document status changes. Build event-driven integrations that respond instantly.
View eventsWebhook Events
agreement.createdA new agreement was created
agreement.sentAgreement was sent for signature
agreement.deliveredAgreement reached a recipient
agreement.viewedRecipient viewed the agreement
agreement.recipient_signedA recipient completed signing
agreement.completedAll signatures collected
agreement.declinedRecipient declined to sign
agreement.voidedSender voided the agreement
agreement.recalledSender recalled the agreement
agreement.expiredSigning period expired
Example Webhook Payload
{
"id": "8f1a6c2e-4b7d-4a91-9c3e-2d5f8b0a7e14",
"type": "agreement.recipient_signed",
"version": 1,
"occurredAt": "2026-01-15T10:30:00Z",
"orgId": "3c9d1e77-2a45-4f68-b0c1-9e7a4d2b6f83",
"source": "sign-api",
"data": {
"orgId": "3c9d1e77-2a45-4f68-b0c1-9e7a4d2b6f83",
"agreementId": "b2e4f915-7c8a-4d13-9f60-1a8c5e3b7d92",
"title": "Service Agreement",
"status": "IN_PROGRESS",
"occurredAt": "2026-01-15T10:30:00Z",
"recipient": {
"id": "d7c3a018-5f2b-4e96-8a41-6b0d9c2e5f37",
"email": "signer@propper.ai",
"name": "Jordan Lee",
"role": "SIGNER",
"order": 1
}
}
}Authentication

Client Credentials
Best for server-to-server integrations. Create an OAuth client in your organization settings, then exchange its id and secret for an access token.
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...
Authorization Code
Best for user-facing integrations. Authenticate on behalf of Propper users.
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...Developer Resources
Where to go once the first request works.

API Reference
Complete documentation for all API endpoints.

Start Building
Create an account and an OAuth client, and make your first call.

Ready to Build?
Get your API credentials and start integrating Propper into your application today.