Skip to main content
POST
/
v1
/
files
// POST https://api.signatureapi.com/v1/files
// X-API-Key: key_test_...
// HTTP Status Code 201

{
  "id": "fil_0nZXZ8pYPByQ4XksJbDl4r",
  "put_url": "https://s3.us-east-2.amazonaws.com/signatureapi-vault-dev/temp...",
  "expires_at": "2025-12-31T20:00:00.000Z"
}
The File resource and the /v1/files endpoint have been replaced by the Upload resource. New integrations should use Uploads:
Registers a new temporary file. The response includes a put_url you use to upload the file content in a second request.
Files are temporary and expire 24 hours after creation. To store files for reuse across multiple envelopes, use the Library in your dashboard.

How to upload a file

Creating a usable file requires two steps.
1

Create a file record

Send a POST request to /v1/files. No request body is needed.The response includes:
  • An id for the new file.
  • A put_url to upload the file content.
  • An expires_at timestamp indicating when the file will be deleted.
The response also includes a Location header with the file’s reference URL: https://api.signatureapi.com/v1/files/{id}.
2

Upload the file content

Send a PUT request to the put_url from the previous response. Set the request body to the raw binary content of your file.
curl -X PUT "{put_url}" \
  --data-binary "@/path/to/document.pdf" \
  -H "Content-Type: application/pdf"
Upload the file as a binary stream. Multipart form uploads are not supported and will produce an invalid file.
3

Use the file URL in your envelope

After uploading, reference the file by its URL in other API calls. Use the Location header value from step 1, or construct the URL using the pattern https://api.signatureapi.com/v1/files/{id}.For example, to use the file as the source of a document:
{
  "documents": [
    {
      "url": "https://api.signatureapi.com/v1/files/fil_0nZXZ8pYPByQ4XksJbDl4r",
      //...
    }
  ]
}

Returns

Returns a 201 Created status code on success. The response body includes the following properties:
id
string
The unique identifier of the file.
put_url
string
A presigned URL. Send a PUT request to this URL with the raw file content to complete the upload. This URL is temporary and should be used immediately.
expires_at
string
The date and time when the file will expire, in format.
// POST https://api.signatureapi.com/v1/files
// X-API-Key: key_test_...
// HTTP Status Code 201

{
  "id": "fil_0nZXZ8pYPByQ4XksJbDl4r",
  "put_url": "https://s3.us-east-2.amazonaws.com/signatureapi-vault-dev/temp...",
  "expires_at": "2025-12-31T20:00:00.000Z"
}