Document Conversion Library for Node.js

The ConvertAPI Node.js library allows you to easily integrate document conversion and management into your Node.js workers and web applications. Supporting a broad spectrum of file formats—from PDFs and spreadsheets to images and presentations—it offers an intuitive API for tasks like merging, protecting, watermarking files, extracting text, or securely redacting sensitive information.

NPM package GitHub

Integrate within minutes

It is easy to start converting documents using Node.js in a few simple steps:

1

Sign up for a free account

Sign up for free and receive 250 conversions to try and evaluate our service. You will receive a free trial with no credit card required upon registration!

2

Set up the conversion online

On your account dashboard you will access an intuitive UI tool that allows you to set up the conversion, adjust the parameters, and try the conversion online with zero code.

3

Copy auto-generated code snippet

Once you have set up the conversion parameters and are happy with the conversion results, you will receive an auto-generated Node.js code snippet with your custom parameters!

Get started now

Document management toolkit for Node.js

Designed for performance and scalability, the ConvertAPI NodeJS library fits seamlessly into both traditional and modern deployment models, including containerized and serverless environments. With flexible parameters and detailed documentation, the ConvertAPI Node.js library is a versatile choice for building robust, high-efficiency document workflows.

File Converter Suite

High-performance and unbeatable accuracy document converter suite with support for over 500+ conversion.

Document Builder using Node.js

Generate dynamic DOCX and PDF documents like invoices, contracts, reports, on the fly.

Document Management tools

Protect, redact, compare, watermark, flatten, compress and modify your documents using ConvertAPI Node.js SDK.

Security and Decryption

Protect and unprotect PDFs, MS Office Powerpoint and MS Office Word documents.

AI Data Extractor

Built to scale with your business, whether you're handling a few conversions or thousands.

Archiving & Optimization

Reduce file sizes without losing quality. Archive converters are designed to handle over 100 different file formats.

Take a look at Node.js code samples

View on GitHub

Configure it online - we will generate the Node.js code for you!

Configure your file conversion directly online using our intuitive interface. Select the desired parameters and see the results in real-time. Once you're satisfied, we’ll automatically generate the Node.js code for you, making integration into your project effortless. No need to start from scratch—just copy the code and implement it seamlessly into your Node.js application!

Get started now

File conversion example using NodeJS

The ConvertAPI Node.js library offers a comprehensive solution for integrating high-quality document conversion and manipulation directly into your Node.js applications and services. Whether you need to transform PDFs into Office files, merge multiple documents, extract text from images, or handle other format conversions, the library covers a broad range of use cases and file types.

By leveraging Node.js’s asynchronous model, it lets you process documents in a highly scalable, non-blocking manner—ideal for modern, cloud-based architectures. Combined with Node.js’s event-driven architecture, the library helps you build fast, scalable, and secure document workflows that adapt to your evolving business needs.

Install the ConvertAPI NodeJS library into your project

To get started, install the ConvertAPI NodeJS SDK. Run this line from console:

npm install convertapi --save

Convert a webpage to PDF using NodeJS

The WEB to PDF conversion lets you effortlessly transform entire web pages or HTML content into high-quality PDF files. Whether you’re capturing dynamic, user-generated pages or automating batch exports of reports, the library seamlessly turns live content into shareable, print-ready PDFs.

By allowing you to specify parameters such as page size, orientation, and output quality, you can tailor the final document to match your exact requirements. This streamlined approach makes it simple to generate visually consistent PDFs—perfect for archiving, distribution, or documentation within your Node.js applications.

Let's see how easy it is to perform a WEB to PDF conversion in a NodeJS application:

// Code snippet is using the ConvertAPI JavaScript Client: https://github.com/ConvertAPI/convertapi-library-js

// Code snippet is using the ConvertAPI Node.js Client: https://github.com/ConvertAPI/convertapi-nodejs

// Code snippet is using the ConvertAPI PHP Client: https://github.com/ConvertAPI/convertapi-php

// Code snippet is using the ConvertAPI Java Client: https://github.com/ConvertAPI/convertapi-java

// Code snippet is using the ConvertAPI C# Client: https://github.com/ConvertAPI/convertapi-dotnet

# Code snippet is using the ConvertAPI Ruby Client: https://github.com/ConvertAPI/convertapi-ruby

# Code snippet is using the ConvertAPI Python Client: https://github.com/ConvertAPI/convertapi-python

// Code snippet is using the ConvertAPI Go Client: https://github.com/ConvertAPI/convertapi-go

REM Code snippet is using the command line utility program: https://github.com/ConvertAPI/convertapi-cli

<!-- For conversions with the multiple file result please refer to this example: https://repl.it/@ConvertAPI/HTML-Form-with-multiple-file-result -->

Convert a Stream

The ConvertAPI NodeJS library supports converting files from streams. This makes it easy to integrate document conversion into your existing Node.js applications, allowing you to process files without the need to store them on disk.

Key Features:

  • Reads input data from a stream.
  • Processes the conversion entirely in memory.
  • Outputs the result to another stream.
var fs = require('fs');

// set your api token
var convertapi = require('../lib')(process.env.CONVERT_API_TOKEN);

// Example of using readable stream to convert to pdf
// https://www.convertapi.com/docx-to-pdf

var dir = require('os').tmpdir();

// get readble stream (could be any readable stream)
var stream = fs.createReadStream('./examples/files/test.docx');

// Upload stream to the API. When uploading stream, file name must be provided.
var uploadResult = convertapi.upload(stream, 'test.docx');

convertapi.convert('pdf', { File: uploadResult })
  .then(function(result) {
    return result.saveFiles(dir);
  })
  .then(function(files) {
    console.log("The PDF saved to\n" + files);
  })
  .catch(function(e) {
    console.error(e.toString());
  });

Get result file stream

The ConvertAPI NodeJS library supports getting result file stream. This makes it easy to integrate document conversion into your existing Node.js applications, allowing for flexible handling of the output data.

Key Features:

  • Retrieves the result of a conversion as a stream.
  • Enables direct piping of the output to other processes or storage systems.
// set your api token
var convertapi = require('../lib')(process.env.CONVERT_API_TOKEN);

// Example of converting Web Page URL to PDF and reading file data as string
// https://www.convertapi.com/web-to-pdf

var fromFormat = 'web';
var conversionTimeout = 180;
var https = require('https');
var Stream = require('stream').Transform;
var params = {
  Url: 'https://en.wikipedia.org/wiki/Data_conversion',
  FileName: 'web-example'
};

convertapi.convert('pdf', params, fromFormat, conversionTimeout)
  .then(function(result) {
    result.files.forEach(function(resultFile) {
      console.log("Result url: " + resultFile.url);

      https.get(resultFile.url, function(response) {
        var stream = new Stream();

        response.on('data', function(chunk) {
          stream.push(chunk);
        });

        response.on('end', function() {
          var data = stream.read()

          console.log("Downloaded data size: " + data.length);
        });
      });
    });
  })
  .catch(function(e) {
    console.error(e.toString());
  });
            

Convert Base64 Content

The ConvertAPI NodeJS library supports converting Base64 content. This example shows how to convert base64-encoded content into another format, facilitating the handling of data received in base64 encoding.

Key Features:

  • Accepts base64-encoded input data.
  • Processes the conversion to the desired format.
  • Outputs the result as a file or stream.
// set your api token
var convertapi = require('../lib')(process.env.CONVERT_API_TOKEN);

// Example of using buffer and stream to convert base64 encoded content to pdf
// https://www.convertapi.com/png-to-pdf

var dir = require('os').tmpdir();
var Readable = require('stream').Readable;

var base64Content = "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";

// get buffer from base64 string
var buffer = Buffer.from(base64Content, 'base64');

// get readble stream from buffer
var stream = new Readable()
stream.push(buffer);
stream.push(null);

// Upload stream to the API. When uploading stream, file name must be provided.
var uploadResult = convertapi.upload(stream, 'test.png');

convertapi.convert('pdf', { File: uploadResult })
  .then(function(result) {
    return result.saveFiles(dir);
  })
  .then(function(files) {
    console.log("The PDF saved to\n" + files);
  })
  .catch(function(e) {
    console.error(e.toString());
  });
            

Conversion Workflows

The ConvertAPI NodeJS library supports conversion workflows. This makes it easy to integrate document conversion into your existing Node.js applications, allowing you to apply multiple, step-by-step transformations to the same document.

Key Features:

  • Performs sequential conversions using intermediate results.
  • Manages multiple steps within a single process.
  • Outputs the final converted file after all transformations.
// set your api token
var convertapi = require('../lib')(process.env.CONVERT_API_TOKEN);

// Short example of conversions chaining, the PDF pages extracted and saved as separated JPGs and then ZIP'ed
// https://www.convertapi.com/doc/chaining

var dir = require('os').tmpdir();

console.log("Converting PDF to JPG and compressing result files with ZIP\n");

convertapi.convert('jpg', { File: './examples/files/test.pdf' })
  .then(function(jpgResult) {
    return convertapi.convert('zip', { Files: jpgResult });
  })
  .then(function(zipResult) {
    return zipResult.saveFiles(dir);
  })
  .then(function(files) {
    console.log("Files saved to\n" + files);
  })
  .catch(function(e) {
    console.error(e.toString());
  });
            

With our Node.js SDK, you can leverage a robust set of over 500+ features dedicated to document conversion and management—all from a single, streamlined toolkit.

The library effortlessly accepts documents from URLs, file streams, or local paths, ensuring a smooth fit within your existing Node.js workflows. For even greater efficiency, consider implementing conversion workflows, which let you sequentially apply multiple transformations to the same document.

If you’re seeking detailed examples or advanced tips, don’t miss our GitHub repository, where you’ll find everything you need to get the most out of the Node.js SDK.

Automate Your Document Management using Node.js

Take control of your documents with our Node.js document management SDK. From basic conversions to full workflow automation, we provide the expertise and tools you need to manage your documents efficiently.

Data security is our top priority

We ensure that all document processing is handled securely in the cloud, adhering to industry-leading standards like ISO 27001, GDPR, and HIPAA. To enhance security even further, we can ensure that no files or data are stored on our servers and never leave your country.

Learn more about security

Businesses trust us

Highest rated File Conversion API on major B2B software listing platforms: Capterra, G2, and Trustpilot.

"ConvertAPI has been a game-changer for our document automation workflows. Their conversion accuracy and API reliability are unmatched in the industry for over 7 years."

"ConvertAPI is a reliable, cost-effective solution with a proven track record of stability. It has grown significantly in maturity, adopting enterprise-grade practices over the years."

"We've integrated ConvertAPI across our entire document processing platform. The performance is exceptional and the support team is always responsive. Highly recommended!"

Frequently asked questions

How is the ConvertAPI Node.js library different from other solutions?

Unlike many specialized tools that focus on one or two tasks, the ConvertAPI Node.js library offers a comprehensive range of operations—covering everything from PDF splitting and Office file transformations to image manipulation—through a single, consistent interface.

Can I use this library in event-driven or serverless setups (e.g., AWS Lambda)?

Absolutely. The library’s lightweight structure fits well with serverless platforms. You simply package the library along with your function, and its asynchronous design helps handle time-sensitive executions without bogging down your environment.

What about handling different file sources, like user uploads or external APIs?

The Node.js library supports multiple input methods. You can pass in file streams from user uploads, retrieve files from external endpoints (using their URLs), or reference local storage paths—whatever best aligns with your application’s workflow.

Is there a way to apply multiple transformations on the same file?

Yes. You can chain conversions so that each step’s output becomes the input for the next. For instance, you might convert a DOCX to PDF, then extract images, and finally compress those images, all in one automated sequence.

How do I handle error scenarios or unexpected results?

The Node.js library uses promise-based (or async/await) flows. You can catch errors using standard JavaScript error handling, allowing you to gracefully manage any issues, retry operations as needed, or log data for further analysis.

Are there any code samples or advanced patterns I can reference?

Yes. The official GitHub repository contains snippets, more in-depth examples, and documentation illustrating how to configure different conversion parameters and orchestrate complex workflows. It’s an excellent resource for picking up best practices or troubleshooting specialized scenarios.

Try our Node.js library for free!