Select a product

PDF.js Express Free Viewerplay_arrow

Professional PDF.js Viewing - Free

PDF.js Express Plusplay_arrow

Professional PDF.js Viewing & Annotations - Try for free

Get Started

play_arrow

Learn more

play_arrow

Common use cases

play_arrow

Open a document

play_arrow

Save a document

play_arrow

Viewer

play_arrow

UI Customization

play_arrow

Annotations

play_arrow

Collaboration

play_arrow

Forms

play_arrow

Signature

play_arrow

Searching

play_arrow

Measurement

play_arrow

Compare

play_arrow

Advanced Capabilities

play_arrow

PDF.js Express REST API

play_arrow

Migration Guides

play_arrow

PDF.js Express API Errors

The following features are available in:

check

PDF.js Express Viewer

help_outline

PDF.js Express Viewer is a free viewer that has limited capabilities compared to PDF.js Express Pro

check

PDF.js Express Plus

help_outline

PDF.js Express Plus is a paid product that supports annotating, signing, form filling and more

The following is a list of possible errors returned from the Express API.

If an error response is returned, an action will not be credited to your account.

An error response will come in the following JSON format:

{
  "code": 20,
  "message": "Error message"
}

The message property may be changed at any time, so it is recommended you use the code property to parse errors.

Errors

CodeDescription
20Invalid input. 'file' was either empty or invalid
21The URL provided did not return a PDF, or was inaccessible
22License key was not provided
24The account is cancelled
25The account has expired
26The origin of the request does not match the domain on the license key
27Client side key was provided for a server side request
28Server side key was provided for a client side request
30Access denied
40Unknown

Network errors

Errors may occur before the server receives your request. The most probably cause for this is that your request body is too large. If you receive errors from the API and your request body is over 5.5mb, try uploading your file to a remote location and passing the url to the API instead.