Integrations
API: Signature Requests
Send waiver signing requests by email and track their status via the WaiverChaser REST API.
Signature requests let you send a signing link to a specific person by email. These endpoints let you create and track them. All require a valid Bearer token: listing requires packets:read, sending requires requests:write.
GET /v1/signature-requests
Returns a list of signature requests for your organization, ordered by most recently sent.
Required scope: packets:read
Query parameters:
| Parameter | Type | Description |
|---|---|---|
status |
string | Filter by status: pending, completed, or cancelled. |
limit |
integer | Max results to return. Default 50, max 200. |
Example request:
curl "https://waiverchaser.com/api/v1/signature-requests?status=pending" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Example response:
{
"data": [
{
"id": "req_abc001",
"waiverId": "waiver_111",
"locationId": null,
"signaturePacketId": null,
"recipientEmail": "[email protected]",
"status": "pending",
"sentAt": "2026-03-20T10:00:00.000Z",
"completedAt": null,
"createdAt": "2026-03-20T10:00:00.000Z"
}
],
"total": 1
}
POST /v1/signature-requests
Sends a waiver signing link to a recipient by email.
Required scope: requests:write
Plan requirement: Pro or Enterprise plan only.
Request body (JSON):
| Field | Type | Required | Description |
|---|---|---|---|
waiverId |
string | Yes | The waiver to send. Must belong to your organization. |
recipientEmail |
string | Yes | The email address to send the signing link to. |
locationId |
string | No | Use this location's branding in the email. |
Reuse behavior: If the recipient already has a pending request for the same waiver, the existing signing link is reused and a fresh email is sent rather than creating a duplicate. If they've already completed the waiver, the request returns 409 Conflict.
Example request:
curl -X POST https://waiverchaser.com/api/v1/signature-requests \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"waiverId": "waiver_111",
"recipientEmail": "[email protected]"
}'
Example response (201 Created):
{
"id": "req_abc001",
"waiverId": "waiver_111",
"recipientEmail": "[email protected]",
"signingUrl": "https://waiverchaser.com/sign/abc123token",
"reused": false
}
When a pending request was reused, the response returns 200 and "reused": true.
Error responses:
| Status | Reason |
|---|---|
400 |
Missing or invalid waiverId or recipientEmail |
403 |
Plan doesn't include signing requests, or missing requests:write scope |
404 |
Waiver not found |
409 |
Recipient has already completed this waiver |
GET /v1/signature-requests/:id
Returns a single signature request with its current status.
Required scope: packets:read
Path parameter: id (the signature request ID)
Example request:
curl https://waiverchaser.com/api/v1/signature-requests/req_abc001 \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Example response:
{
"id": "req_abc001",
"waiverId": "waiver_111",
"locationId": null,
"signaturePacketId": "pkt_abc001",
"recipientEmail": "[email protected]",
"status": "completed",
"sentAt": "2026-03-20T10:00:00.000Z",
"completedAt": "2026-03-20T11:30:00.000Z",
"createdAt": "2026-03-20T10:00:00.000Z"
}
Returns 404 if the request doesn't exist or doesn't belong to your organization.