SignSecureSignSecure Docs
Templates

Create Template

Create a reusable document template. Returns a presigned upload URL. **File Constraints:** - Only `application/pdf` is supported - Max file size: 10MB

POST
/templates

Create a reusable document template. Returns a presigned upload URL.

File Constraints:

  • Only application/pdf is supported
  • Max file size: 10MB

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://api.signsecure.com/api/v1/templates" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "fileName": "string",    "fileType": "application/pdf",    "fileSize": 0  }'
{
  "id": "string",
  "name": "string",
  "fileName": "string",
  "fileKey": "string",
  "uploadUrl": "string",
  "expiresIn": 3600,
  "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"
}