SignSecure Sign PadSignSecure Sign Pad
Templates

Create Template

Create a reusable PDF template and receive a presigned multipart upload. Upload the PDF to the returned URL with every returned field and the file last. Template recipients are placeholders: contact details are supplied when using the template. Supply stable recipient IDs when assigning fields; omitted IDs are generated and returned by GET /templates/{templateId}. Requires templates:write; workspace keys also require templates.manage.

POST
/templates

Create a reusable PDF template and receive a presigned multipart upload. Upload the PDF to the returned URL with every returned field and the file last. Template recipients are placeholders: contact details are supplied when using the template. Supply stable recipient IDs when assigning fields; omitted IDs are generated and returned by GET /templates/{templateId}. Requires templates:write; workspace keys also require templates.manage.

Authorization

bearerAuth
AuthorizationBearer <token>

API key as Bearer token. Format: signsecure_xxxxxxxx...

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/templates" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "fileName": "string"  }'
{
  "id": "string",
  "name": "string",
  "fileName": "string",
  "fileKey": "string",
  "upload": {
    "url": "string",
    "fields": {
      "property1": "string",
      "property2": "string"
    }
  },
  "expiresIn": 3600,
  "maxFileSize": 10485760,
  "createdAt": "2019-08-24T14:15:22Z",
  "recipientsCount": 0
}

{
  "code": "VALIDATION_ERROR",
  "message": "name: Required",
  "requestId": "req_abc123",
  "timestamp": "2026-03-11T10:30:00.000Z",
  "details": {
    "validation": {
      "fieldErrors": {
        "name": [
          "Required"
        ]
      },
      "formErrors": [],
      "issues": [
        {
          "path": "name",
          "message": "Required",
          "code": "invalid_type"
        }
      ]
    }
  }
}

{
  "code": "UNAUTHORIZED",
  "message": "Invalid or missing API key",
  "requestId": "req_abc123",
  "timestamp": "2026-03-11T10:30:00.000Z"
}

{
  "code": "FORBIDDEN",
  "message": "API key is disabled",
  "requestId": "req_abc123",
  "timestamp": "2026-03-11T10:30:00.000Z"
}

{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "An internal error occurred",
  "requestId": "req_abc123",
  "timestamp": "2026-03-11T10:30:00.000Z"
}