• Builds
  • latest 0.0.1 / 2017-11-02
  • Created 2017-11-02
  • Last modified 2018-09-18
  • grade 9


Sadly, this actor has no description.


To run the actor, send a HTTP POST request to:<YOUR_API_TOKEN>

The POST payload will be passed as input for the actor. For more information, read the docs.

Example input

Content type: application/json; charset=utf-8

{ "url": "" }

Source code

Based on the apify/actor-node-puppeteer Docker image (see docs).

const Apify = require('apify');

Apify.main(async () => {
    const input = await Apify.getValue('INPUT');
    if (!input || !input.url) throw new Error('Invalid input, must be a JSON object with the "url" field!');
    console.log('Launching Puppeteer...');
    const browser = await Apify.launchPuppeteer();
    console.log(`Opening URL: ${input.url}`);  
    const page = await browser.newPage();
    await page.goto(input.url);
    // Get the "viewport" of the page, as reported by the page.
    console.log('Determining page dimensions...');
    const dimensions = await page.evaluate(() => ({
        width: document.documentElement.clientWidth,
        height: document.documentElement.clientHeight,
        deviceScaleFactor: window.devicePixelRatio
    console.log(`Dimension: ${JSON.stringify(dimensions)}`);
    // Grab a screenshot
    console.log('Saving screenshot...');
    const screenshotBuffer = await page.screenshot();
    await Apify.setValue('screenshot.png', screenshotBuffer, { contentType: 'image/png' });
    console.log('Closing Puppeteer...');
    await browser.close();
    console.log('You can check the output in the key-value on the following URLs:');
    const storeId = process.env.APIFY_DEFAULT_KEY_VALUE_STORE_ID;