The official Node.js SDK for Optidash API

Head over to the Optidash API docs for a full API reference.

Installation

$ npm install optidash --save

Quick examples

Optidash API enables you to provide your images for processing in two ways - by uploading them directly to the API (Image Upload) or by providing a publicly available image URL (Image Fetch).

You may also choose your preferred response method on a per-request basis. By default, the Optidash API will return a JSON response with rich metadata pertaining to input and output images. Alternatively, you can use binary responses. When enabled, the API will respond with a full binary representation of the resulting (output) image. This Node.js integration exposes two convenience methods for interacting with binary responses: .toFile() and .toBuffer().

Image upload

Here is a quick example of uploading a local file for optimization and processing. It calls .toJSON() at a final step and instructs the API to return a JSON response.

const Optidash = require("optidash");

// Pass your Optidash API Key to the constructor
const opti = new Optidash("your-api-key");

// Upload an image from disk, resize it to 100 x 75,
// automatically enhance, and adjust sharpness parameter
opti.upload("path/to/input.jpg")
    .optimize({
        compression: "medium"
    })
    .resize({
        width: 100,
        height: 75
    })
    .auto({
        enhance: true
    })
    .adjust({
        unsharp: 10
    })
    .toJSON((err, meta) => {
        if (err) {
            return console.log(err);
        }

        // You'll find the full JSON metadata within the `meta` object
        if (meta.success) {
            console.log(meta.output.url);
        } else {
            console.log(meta.message);
        }
    });

Image fetch

If you already have your source visuals publicly available online, we recommend using Image Fetch by default. That way you only have to send a JSON payload containing image URL and processing steps. This method is also much faster than uploading a full binary representation of the image.

const Optidash = require("optidash");

// Pass your Optidash API Key to the constructor
const opti = new Optidash("your-api-key");

// Provide a publicly available image URL with `.fetch()` method,
// apply Gaussian blur using highly optimized PNG as the output format.
// We'll also use `.toFile()` method and stream the output image to disk
opti.fetch("https://www.website.com/image.jpg")
    .optimize({
        compression: "medium"
    })
    .filter({
        blur: {
            mode: "gaussian",
            value: 10
        }
    })
    .output({
        format: "png"
    })
    .toFile("path/to/output.png", (err, meta) => {
        if (err) {
            return console.log(err);
        }

        // You'll find the full JSON metadata within the `meta` object
        if (meta.success) {
            console.log(meta.output.url);
        } else {
            console.log(meta.message);
        }
    });

Ready to try Optidash?

Start optimizing your images smarter. Integrate in minutes.