Introduction
Available URLs
URL | Description |
---|---|
POST /ViewingSession | Creates a viewing session. |
PUT /ViewingSession/u{viewingSessionId}/SourceFile | Uploads a document to the session. |
PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/original | Uploads original document to the comparison viewing session. |
PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/revised | Uploads revised document to the comparison viewing session. |
GET /ViewingSession/u{viewingSessionId}/SourceFile | Downloads the source document in use for a viewing session. |
GET /v2/viewingSessions/{viewingSessionId}/sourceFile/original | When viewing a comparison of two documents, downloads the first of the two source documents. |
GET /v2/viewingSessions/{viewingSessionId}/sourceFile/revised | When viewing a comparison of two documents, downloads the second of the two source documents. |
GET /v2/viewingSessions/{viewingSessionId}/restrictions | Returns information about any restrictions enforced by the server for the current viewing session. |
POST /ViewingSession/u{viewingSessionId}/Replacement | Replaces a viewing session with new parameters. |
POST /ViewingSession
Routes key: PostViewingSession
Creates a new viewing session. At a high level, a viewing session takes a source document as input and produces HTML page content and document text as output.
Request
Request Headers
Name | Description |
---|---|
Content-Type |
Should be application/json |
Request Body
source
(object) Object describing a source document where it comes from, such as local documents, documents specified via URL, etc. Properties relevant to PrizmApplicationService will reside in this object.- When uploading the source document in a subsequent request:
type
(string) Required. Set toupload
.displayName
(string) Required. Unique filename, including the extension, for the document that will be uploaded.- IMPORTANT: You must use a value which is specific for the document you are going to upload. For optimal performance, you should NEVER use the same value for two different documents. We use this value internally (when running in clustered mode) to determine which machine in the cluster this viewing session should be assigned to. This allows us to ensure that viewing sessions with the same
displayName
can be consistently assigned to the same machine in the cluster, taking advantage of previously cached conversion output. But we are assuming you will provide us a value which is unique for the document which you are about to upload. If, instead, you simply use a hard-coded value for all documents, you will mistakenly force all work to a single machine in the cluster. Make sure this value is unique for the document you are about to upload!
- IMPORTANT: You must use a value which is specific for the document you are going to upload. For optimal performance, you should NEVER use the same value for two different documents. We use this value internally (when running in clustered mode) to determine which machine in the cluster this viewing session should be assigned to. This allows us to ensure that viewing sessions with the same
markupId
(string) The ID to use when querying markup with the XML and JSON layer APIs. If one isn't passed, we create one from the other information we're given.downloadName
(string) Filename a browser should use when an end user downloads the source document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded. We will get the extension fromdisplayName
if this option is not provided.documentId
(string) A customer supplied identifier which is used to uniquely identify a viewing package. ThedocumentId
is required to have a non-zero length less than 256 characters and must consist of characters defined by RFC4648 - Base 64 Encoding with URL and Filename Safe Alphabet. If a viewing package exists for the givendocumentId
, PAS will use the content stored in that package and avoid sending any work to PrizmDoc Server. If a viewing package does not exist for the givendocumentId
, PAS will ask PrizmDoc Server to immediately start preparing content for this viewing session and will also start creating a new viewing package in the background. If an errored viewing package exists for the givendocumentId
, PAS will effectively ignore thedocumentId
and ask PrizmDoc Server to dynamically prepare content for the viewing session.
- When using a URL for the source document:
type
(string) Required. Set tourl
.url
(string) Required. URL to create a viewing session from.headers
(object) Request headers to send from PrizmApplicationServices when retrieving the URL.acceptBadSslCertificate
(boolean) If true, requires SSL certificates be valid. Default isfalse
.markupId
(string) The ID to use when querying markup with the XML and JSON layer APIs. If one isn't passed, we create one from the other information we're given.downloadName
(string) Filename a browser should use when an end user downloads the source document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded.documentId
(string) A customer supplied identifier which is used to uniquely identify a viewing package. ThedocumentId
is required to have a non-zero length less than 256 characters and must consist of characters defined by RFC4648 - Base 64 Encoding with URL and Filename Safe Alphabet. If a viewing package exists for the givendocumentId
, PAS will use the content stored in that package and avoid sending any work to PrizmDoc Server. If a viewing package does not exist for the givendocumentId
, PAS will ask PrizmDoc Server to immediately start preparing content for this viewing session and will also start creating a new viewing package in the background. If an errored viewing package exists for the givendocumentId
, PAS will effectively ignore thedocumentId
and ask PrizmDoc Server to dynamically prepare content for the viewing session.
- When using a local file on the PAS server as the source document (self-hosted only, not recommended):
type
(string) Required. Set todocument
.fileName
(string) Required. Filename that the Storage Provider API can use.markupId
(string) The ID to use when querying markup with the XML and JSON layer APIs. If one isn't passed, we create one from the other information we're given.downloadName
(string) Filename a browser should use when an end user downloads the source document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded. We will get the extension fromfileName
if this option is not provided.documentId
(string) A customer supplied identifier which is used to uniquely identify a viewing package. ThedocumentId
is required to have a non-zero length less than 256 characters and must consist of characters defined by RFC4648 - Base 64 Encoding with URL and Filename Safe Alphabet. If a viewing package exists for the givendocumentId
, PAS will use the content stored in that package and avoid sending any work to PrizmDoc Server. If a viewing package does not exist for the givendocumentId
, PAS will ask PrizmDoc Server to immediately start preparing content for this viewing session and will also start creating a new viewing package in the background. If an errored viewing package exists for the givendocumentId
, PAS will effectively ignore thedocumentId
and ask PrizmDoc Server to dynamically prepare content for the viewing session.
- When using a viewing package with pre-converted content:
type
(string) Required. Set toviewingPackage
.documentId
(string) Required. A customer supplied identifier which is used to uniquely identify a viewing package. ThedocumentId
is required to have a non-zero length less than 256 characters and must consist of characters defined by RFC4648 - Base 64 Encoding with URL and Filename Safe Alphabet. This value must refer to a completed viewing package, otherwise the viewing session will not be created and an error will be returned.markupId
(string) The ID to use when querying markup with the XML and JSON layer APIs. If one isn't passed, we create one from the other information we're given.downloadName
(string) Filename a browser should use when an end user downloads the source document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.
- When comparing two Microsoft Word documents:
type
(string) Required. Set tocomparison
.original
(object) Required. Original document to compare.- When uploading the original document in a subsequent request: (NOTE: Use PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/original and/or PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/revised to upload the original and/or revised documents):
type
(string) Required. Set toupload
.displayName
(string) Required. Unique filename, including the extension, for the document that will be uploaded.downloadName
(string) Filename a browser should use when an end user downloads the original document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded. We will get the extension fromdisplayName
if this option is not provided.
- When using a URL for the original document:
type
(string) Required. Set tourl
.url
(string) Required. URL to create a viewing session from.headers
(object) Request headers to send from PrizmApplicationServices when retrieving the URL.acceptBadSslCertificate
(boolean) If true, requires SSL certificates be valid. Default isfalse
. NOTE: To use your own certificate authority, you need to specify an agent that was created with that CA as an option.downloadName
(string) Filename a browser should use when an end user downloads the original document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded.
- When using a local file on the PAS server as the original document (self-hosted only, not recommended):
type
(string) Required. Set todocument
.fileName
(string) Required. Filename that the Storage Provider API can use.downloadName
(string) Filename a browser should use when an end user downloads the original document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded. We will get the extension fromfileName
if this option is not provided.
- When uploading the original document in a subsequent request: (NOTE: Use PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/original and/or PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/revised to upload the original and/or revised documents):
revised
(object) Required. Revised document to compare.- When uploading the revised document in a subsequent request: (NOTE: Use PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/original and/or PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/revised to upload the original and/or revised documents):
type
(string) Required. Set toupload
.displayName
(string) Required. Unique filename, including the extension, for the document that will be uploaded.downloadName
(string) Filename a browser should use when an end user downloads the revised document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded. We will get the extension fromdisplayName
if this option is not provided.
- When using a URL for the revised document:
type
(string) Required. Set tourl
.url
(string) Required. URL to create a viewing session from.headers
(object) Request headers to send from PrizmApplicationServices when retrieving the URL.acceptBadSslCertificate
(boolean) If true, requires SSL certificates be valid. Default isfalse
. NOTE: To use your own certificate authority, you need to specify an agent that was created with that CA as an option.downloadName
(string) Filename a browser should use when an end user downloads the revised document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded.
- When using a local file on the PAS server as the revised document (self-hosted only, not recommended):
type
(string) Required. Set todocument
.fileName
(string) Required. Filename that the Storage Provider API can use.downloadName
(string) Filename a browser should use when an end user downloads the revised document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.fileExtension
(string) A file extension that's used if the File Detection Service cannot determine what type of file was uploaded. We will get the extension fromfileName
if this option is not provided.
- When uploading the revised document in a subsequent request: (NOTE: Use PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/original and/or PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/revised to upload the original and/or revised documents):
markupId
(string) The ID to use when querying markup with the XML and JSON layer APIs. If one isn't passed, we create one from the other information we're given.downloadName
(string) Filename a browser should use when an end user downloads the source document (the filename of theContent-Disposition
response header). We will use thedisplayName
if this option is not provided.documentExtension
(String) - File extension of the source document (like"docx"
,"html"
, or"csv"
) used to indicate the source document file format. Often unnecessary. Only required when 1) thedocumentSource
is"http"
or"file"
but theexternalId
containing the URL or file path did not end with a recognizable file extension and 2) the source document file format could not be automatically detected (this most-commonly occurs for text-based file formats, such astxt
,csv
, andhtml
). NOTE: If Format Detection is disabled, then the source document format will never be automatically detected.password
(String) Password to use when opening a password-protected source document.tenantId
(String) Custom, arbitrary tenant id to be associated with the viewing session. PrizmDoc Server has no concept of tenants; if provided, this metadata is only for use by the calling application.origin
(Object) Custom, arbitrary set of key/value string pairs to be associated with the viewing session. Intended for associating end user origin data (like IP address or hostname), but you can use any set of key/value strings you want.render
(Object) Options which control how browser content is rendered:html5
(Object) Options when the output format is HTML:alwaysUseRaster
(Boolean) Required. Determines whether only raster data, instead of SVG, should be created for the viewing session. With modern browsers, it is rare to only want raster. This is typically set tofalse
.svgMaxImageSize
(Number) The maximum edge length, in pixels, that is allowable for any image when creating SVG. For example, a value of8000
would ensure that any images in a PDF whose width or height were greater than 8000 pixels would be down-sampled before the image was added to the final SVG. Default is configurable, but is typically8000
. To disable this optimization, use a value of0
.vectorTolerance
(Number) For CAD documents, the amount of path simplification that is allowable when creating the SVG. Path simplification will merge points which are "close together" to create optimized SVG. You can think of this value as defining what "close together" means. Higher values introduce more simplification but also more distortion. Default is configurable, but is typically0.3
. Cannot be greater than10.0
. To disable this optimization, use a value of0
.
- When uploading the source document in a subsequent request:
watermarks
(Array of Objects) Objects describing watermarks which should be applied to page content. Each item must be an object which conforms to the following:- text watermark:
type: "text"
(String) Required. Must be set to"text"
to indicate the object represents a text watermark.text
(String) Actual text of the watermark. Within the string, you can use the following special tokens to insert dynamic values:{{pageNumber}}
- Will be replaced with the current page number.{{pageCount}}
- Will be replaced with the total number of pages.
opacity
(Number) Opacity of the watermark.1.0
is completely opaque,0.0
is completely transparent. Default is1.0
.color
(String) Text color. Can be any valid CSS color name (like"red"
) or hex value (like"#FF0000"
). Default is"black"
.fontFamily
(String) Font family for the text. Default for SVG output is to use the browser's default font. Default for raster output is unspecified.fontSize
(String) Font size specified in points (like"12pt"
). Default for SVG output is to use the browser's default font size. Default for raster output is unspecified.fontWeight
(String) Determines the font weight. Possible values:"normal"
(default)"bold"
textDecoration
(String) Possible values:"none"
(default)"underlined"
-
horizontalAlign
(String) Determines the horizontal position of the watermark. Default is"center"
. Possible values:"left"
- Text will be horizontally anchored to the left side of the page and text will be left aligned."center"
Text will be horizontally anchored to the center of the page and text will be centered. (default)"right"
- Text will be horizontally anchored to the right side of the page and text will be right aligned.
verticalAlign
(String) Determines the vertical position of the watermark. Default is"middle"
. Possible values:"top"
- Text will be vertically anchored to the top of the page."middle"
Text will be vertically anchored to the middle of the page. (default)"bottom"
- Text will be vertically anchored to the bottom of the page.
- diagonal text watermark:
type: "diagonalText"
(String) Required. Must be set to"diagonalText"
to indicate the object represents a diagonal text watermark.text
(String) Actual text of the watermark. Within the string, you can use the following special tokens to insert dynamic values:{{pageNumber}}
- Will be replaced with the current page number.{{pageCount}}
- Will be replaced with the total number of pages.
opacity
(Number) Opacity of the watermark.1.0
is completely opaque,0.0
is completely transparent. Default is1.0
.color
(String) Text color. Can be any valid CSS color name (like"red"
) or hex value (like"#FF0000"
). Default is"black"
.fontFamily
(String) Font family for the text. Default for SVG output is to use the browser's default font. Default for raster output is unspecified.fontSize
(String) Font size specified in points (like"12pt"
). Default for SVG output is to use the browser's default font size. Default for raster output is unspecified.fontWeight
(String) Determines the font weight. Possible values:"normal"
(default)"bold"
textDecoration
(String) Possible values:"none"
(default)"underlined"
slope
(String) Controls the text angle. Default is"up"
. Possible values:"up"
- Text will start in the lower-left corner of the page and extend upwards to the upper-right corner of the page. (default)"down"
- Text will start in the upper-left corner of the page and extend downwards to the lower-right corner of the page.
- image watermark:
type: "image"
(String) Required. Must be set to"image"
to indicate the object represents an image watermark.opacity
(Number) Opacity of the watermark.1.0
is completely opaque,0.0
is completely transparent. Default is1.0
.src
(String) Required. URL or [work file] id of a PNG image to use for this watermark. When using a URL, the URL must be accessible from the server where PrizmDoc Server is running. NOTE: Thesrc
MUST be a PNG. If you use a different image format, invalid watermarks will be created.-
horizontalAlign
(String) Determines the horizontal position of the watermark. Default is"center"
. Possible values:"left"
- Image will be horizontally anchored near the left side of the page."center"
Image will be horizontally anchored to the center of the page. (default)"right"
- Image will be horizontally anchored near the right side of the page.
verticalAlign
(String) Determines the vertical position of the watermark. Default is"middle"
. Possible values:"top"
- Image will be vertically anchored near the top of the page."middle"
Image will be vertically anchored to the middle of the page. (default)"bottom"
- Image will be vertically anchored near the bottom of the page.
scale
(Number) - Determines the relative size of the image as compared to the size of the page. Value must be between0.0
and1.0
. A value of1.0
indicates the image will be scaled to the size of the page while0.0
indicates the image will be scaled infinitesimally small and will not be rendered. Default is0.25
.-
autoSize
(String) When set, the image will be automatically sized to fill the page (any value provided forscale
,horizontalAlign
, andverticalAlign
will be ignored). Possible values:"fit"
- Image will be scaled to be as large as possible while still completely fitting within the page. The aspect ratio of the image is maintained."fill"
- Image will be scaled to be large enough that the entire page is covered by the image. Some of the image may fall off the edge of the page, but the entire page is guaranteed to be covered by some part of the image. The aspect ratio of the image is maintained."stretch"
- Image width and height will be independently resized so that the image width and height are the same as the page. The aspect ratio of the image is ignored.pageContentEncryption
(String) - Controls whether or not page content will be encrypted for the viewing session. See the [Enabling Content Encryption] topic for more information about this feature. Possible values:"default"
- Product configuration will be used to determine whether or not page content will be encrypted (seeviewing.contentEncryption.enabled
in the [Central Configuration] file)."enabled"
- Page content will be encrypted for the viewing session."disabled"
- Page content will not be encrypted for the viewing session.countOfInitialPages
(Integer) Number of pages which should be eagerly converted, or0
if all pages should be eagerly converted. Default is0
.startConverting
(String) When thedocumentSource
is"http"
or"file"
, controls whether initial pages should be converted as soon as the document has been acquired. Default is"none"
. Possible values:"none"
- Conversion will begin only after the session is explicitly started or page content or attributes are requested. (default)"initialPages"
- Conversion will begin as soon as the source document has been acquired.contentType
(String) - Determines what kind of browser content will be eagerly pre-generated (other kinds of content may still be generated if explicitly requested). Possible values:"svgb"
- Pre-generate fully-optimized SVG (uses a unicode inline font to store glyph definitions). Smallest possible SVG, but may not be compatible with some browsers. Recommended whenever possible."svga"
- Pre-generate partially-optimized SVG (uses a non-unicode inline font to store only the most frequently-occurring glyph definitions). May not be compatible with some browsers. Use only if"svgb"
content is not compatible with the target browser."svg"
- Pre-generate unoptimized SVG (no font is used; glyph definitions are expressed as SVG path operations). Broadest compatibility with browsers but typically much larger, so it renders and scrolls much slower than"svgb"
and"svga"
. Not recommended. Use only as a fallback if bothsvgb
andsvga
are not compatible with the target browser, or the use of webfonts is disabled in the target browser."png"
- Pre-generate raster content.serverCaching
(String) Controls whether output is kept for potential reuse by other viewing sessions. Default is"full"
. Possible values:"full"
- Output will be written to disk on the server and retained for reuse by other viewing sessions created for the same source document. Output will not be deleted until the configured viewing cache lifetime is reached (which is a full day with an out-of-box configuration; seeviewing.cacheLifetime
in [Central Configuration]). Saves processing time if a source document is viewed repeatedly before the cached data is deleted, but does consume more disk space. (default)"none"
- Output will be written to disk on the server but only retained for the duration of the viewing session and never shared with other viewing sessions. Once the viewing session expires, the output will be deleted from the disk. Saves disk space if you know that it is unlikely a source document will ever be viewed more than once, but can result in redundant processing if the same source document is viewed repeatedly.serverSideSearch
(String) Determines whether the server-side search feature will be available for the viewing session. Default is"enabled"
. Possible values:"enabled"
- Server-side search will be available for the viewing session. (default)"disabled"
- Server-side search will not be available for the viewing session.attachmentIndex
(Integer) - Intended for use only by PrizmDoc Server when it automatically creates viewing sessions for attachments. This is not a property your application should use. If the source document is an attachment that belongs to another document (such as an email), the 1-based index of this attachment in the list of all attachments (e.g.1
means it was the first attachment,2
means it was the second, etc.) or0
to indicate that the source document is not an attachment. Default is0
.attachmentDisplayName
(String) - Intended for use only by PrizmDoc Server when it automatically creates viewing sessions for attachments. This is not a property your application should use. If the source document is an attachment that belongs to another document (such as an email), the filename of the attachment ornull
. Default isnull
.
- text watermark:
Successful Response
Response Body
JSON with metadata about the created viewing session.
viewingSessionId
(string) Unique id for this viewing session.
Error Responses
Status Code | JSON errorCode |
Description |
---|---|---|
403 |
"InvalidSecret" |
The provided Accusoft-Secret request header value did not match the value of secretKey in your PAS config file. Only applies when you are self-hosting PAS. |
404 |
"DocumentNotFound" |
The specified document could not be found. |
480 |
"InvalidInput" |
Input is invalid. See errorDetails in the response body. |
480 |
"CannotChangeDocument" |
The viewing session already has an original source document. |
480 |
"IncorrectUsage" |
The viewing session is already used for viewing of a single source document. |
480 |
"FeatureNotLicensed" |
MSO enabled license is not installed. |
480 |
"FeatureDisabled" |
Microsoft Office renderer is not configured. |
480 |
"InputNotSupportedWithDocumentId" |
Input is not supported when creating a viewing session which auto-generates an associated viewing package in the background. See errorDetails in the response body. |
480 |
"InputConflictsWithViewingPackage" |
Input conflicts with the value previously used to create the associated viewing package. See errorDetails in the response body. |
Examples
Uploading the source document in a subsequent request
POST pas_base_url/ViewingSession
Content-Type: application/json
{
"source": {
"type": "upload",
"displayName": "sample_2015-10-31T19:15:32Z.doc"
}
}
Using a URL for the source document
POST pas_base_url/ViewingSession
Content-Type: application/json
{
"source": {
"type": "url",
"url": "http://myserver/mydocument.docx",
"headers": {
"My-Custom-Header": "some value required by my server"
},
"acceptBadSslCertificate": false
}
}
Using an existing viewing package
You can use an already-created viewing package to start a viewing session. The pre-converted viewable content will be immediately available and no work will be sent to PrizmDoc Server. See the PAS Viewing Package Creators API for more details about creating viewing packages and the PAS Viewing Packages API for more details about managing viewing packages.
POST pas_base_url/ViewingSession
Content-Type: application/json
{
"source": {
"type": "viewingPackage",
"documentId": "doc_9495837910qc"
}
}
Dynamically creating a viewing package in the background the first time a document is viewed
It is possible to ask PAS to use a viewing package if it exists and, if not, automatically start creating such a viewing package in the background so that it can be used by future viewing sessions. You do this by simply specifying a documentId
.
For example, here is a POST which uses a source.type
of "upload"
but also specifies a documentId
:
POST pas_base_url/ViewingSession
Content-Type: application/json
{
"source": {
"type": "url",
"url": "http://myserver/mydocument.docx",
"headers": {
"My-Custom-Header": "some value required by my server"
},
"documentId": "doc_9495837910qc"
}
}
If a viewing package exists for the given documentId
, then it will be used and no conversion work will be performed. If a viewing package does not exist for the given documentId
, then PAS will use PrizmDoc Server to prepare the content needed for this viewing session and also start creating a viewing package in the background. The application can continue to create viewing sessions in the same way for this document. Once the viewing package exists, PAS will simply use the contents of the package directly and stop sending conversion work to PrizmDoc Server.
Comparing two Microsoft Word documents
POST pas_base_url/ViewingSession
Content-Type: application/json
{
"source": {
"type": "comparison",
"original": {
"type": "upload",
"displayName": "2019-10-07-original.docx"
},
"revised": {
"type": "upload",
"displayName": "2019-10-07-revised.docx"
}
}
}
PUT /ViewingSession/u{viewingSessionId}/SourceFile
Routes key: PutViewingSessionSourceFile
Uploads a document to the session.
Request
Request Headers
Name | Description |
---|---|
Accusoft-Secret |
Required only if you are self-hosting PAS, must match the value of secretKey in your PAS config file. |
Request Body
The bytes of the source document.
Successful Response
A simple HTTP 200 status code indicating the file was received.
Error Responses
Status Code | JSON errorCode |
Description |
---|---|---|
403 |
"InvalidSecret" |
The provided Accusoft-Secret request header value did not match the value of secretKey in your PAS config file. Only applies when you are self-hosting PAS. |
Example
Request
PUT pas_base_url/ViewingSession/u{viewingSessionId}/SourceFile
Accusoft-Secret: mysecretkey
<<file bytes>>
Response
HTTP/1.1 200 OK
PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/original
Routes key: PutViewingSessionOriginalSourceFile
Used when viewing a comparison of two documents, uploads the first of the two documents, the original document.
Request
Request Headers
Name | Description |
---|---|
Accusoft-Secret |
Required only if you are self-hosting PAS, must match the value of secretKey in your PAS config file. |
Request Body
The bytes of the original document (for comparison with a revised document).
Successful Response
A simple HTTP 200 status code indicating the file was received.
Error Responses
Status Code | JSON errorCode |
Description |
---|---|---|
404 |
- | No viewing session with the provided viewingSessionId could be found. |
403 |
"InvalidSecret" |
The provided Accusoft-Secret request header value did not match the value of secretKey in your PAS config file. Only applies when you are self-hosting PAS. |
480 |
"CannotChangeDocument" |
The viewing session already has an original document assigned. |
480 |
"UnsupportedFormatForComparison" |
The uploaded file was not a Word document (for comparison viewing, we currently only support "doc" and "docx" files). |
480 |
"IncorrectUsage" |
For any new viewing session, you can give it either 1) a single source document for viewing or 2) two documents (original and revised) which should be viewed as a comparison, but you cannot do both. If you receive this error from this URL, it is because a single source document has already been provided. |
480 |
"FeatureNotLicensed" |
The server's license does not allow the use of the MSO (Microsoft Office) feature, so document comparison is not possible. |
480 |
"FeatureDisabled" |
The server has not been configured to allow the use of the Microsoft Office renderer, so document comparison is not possible. |
Example
Request
PUT pas_base_url/v2/viewingSessions/{viewingSessionId}/sourceFile/original
Accusoft-Secret: mysecretkey
<<file bytes>>
Response
HTTP/1.1 200 OK
PUT /v2/viewingSessions/{viewingSessionId}/sourceFile/revised
Routes key: PutViewingSessionRevisedSourceFile
Used when viewing a comparison of two documents, uploads the second of the two documents, the revised document.
Request
Request Headers
Name | Description |
---|---|
Accusoft-Secret |
Required only if you are self-hosting PAS, must match the value of secretKey in your PAS config file. |
Request Body
The bytes of the revised document (for comparison with an original document).
Successful Response
A simple HTTP 200 status code indicating the file was received.
Error Responses
Status Code | JSON errorCode |
Description |
---|---|---|
404 |
- | No viewing session with the provided viewingSessionId could be found. |
403 |
"InvalidSecret" |
The provided Accusoft-Secret request header value did not match the value of secretKey in your PAS config file. Only applies when you are self-hosting PAS. |
480 |
"CannotChangeDocument" |
The viewing session already has a revised source document assigned. |
480 |
"UnsupportedFormatForComparison" |
The uploaded file was not a Word document (for comparison viewing, we currently only support "doc" and "docx" files). |
480 |
"IncorrectUsage" |
For any new viewing session, you can give it either 1) a single source document for viewing or 2) two documents (original and revised) which should be viewed as a comparison, but you cannot do both. If you receive this error from this URL, it is because a single source document has already been provided. |
480 |
"FeatureNotLicensed" |
The server's license does not allow the use of the MSO (Microsoft Office) feature, so document comparison is not possible. |
480 |
"FeatureDisabled" |
The server has not been configured to allow the use of the Microsoft Office renderer, so document comparison is not possible. |
Example
Request
PUT pas_base_url/v2/viewingSessions/{viewingSessionId}/sourceFile/revised
Accusoft-Secret: mysecretkey
<<file bytes>>
Response
HTTP/1.1 200 OK
GET /ViewingSession/u{viewingSessionId}/SourceFile?ContentDispositionFilename={ContentDispositionFilename}
Routes key: GetSourceFile
Gets the source document in use for a viewing session.
Request
URL Parameters
Parameter | Description |
---|---|
{viewingSessionId} |
The viewingSessionId which identifies the viewing session. |
{ContentDispositionFilename} |
The filename as a URL-encoded string, without extension, to be used in the Content-Disposition response header (appropriate file extension such as doc or docx will automatically be added). By default, the value will be SourceFile.<ext> . |
Response Headers
Name | Description |
---|---|
Content-Disposition |
Indicates to a browser that the response body should be treated as a file download and specifies the filename the browser should use. |
Content-Type |
The most-specific MIME type for the returned document or application/octet-stream otherwise. |
Response Body
The raw bytes of the viewing session's source document.
Example
Request
GET pas_base_url/ViewingSession/uXYZ.../SourceFile?ContentDispositionFilename=MonthlySalesReport
Response
200 OK
Content-Type: application/msword
Content-Disposition: attachment; filename=MonthlySalesReport.docx; filename*=UTF-8''MonthlySalesReport.docx
<<file bytes>>
GET /v2/viewingSessions/{viewingSessionId}/sourceFile/original?contentDispositionFilename={contentDispositionFilename}
Routes key: GetOriginalSourceFile
When viewing a comparison of two documents, gets the original document used in the comparison. The document returned will be an identical copy of the document originally provided.
Request
URL Parameters
Parameter | Description |
---|---|
{viewingSessionId} |
The viewingSessionId which identifies the viewing session. |
{contentDispositionFilename} |
The filename as a URL-encoded string, without extension, to be used in the Content-Disposition response header (appropriate file extension such as doc or docx will automatically be added). By default, the value will be OriginalSourceFile.<ext> . |
Response Headers
Name | Description |
---|---|
Content-Disposition |
Indicates to a browser that the response body should be treated as a file download and specifies the filename the browser should use. |
Content-Type |
The most-specific MIME type for the returned document or application/octet-stream otherwise. |
Response Body
The raw bytes of the first of the two documents being viewed as a comparison, the original document.
Error Responses
Status Code | JSON errorCode |
Description |
---|---|---|
404 |
- | No viewing session with the provided viewingSessionId could be found. |
480 |
"DocumentNotProvidedYet" |
An original document has not been provided to the viewing session yet. |
480 |
"IncorrectUsage" |
For any new viewing session, you can give it either 1) a single source document for viewing or 2) two documents (original and revised) which should be viewed as a comparison, but you cannot do both. If you receive this error from this URL, it is because a single source document was provided for viewing, so there will never be an original comparison document to get. |
Example
Request
GET pas_base_url/v2/viewingSessions/XYZ.../sourceFile/original?contentDispositionFilename=OldMonthlySalesReport
Response
200 OK
Content-Type: application/msword
Content-Disposition: attachment; filename=OldMonthlySalesReport.docx; filename*=UTF-8''OldMonthlySalesReport.docx
<<file bytes>>
GET /v2/viewingSessions/{viewingSessionId}/sourceFile/revised?contentDispositionFilename={contentDispositionFilename}
Routes key: GetRevisedSourceFile
When viewing a comparison of two documents, gets the revised document used in the comparison. The document returned will be an identical copy of the document originally provided.
The response will set the Content-Type
header to the most-specific MIME type it can or application/octet-stream
otherwise.
Request
URL Parameters
Parameter | Description |
---|---|
{viewingSessionId} |
The viewingSessionId which identifies the viewing session. |
{contentDispositionFilename} |
The filename as a URL-encoded string, without extension, to be used in the Content-Disposition response header (appropriate file extension such as doc or docx will automatically be added). By default, the value will be RevisedSourceFile.<ext> . |
Response Headers
Name | Description |
---|---|
Content-Disposition |
Indicates to a browser that the response body should be treated as a file download and specifies the filename the browser should use. |
Content-Type |
The most-specific MIME type for the returned document or application/octet-stream otherwise. |
Response Body
The raw bytes of the second of the two documents being viewed as a comparison, the revised document.
Error Responses
Status Code | JSON errorCode |
Description |
---|---|---|
404 |
- | No viewing session with the provided viewingSessionId could be found. |
480 |
"DocumentNotProvidedYet" |
A "revised" document has not been associated with the viewing session yet. |
480 |
"IncorrectUsage" |
For any new viewing session, you can give it either 1) a single source document for viewing or 2) two documents (original and revised) which should be viewed as a comparison, but you cannot do both. If you receive this error from this URL, it is because a single source document was provided for viewing, so there will never be a revised comparison document to get. |
Example
Request
GET pas_base_url/v2/viewingSessions/XYZ.../sourceFile/revised?contentDispositionFilename=NewMonthlySalesReport
Response
HTTP/1.1 200 OK
Content-Type: application/msword
Content-Disposition: attachment; filename=NewMonthlySalesReport.docx; filename*=UTF-8''NewMonthlySalesReport.docx
<<file bytes>>
GET /v2/viewingSessions/{viewingSessionId}/restrictions
Returns information about any restrictions enforced by the server for the current viewing session.
Request
URL Parameters
Parameter | Description |
---|---|
{viewingSessionId} |
The viewingSessionId which identifies the viewing session. |
Successful Response
JSON with information about any restrictions currently in place for the viewing session:
delayEnabled
(Boolean) - Indicates whether the server has enforced an artificial delay before the document conversion results are allowed to be delivered to the viewer.delaySecondsRemaining
(Integer) - The number of seconds remaining in the artificially-imposed delay before the document conversion results are allowed to be delivered to the viewer. Only present whendelayEnabled
istrue
.downloadDisabled
(Boolean) - Indicates whether downloading of the source document has been disabled for this viewing session.markupSavingDisabled
(Boolean) - Indicates whether saving markup has been disabled for this viewing session.markupLoadingDisabled
(Boolean) - Indicates whether loading markup has been disabled for this viewing session.contentConvertersDisabled
(Boolean) Indicates whether the content converters feature has been disabled for this viewing session.markupBurnersDisabled
(Boolean) Indicates whether the markup burner feature has been disabled for this viewing session.formExtractorsDisabled
(Boolean) Indicates whether the forms extractors feature has been disabled for this viewing session.formInfoDisabled
(Boolean) Indicates whether the form detection feature has been disabled for this viewing session.
Example Responses
When the product is licensed and the form detection feature is available
HTTP/1.1 200 OK
Content-Type: application/json
{
"delayEnabled": false,
"downloadDisabled": false,
"markupSavingDisabled": false,
"markupLoadingDisabled": false,
"contentConvertersDisabled": false,
"markupBurnersDisabled": false,
"formExtractorsDisabled": false,
"formInfoDisabled": false
}
When the product is unlicensed (evaluation mode), and 9 seconds of initial delay are remaining:
HTTP/1.1 200 OK
Content-Type: application/json
{
"delayEnabled": true,
"delaySecondsRemaining": 9,
"downloadDisabled": true,
"markupSavingDisabled": true,
"markupLoadingDisabled": true,
"contentConvertersDisabled": true,
"markupBurnersDisabled": true,
"formExtractorsDisabled": true,
"formInfoDisabled": true
}
POST /ViewingSession/u{viewingSessionId}/Replacement
Routes key: CreateViewingSessionReplacement
Replace the existing viewing session with a new one that has a new password
parameter value. The other original viewing session parameters are preserved. If a source document is uploaded it is attached to the newly created viewing session with a new password. The old viewing session is stopped.
The replacement API is useful when a session is errored because of either an invalid or missing password, and you want to replace it with a new session with the same parameters against the same document but with a modified password.
Request
Request Headers
Name | Description |
---|---|
Content-Type |
Should be application/json |
Request Body
password
(String) Password to use when opening a password-protected source document. If the parameter is not provided a new viewing session is created with a default nullpassword
parameter value.
URL Parameters
Parameter | Description |
---|---|
{viewingSessionId} |
The viewingSessionId which identifies the viewing session. |
Successful Response
Response Body
JSON with metadata about the created viewing session.
viewingSessionId
(String) Unique id for this viewing session.
Error Responses
Status Code | Reason Phrase | Description |
---|---|---|
403 |
The session is invalid or has expired |
You requested a valid {viewingSessionId} but it is no longer available. |
500 |
Internal Server Error |
Can occur if you forget to prefix the {viewingSessionId} portion of the URL with u , or if you simply request an invalid {viewingSessionId} . |
Some error responses will have a JSON body with an errorCode
and errorDetails
:
Status Code | JSON errorCode |
Description |
---|---|---|
480 |
"PropertyNotReplaceable" |
Unsupported property to replace was used. See errorDetails in the response body. |
Example
Request
POST pas_base_url/ViewingSession/uXYZ.../Replacement
Content-Type: application/json
{
"password":"123"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
{
"viewingSessionId": "THMMytF4ACHrxmN2bXj4vahx4Gnwly_kEeFt20XtRau-z43pPHIjUy5JXJ05Wj1MaqvdfsXp98JxIk7ALWkukg"
}