SignSecureSignSecure Docs
Envelopes

Create Envelope

Create a new envelope. Returns a presigned POST upload configuration for uploading the PDF file directly to S3. After creating the envelope, use the returned `upload.url` and `upload.fields` to upload your PDF via a multipart form `POST` to S3. S3 enforces a 10MB file size limit at upload time. **File Constraints:** - Only PDF files are supported - Max file size: 10MB (enforced by S3) **Organization Context:** If the API key was created in an organization workspace, the envelope is automatically associated with that organization and credits are deducted from the organization's wallet.

POST
/envelopes

Create a new envelope. Returns a presigned POST upload configuration for uploading the PDF file directly to S3.

After creating the envelope, use the returned upload.url and upload.fields to upload your PDF via a multipart form POST to S3. S3 enforces a 10MB file size limit at upload time.

File Constraints:

  • Only PDF files are supported
  • Max file size: 10MB (enforced by S3)

Organization Context: If the API key was created in an organization workspace, the envelope is automatically associated with that organization and credits are deducted from the organization's wallet.

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/envelopes" \  -H "Content-Type: application/json" \  -d '{    "fileName": "string"  }'
{
  "id": "string",
  "title": "string",
  "fileName": "string",
  "status": "draft",
  "fileKey": "string",
  "upload": {
    "url": "string",
    "fields": {
      "property1": "string",
      "property2": "string"
    }
  },
  "expiresIn": 3600,
  "maxFileSize": 10485760,
  "createdAt": "2019-08-24T14:15:22Z",
  "recipientsAdded": 0
}

{
  "code": "VALIDATION_ERROR",
  "message": "fileName: Required",
  "requestId": "req_abc123",
  "timestamp": "2026-03-11T10:30:00.000Z",
  "details": {
    "validation": {
      "fieldErrors": {
        "fileName": [
          "Required"
        ]
      },
      "formErrors": [],
      "issues": [
        {
          "path": "fileName",
          "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"
}