Skip to main content
POST
/
v1
/
uploads
// POST https://api.signatureapi.com/v1/uploads
// X-API-Key: key_test_...
// Content-Type: application/pdf
// <raw binary file content>
// HTTP Status 201

{
  "id": "upl_1sAAaVfabdt0esVjmSTmLA",
  "retention": "temporary",
  "url": "https://api.signatureapi.com/v1/uploads/upl_1sAAaVfabdt0esVjmSTmLA",
  "format": "pdf",
  "sha_256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
  "size": 102400,
  "created_at": "2025-12-30T12:00:00.000Z",
  "expires_at": "2025-12-31T12:00:00.000Z"
}
Upload a file to SignatureAPI for use as a document source in an envelope. Send the raw file bytes in the request body with the appropriate Content-Type header. The response includes a url property. Pass this value as the url property of a document when creating an envelope:
// POST https://api.signatureapi.com/v1/envelopes
// X-API-Key: key_test_...
// Content-Type: application/json

{
  "documents": [
    {
      "url": "https://api.signatureapi.com/v1/uploads/upl_1sAAaVfabdt0esVjmSTmLA",
      //...
    }
  ],
  //...
}
Uploads created through this endpoint are temporary and expire 24 hours after creation. To store a file for reuse across multiple envelopes, upload it to your Library in the dashboard.
The Create Upload endpoint replaces the Create File endpoint. The File resource is soft-deprecated but remains available for backward compatibility.

Request

Send the raw file bytes as the request body. Set the Content-Type header to match the file format.
Content-TypeFormat
application/pdfpdf
application/vnd.openxmlformats-officedocument.wordprocessingml.documentdocx
Maximum file size: 5 MB (5,242,880 bytes).
curl -X POST https://api.signatureapi.com/v1/uploads \
  --data-binary "@/path/to/file.pdf" \
  -H "Content-Type: application/pdf" \
  -H "X-API-Key: key_test_..."
File uploads must be made from your server, not from the browser. The API requires your API key in the request header, which must never be exposed to the client. If you need to accept files from users in the browser, upload the file to your own server first, then forward it to the SignatureAPI uploads endpoint.

Returns

Returns a 201 Created status code and an upload object on success, or an error otherwise.
// POST https://api.signatureapi.com/v1/uploads
// X-API-Key: key_test_...
// Content-Type: application/pdf
// <raw binary file content>
// HTTP Status 201

{
  "id": "upl_1sAAaVfabdt0esVjmSTmLA",
  "retention": "temporary",
  "url": "https://api.signatureapi.com/v1/uploads/upl_1sAAaVfabdt0esVjmSTmLA",
  "format": "pdf",
  "sha_256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
  "size": 102400,
  "created_at": "2025-12-30T12:00:00.000Z",
  "expires_at": "2025-12-31T12:00:00.000Z"
}