Skip to content

A JavaScript (and TypeScript) SDK for the ScreenshotOne.com API to take screenshots of any URL

License

Notifications You must be signed in to change notification settings

screenshotone/jssdk

Repository files navigation

jssdk

Build NPM package

An official Screenshot API client for JavaScript and TypeScript.

It takes minutes to start taking screenshots. Just sign up to get access and secret keys, import the client, and you are ready to go.

The SDK client is synchronized with the latest screenshot API options.

Installation

npm install screenshotone-api-sdk --save

Usage

Generate a screenshot URL without executing the request. Or download the screenshot. It is up to you:

&signature=7f3419ece2c53ed2c7923c7d5deef290d662c3643822bf69ec8259ce10b3ea61 // download the screenshot and handle potential API errors try { const imageBlob = await client.take(options); const buffer = Buffer.from(await imageBlob.arrayBuffer()); fs.writeFileSync("example.png", buffer); } catch (error) { if (error instanceof screenshotone.APIError) { // An API error occurred with // HTTP Status Code: error.httpStatusCode // Error Code: error.errorCode // Error Message: error.errorMessage // Documentation URL: error.documentationUrl } else { // An unexpected error occurred console.error("An unexpected error occurred:", error.message); } }">
import * as fs from 'fs';
import * as screenshotone from 'screenshotone-api-sdk';

// create API client 
const client = new screenshotone.Client("<access key>", "<secret key>");

// set up options
const options = screenshotone.TakeOptions
    .url("https://example.com")
    .delay(3)
    .blockAds(true);    

// generate URL 
const url = client.generateTakeURL(options);
console.log(url);
// expected output: https://api.screenshotone.com/take?url=https://example.com&delay=3&block_ads=true&access_key=&signature=7f3419ece2c53ed2c7923c7d5deef290d662c3643822bf69ec8259ce10b3ea61

// download the screenshot and handle potential API errors
try {
    const imageBlob = await client.take(options);

    const buffer = Buffer.from(await imageBlob.arrayBuffer());
    fs.writeFileSync("example.png", buffer);
} catch (error) {
    if (error instanceof screenshotone.APIError) {
        // An API error occurred with 
        // HTTP Status Code: error.httpStatusCode
        // Error Code: error.errorCode
        // Error Message: error.errorMessage
        // Documentation URL: error.documentationUrl 
    } else {        
        // An unexpected error occurred
        console.error("An unexpected error occurred:", error.message);
    }
}

Build and publish (a manual for SDK developers)

To build and publish the SDK:

  1. Bump the version property in the package.json file.
  2. Run npm run prepare.
  3. Run npm publish.

License

screenshotone/jssdk is released under the MIT license.