---
updatedAt: 2026-08-18T12:36:39.000Z
agentTools:
  projectIndex: https://bolosign-developer-docs.readme.io/llms.txt
---

# Send reminder to pending signers

Sends reminder emails/SMS to pending signers on a document. Works for both **single signature PDFs** (`documentType=PDF`) and **PDF templates** (`documentType=PDF_TEMPLATE`). Respects signing order if configured. Rate limited to 5 requests per 15 minutes per API key.

For a single signature PDF, send the public `documentId` UUID (`documentType` defaults to `PDF`). For a PDF template, send the template UUID as `documentId`, set `documentType` to `PDF_TEMPLATE`, and pass the respondent Mongo ObjectId (`createdDocumentId` from `/pdf-template-lambda`) as `responseId`.

Reminders are rejected for documents in `SIGNED`, `VOID`, `EXPIRED`, `DECLINED`, or `DELETED`.

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "BoloForms Signature API",
    "description": "Public OpenAPI for the BoloForms Signature product.\n\nAuthenticate every request with `x-api-key`. Workspace-scoped list endpoints also require `workspaceid`.\n\nIn this API, a **document** is either a single signature PDF (`documentType=PDF`) or a PDF template (`documentType=PDF_TEMPLATE`). `GET /get-documents`, `POST /void-document`, and `POST /send-reminder` all support both.\n\n`POST /pdf-template-lambda` creates / sends a template PDF (or form template) for signing.",
    "version": "2026-08-18",
    "contact": {
      "name": "BoloForms Support",
      "url": "https://www.boloforms.com",
      "email": "support@boloforms.com"
    }
  },
  "servers": [
    {
      "url": "https://sapi.boloforms.com/signature",
      "description": "Production Signature API"
    }
  ],
  "tags": [
    {
      "name": "Documents",
      "description": "List, void, and remind on documents. A document is a single signature PDF (`PDF`) or a PDF template (`PDF_TEMPLATE`)."
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/send-reminder": {
      "post": {
        "tags": [
          "Documents"
        ],
        "operationId": "sendReminder",
        "summary": "Send reminder to pending signers",
        "description": "Sends reminder emails/SMS to pending signers on a document. Works for both **single signature PDFs** (`documentType=PDF`) and **PDF templates** (`documentType=PDF_TEMPLATE`). Respects signing order if configured. Rate limited to 5 requests per 15 minutes per API key.\n\nFor a single signature PDF, send the public `documentId` UUID (`documentType` defaults to `PDF`). For a PDF template, send the template UUID as `documentId`, set `documentType` to `PDF_TEMPLATE`, and pass the respondent Mongo ObjectId (`createdDocumentId` from `/pdf-template-lambda`) as `responseId`.\n\nReminders are rejected for documents in `SIGNED`, `VOID`, `EXPIRED`, `DECLINED`, or `DELETED`.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendReminderRequest"
              },
              "examples": {
                "pdf": {
                  "summary": "Remind signers on a single signature PDF",
                  "value": {
                    "documentId": "550e8400-e29b-41d4-a716-446655440000",
                    "documentType": "PDF"
                  }
                },
                "pdfTemplate": {
                  "summary": "Remind signers on a PDF template document",
                  "value": {
                    "documentId": "550e8400-e29b-41d4-a716-446655440000",
                    "documentType": "PDF_TEMPLATE",
                    "responseId": "64f0a1b2c3d4e5f678901234"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Reminder sent to at least one pending signer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendReminderResponse"
                },
                "example": {
                  "message": "Reminder email sent successfully",
                  "documentType": "PDF",
                  "documentId": "550e8400-e29b-41d4-a716-446655440000",
                  "remindedSigners": [
                    {
                      "email": "jane.doe@example.com",
                      "name": "Jane Doe",
                      "status": "SENT"
                    }
                  ],
                  "skippedSigners": [
                    {
                      "email": "already.signed@example.com",
                      "name": "Alex Signed",
                      "status": "SIGNED",
                      "reason": "Already signed"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - cannot send reminder, or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendReminderErrorResponse"
                },
                "example": {
                  "message": "No pending signers to remind",
                  "error": "Cannot send reminder for this document",
                  "skippedSigners": [
                    {
                      "email": "already.signed@example.com",
                      "name": "Alex Signed",
                      "status": "SIGNED",
                      "reason": "Already signed"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "description": "Too many reminder requests. Limit is 5 per 15 minutes per API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "message": "Too many reminder requests. Please try again after 15 minutes.",
                  "error": "Rate limit exceeded"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "description": "API key issued from the BoloForms dashboard"
      }
    },
    "responses": {
      "Unauthorized": {
        "description": "Unauthorized - API key is missing",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "message": "API key is required"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Forbidden - Workspace is not associated with this API key",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "message": "Document does not belong to any of the eligible workspaces",
              "error": "workspaceId is not associated with this API key"
            }
          }
        }
      },
      "NotFound": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "message": "No document found with the specified documentId",
              "error": "Document not found"
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "message": "Something went wrong",
              "error": "Unexpected error"
            }
          }
        }
      }
    },
    "schemas": {
      "DocumentType": {
        "type": "string",
        "description": "Document kind. `PDF` is a single signature PDF; `PDF_TEMPLATE` is a PDF template. Both are documents in `/get-documents`, `/void-document`, and `/send-reminder`. For void/reminder on a template, pair `PDF_TEMPLATE` with `responseId`.",
        "enum": [
          "PDF",
          "PDF_TEMPLATE"
        ],
        "example": "PDF",
        "maxLength": 12,
        "minLength": 3,
        "pattern": "^(PDF|PDF_TEMPLATE)$"
      },
      "MongoObjectId": {
        "type": "string",
        "description": "MongoDB ObjectId (24 hex characters). Returned as `createdDocumentId` from `POST /pdf-template-lambda`.",
        "pattern": "^[a-fA-F0-9]{24}$",
        "minLength": 24,
        "maxLength": 24,
        "example": "64f0a1b2c3d4e5f678901234"
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message",
            "example": "Invalid receiver data: email is required",
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^[\\s\\S]{0,1024}$"
          },
          "error": {
            "type": "string",
            "description": "Detailed error information",
            "example": "email is required",
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^[\\s\\S]{0,1024}$"
          }
        },
        "additionalProperties": false
      },
      "SendReminderRequest": {
        "type": "object",
        "required": [
          "documentId"
        ],
        "properties": {
          "documentId": {
            "type": "string",
            "description": "Public documentId of the document to remind. For a single signature PDF this is the PDF UUID. For a PDF template this is the template UUID.",
            "minLength": 1,
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9_-]{1,128}$"
          },
          "documentType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentType"
              }
            ],
            "description": "`PDF` (single signature PDF) or `PDF_TEMPLATE` (PDF template). Defaults to `PDF` when `responseId` is omitted, and to `PDF_TEMPLATE` when `responseId` is present."
          },
          "responseId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MongoObjectId"
              }
            ],
            "description": "Required for `PDF_TEMPLATE`. Mongo ObjectId returned as `createdDocumentId` from `POST /pdf-template-lambda` and `templateRespondents` array in the response of `GET /get-documents`. Not supported for a single signature PDF (`documentType=PDF`)."
          }
        },
        "additionalProperties": false
      },
      "ReminderSigner": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "example": "jane.doe@example.com",
            "minLength": 3,
            "maxLength": 320,
            "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
          },
          "name": {
            "type": "string",
            "example": "Jane Doe",
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^[\\s\\S]{0,1024}$"
          },
          "status": {
            "type": "string",
            "example": "SENT",
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^[\\s\\S]{0,1024}$"
          },
          "reason": {
            "type": "string",
            "description": "Why the signer was skipped. Only present on skippedSigners.",
            "example": "Already signed",
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^[\\s\\S]{0,1024}$"
          }
        },
        "additionalProperties": false
      },
      "SendReminderResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "example": "Reminder email sent successfully",
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^[\\s\\S]{0,1024}$"
          },
          "documentType": {
            "$ref": "#/components/schemas/DocumentType"
          },
          "documentId": {
            "type": "string",
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "maxLength": 36,
            "minLength": 36,
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "format": "uuid"
          },
          "responseId": {
            "type": "string",
            "description": "Present when reminding a PDF template document",
            "example": "64f0a1b2c3d4e5f678901234",
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[a-fA-F0-9]{24}$"
          },
          "remindedSigners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReminderSigner"
            },
            "maxItems": 1000
          },
          "skippedSigners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReminderSigner"
            },
            "maxItems": 1000
          }
        },
        "additionalProperties": false
      },
      "SendReminderErrorResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ErrorResponse"
          },
          {
            "type": "object",
            "properties": {
              "skippedSigners": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ReminderSigner"
                },
                "maxItems": 1000
              }
            },
            "additionalProperties": false
          }
        ]
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  }
}
```