DocumentsApi
All URIs are relative to https://api.esignlaunchpad.com
| Method | HTTP request | Description |
|---|---|---|
| abortDocumentUpload | DELETE /api/v1/packages//uploads/ | Abort upload session |
| commitDocumentUpload | POST /api/v1/packages//uploads//commit | Commit chunked upload |
| deleteDocument | DELETE /api/v1/packages//documents/ | Delete a document |
| detectDocumentTags | POST /api/v1/packages//documents//detect-tags | Detect text tags |
| getDetectedTags | GET /api/v1/packages//documents//detected-tags | Get cached detected tags |
| getDocument | GET /api/v1/packages//documents/ | Get document metadata |
| getDocumentRemovalImpact | GET /api/v1/packages//documents//removal-impact | Preview document removal impact |
| getDocumentUploadStatus | GET /api/v1/packages//uploads/ | Get upload session status |
| getOriginalDownloadUrl | GET /api/v1/packages//documents//download | Download original file |
| getPdfDownloadUrl | GET /api/v1/packages//documents//download-pdf | Download PDF version |
| getSignedDownloadUrl | GET /api/v1/packages//documents//download-signed | Download signed document |
| importDocumentFromUrl | POST /api/v1/packages//documents/import-url | Import a document from a URL |
| initiateDocumentUpload | POST /api/v1/packages//uploads | Initiate chunked upload |
| listDocuments | GET /api/v1/packages//documents | List documents |
| stageDocumentBlock | PUT /api/v1/packages//uploads//blocks/ | Stage upload block |
| uploadDocumentDirect | POST /api/v1/packages//documents | Upload a document directly |
abortDocumentUpload
abortDocumentUpload(packageId, sessionGuid)
Abort upload session
Cancels an in-progress upload session and cleans up any staged block blobs from storage. Use this to abandon an upload that will not be completed (e.g., user cancelled, validation failure on the client side). No document record is created. Returns 404 if the session does not exist or has already been committed/aborted.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| sessionGuid | UUID | The upload session GUID. | [default to null] |
Return type
null (empty response body)
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
commitDocumentUpload
UploadCommitApiResponse commitDocumentUpload(packageId, sessionGuid, CommitUploadApiRequest)
Commit chunked upload
Finalizes the upload session by reassembling all staged blocks into a single file and creating the document record in the package. Returns the new document GUID, a SHA-256 content hash for integrity verification, and the initial processing status. After commit, the document enters the asynchronous processing pipeline (PDF conversion, page image generation, optional text tag detection). An optional display name and display order can be provided to override defaults.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| sessionGuid | UUID | The upload session GUID. | [default to null] |
| CommitUploadApiRequest | CommitUploadApiRequest | Cancellation token. | [optional] |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
deleteDocument
deleteDocument(packageId, documentId)
Delete a document
Permanently removes a document and its associated blobs (original file, PDF conversion, page images) from the package. Any annotations placed on this document are also deleted. Use the removal-impact endpoint first to check whether any signers would become orphaned.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| documentId | UUID | The document GUID. | [default to null] |
Return type
null (empty response body)
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
detectDocumentTags
DetectedTagsApiResponse detectDocumentTags(packageId, documentId, DetectTagsApiRequest)
Detect text tags
Scans the document's PDF text layer for embedded text tags and returns their positions, types, signer indices, and dimensions. Text tags are special tokens placed in the document content that represent signing fields (signature, initials, date, text, checkbox, etc.). Three tag formats are supported: Native (the platform's own format), DocuSign (`/s1/`, `/i1/` style), and Adobe Sign (`{{Sig1_es_:signer1:signature}}` style). If no format hint is provided, the detector auto-identifies the format. The response includes the detected format, the parsed tags with page coordinates, and a count of unrecognized tags that could not be parsed.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| documentId | UUID | The document GUID. | [default to null] |
| DetectTagsApiRequest | DetectTagsApiRequest | Cancellation token. | [optional] |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
getDetectedTags
DetectedTagsApiResponse getDetectedTags(packageId, documentId)
Get cached detected tags
Returns previously detected text tags from cache without re-processing the document. This is useful to retrieve results from a prior detection run without incurring reprocessing cost. Returns 404 if the detect-tags endpoint has not been called yet for this document.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| documentId | UUID | The document GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getDocument
DocumentDetailApiResponse getDocument(packageId, documentId)
Get document metadata
Retrieves the full metadata for a single document within the package, including page count, display order, file extension, processing status and error (if any), and whether text tags were detected along with the detected format.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| documentId | UUID | The document GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getDocumentRemovalImpact
DocumentRemovalImpactApiResponse getDocumentRemovalImpact(packageId, documentId)
Preview document removal impact
Returns the signers that would become orphaned (i.e., have no annotations remaining on any other document in the package) if this document were removed. This is a read-only preview and does not modify any data. Use this before calling DELETE to make informed decisions.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| documentId | UUID | The document GUID. | [default to null] |
Return type
DocumentRemovalImpactApiResponse
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getDocumentUploadStatus
UploadStatusApiResponse getDocumentUploadStatus(packageId, sessionGuid)
Get upload session status
Returns the current status of an upload session, including the number of blocks committed, total file size, content hash (available after commit), the resulting document GUID (if committed), and creation/expiration/completion timestamps. Useful for polling upload progress or verifying that a commit succeeded.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| sessionGuid | UUID | The upload session GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getOriginalDownloadUrl
DownloadUrlApiResponse getOriginalDownloadUrl(packageId, documentId)
Download original file
Retrieves a time-limited pre-signed URL for downloading the original uploaded file in its native format (e.g., DOCX, PDF). This is the unmodified file as it was uploaded, without any annotations burned in. The URL expires after a server-defined period.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| documentId | UUID | The document GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getPdfDownloadUrl
DownloadUrlApiResponse getPdfDownloadUrl(packageId, documentId)
Download PDF version
Retrieves a time-limited pre-signed URL for downloading the PDF-converted version of the document. If the original upload was already a PDF, this returns the same file. For non-PDF uploads (e.g., DOCX), this returns the converted PDF generated during the processing pipeline. The PDF version does not include annotations; use the signed download for the final output.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| documentId | UUID | The document GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getSignedDownloadUrl
DownloadUrlApiResponse getSignedDownloadUrl(packageId, documentId)
Download signed document
Retrieves a time-limited pre-signed URL for downloading the completed, signed version of the document with all annotations (signatures, initials, text fields, checkboxes, etc.) permanently burned into the PDF. This endpoint is only available after the package signing ceremony has been completed and documents have been finalized. Returns 404 if the signed version is not yet available.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| documentId | UUID | The document GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
importDocumentFromUrl
UploadCommitApiResponse importDocumentFromUrl(packageId, ImportDocumentFromUrlApiRequest)
Import a document from a URL
Imports a PDF or Word document from a public HTTPS URL. The server fetches the file directly, so the document bytes never need to pass through your client. Useful when the document already lives in cloud storage (S3, GCS, Azure Blob), a CMS, a DMS, or any web-accessible location. File name resolution. By default the server derives the file name from the URL path, which works for clean URLs like .../contract.pdf or presigned S3/GCS/Azure SAS links. For URLs whose path does not end in the file name (Google Drive https://drive.google.com/uc?export=download&id=..., SharePoint anonymous-share links, many CMS download endpoints), supply the optional fileName field on the request body. Only HTTPS URLs are accepted. The server uses an SSRF-hardened HTTP client that blocks requests to private/reserved IP ranges. Allowed extensions: .pdf, .doc, .docx. Content is verified against magic-byte signatures regardless of the supplied file name.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| ImportDocumentFromUrlApiRequest | ImportDocumentFromUrlApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
initiateDocumentUpload
UploadSessionApiResponse initiateDocumentUpload(packageId, InitiateUploadApiRequest)
Initiate chunked upload
Creates a new chunked upload session for uploading a document to the package. This is the first step of the three-step chunked upload flow: (1) initiate session, (2) stage binary blocks via PUT, (3) commit to finalize. Returns a session GUID and expiration time. The session expires if not committed within the allotted time. Blocks can be staged in any order up to 10 MB each.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| InitiateUploadApiRequest | InitiateUploadApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
listDocuments
List listDocuments(packageId)
List documents
Returns all documents belonging to the specified package, including each document's name, original file name, processing status, and file size. Use the detail endpoint for extended metadata such as page count, display order, and text tag detection results.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
stageDocumentBlock
UploadBlockApiResponse stageDocumentBlock(packageId, sessionGuid, blockIndex, body)
Stage upload block
Uploads a single block (chunk) of raw binary data to an active upload session. Blocks can be staged in any order and are identified by a zero-based block index. The request body must be `application/octet-stream` containing the raw bytes. Each block is limited to 10 MB. The response confirms the block index and the running total of blocks staged so far.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| sessionGuid | UUID | The upload session GUID. | [default to null] |
| blockIndex | Integer | The zero-based block index. | [default to null] |
| body | File | Raw binary payload for the upload block. |
Return type
Authorization
HTTP request headers
- Content-Type: application/octet-stream
- Accept: application/json
uploadDocumentDirect
UploadCommitApiResponse uploadDocumentDirect(packageId, file, displayName, displayOrder)
Upload a document directly
Uploads a document to a package in a single multipart request. The file is validated, hashed, deduplicated, and routed through the standard processing pipeline. This is simpler than the chunked upload flow for smaller files or clients that prefer a single HTTP call. For larger files or when you want resumability, use the chunked upload endpoints instead. For files that already exist at a URL, use the import-url endpoint to avoid transferring bytes through your client.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| packageId | UUID | The package GUID. | [default to null] |
| file | File | [optional] [default to null] | |
| displayName | String | [optional] [default to null] | |
| displayOrder | Integer | [optional] [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: multipart/form-data
- Accept: application/json