Skip to content

ParallaxAPIs/parallaxapis-sdk-playwright

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Parallax Logo ParallaxAPIs Playwright SDK: Datadome & PerimeterX

Playwright SDK for bypassing DataDome and PerimeterX anti-bot protection.

πŸ“– Overview

ParallaxAPIs Playwright SDK provides seamless browser automation without anti-bot barriers. While browser automation is required, we handle all the complexity of bypassing DataDome and PerimeterX protection systems automatically, so you can focus on your automation logic.

What We Solve:

  • βœ… DataDome - Slider captchas, interstitial pages, automatic cookie injection
  • βœ… PerimeterX - Automatic cookie generation and injection (_px3), challenge solving

Key Benefits:

  • ⚑ Seamless Integration - Effortlessly plug in handlers that work out of the box with your existing Playwright setup
  • πŸŒ‰ Best of Both Worlds - Bridge between browser automation and request-based anti-bot solutions
  • πŸ”§ Simple API - Clean interface with comprehensive documentation
  • 🌐 Full Browser Context - Real browser environment for JavaScript-heavy sites
  • βš™οΈ Flexible Configuration - Custom browser options, contexts, and proxy settings
  • πŸͺ Automatic Cookie Handling - Set it and forget it - we inject cookies seamlessly
  • πŸ”„ Always Updated - We handle all reverse engineering and updates for you

πŸš€ Quick Start

Get started with ParallaxAPIs SDK's in under 5 minutes:

  1. Join our Discord - Connect with our community
  2. Create a ticket - Request your API key
  3. Get your free trial - Start testing immediately
  4. Install the SDK - Choose your preferred language
  5. Solve all anti-bots in seconds - Start bypassing DataDome, PerimeterX & more

πŸ“¦ Installation

npm install parallaxapis-sdk-playwright

NPM Install Playwright Demo


πŸ§‘β€πŸ’» PX Usage

⚑ SDK Initialization and usage

Initialization methods within the SDK will establish a browser environment and configure the necessary solvers. Once you've created these components with our SDK, you're fully prepared to proceed.

import { PerimeterxHandler } from "parallaxapis-sdk-playwright";

async function main() {
  const [page, browser] = await PerimeterxHandler.init({
    apiKey: "PX-KEY",
    apiHost: "parallaxhost.com", //optional
    proxy: `http://user:password@host:port`,
    proxyRegion: "eu",
    region: "com",
    site: "website",
    websiteUrl: "https://www.website.com/",
    disableLogging: true, // Optional: disable SDK logging
  });

  await page.goto("https://www.website.com/");

  /*

        You can use your browser solution however you want, ParallaxAPIs
        will handle the rest for you.

    */

  await browser.close();
}

main().catch(console.error);

Custom browser or context options

Additionally, you have the flexibility to provide your own browser configuration and context options as needed.

import { PerimeterxHandler } from "parallaxapis-sdk-playwright";

async function main() {
  const [page, browser] = await PerimeterxHandler.init(
    {
      apiKey: "PX-KEY",
      apiHost: "parallaxhost.com", //optional
      proxy: `http://user:password@host:port`,
      proxyRegion: "eu",
      region: "com",
      site: "website",
      websiteUrl: "https://www.website.com/",
    },
    {
      browserLaunchOptions: {
        executablePath: "/home/user/chrome/executable",
        // ...... More options
      },
      contextLaunchOptions: {
        isMobile: true,
        // ...... More options
      },
    },
  );

  await page.goto("https://www.website.com/");

  /*

        You can use your browser solution however you want, ParallaxAPIs
        will handle the rest for you.

    */

  await browser.close();
}

main().catch(console.error);

βš™οΈ SDK Configuration Options

You can configure SDK-level settings using the sdkConfig option in the initialization config. This allows you to customize request timeouts and use custom dispatchers.

import { PerimeterxHandler } from 'parallaxapis-sdk-playwright';
import { ProxyAgent } from 'undici';

async function main() {
    const [page, browser] = await PerimeterxHandler.init({
        apiKey: "PX-KEY",
        apiHost: "parallaxhost.com", //optional
        proxy: `http://user:password@host:port`,
        proxyRegion: "eu",
        region: "com",
        site: "website",
        websiteUrl: "https://www.website.com/",
        sdkConfig: {
            timeout: 30000,        // Request timeout in milliseconds (optional)
            bodyTimeout: 10000,    // Body timeout in milliseconds (optional)
            dispatcher: new ProxyAgent('http://custom-proxy:8080') // Custom proxy dispatcher (optional)
        }
    })

    await page.goto('https://www.website.com/');

    ...

    await browser.close();
}

main().catch(console.error);

Configuration Options

Core Options:

  • disableLogging (optional): Set to true to disable SDK logging output (default: false)

SDK Config Options:

  • timeout (optional): Maximum time in milliseconds for the entire request to complete
  • bodyTimeout (optional): Maximum time in milliseconds to wait for the response body
  • dispatcher (optional): Custom undici Dispatcher instance for advanced HTTP client configurations (connection pooling, pipelining, etc.)

πŸ§‘β€πŸ’» Datadome Usage

import { DatadomeHandler } from "parallaxapis-sdk-playwright";

async function main() {
  const [page, browser] = await DatadomeHandler.init({
    apiKey: "DD-KEY",
    apiHost: "parallaxhost.com", //optional
    proxy: `http://user:password@host:port`,
    proxyRegion: "eu",
    region: "com",
    site: "website",
    disableLogging: true, // Optional: disable SDK logging
  });

  await page.goto("https://www.website.com/");

  /*

        You can use your browser solution however you want, ParallaxAPIs
        will handle the rest for you.

    */

  await browser.close();
}

main().catch(console.error);

The system supports providing custom browser implementations and context options tailored to your requirements.

import { DatadomeHandler } from "parallaxapis-sdk-playwright";

async function main() {
  const [page, browser] = await DatadomeHandler.init(
    {
      apiKey: "DD-KEY",
      apiHost: "parallaxhost.com", //optional
      proxy: `http://user:password@host:port`,
      proxyRegion: "eu",
      region: "com",
      site: "website",
    },
    {
      browserLaunchOptions: {
        executablePath: "/home/user/chrome/executable",
        // ...... More options
      },
      contextLaunchOptions: {
        isMobile: true,
        // ...... More options
      },
    },
  );

  await page.goto("https://www.website.com/");

  /*

        You can use your browser solution however you want, ParallaxAPIs
        will handle the rest for you.

    */

  await browser.close();
}

main().catch(console.error);

Datadome with SDK Configuration

import { DatadomeHandler } from 'parallaxapis-sdk-playwright';
import { Agent } from 'undici';

async function main() {
    const [page, browser] = await DatadomeHandler.init({
        apiKey: "DD-KEY",
        apiHost: "parallaxhost.com", //optional
        proxy: `http://user:password@host:port`,
        proxyRegion: "eu",
        region: "com",
        site: "website",
        sdkConfig: {
            timeout: 30000,        // Request timeout in milliseconds
            bodyTimeout: 10000,    // Body timeout in milliseconds
            dispatcher: new Agent({
                connections: 100,
                pipelining: 10
            })
        }
    }, {
        browserLaunchOptions: {
            executablePath: "/home/user/chrome/executable"
        },
        contextLaunchOptions: {
            isMobile: true
        }
    })

    await page.goto('https://www.website.com/');

    ...

    await browser.close();
}

main().catch(console.error);

πŸ“š Documentation & Help

🌟 Contributing

Got feedback or found a bug? Feel free to open an issue or send us a pull request!

🏒 Enterprise

Unlock enterprise-grade performance with custom solutions, expanded limits, and expert support. Contact us to learn more.

πŸ“ License

MIT


πŸ”‘ Keywords

DataDome bypass β€’ PerimeterX bypass β€’ Anti-bot bypass β€’ Bot detection bypass β€’ CAPTCHA solver β€’ Playwright anti-bot β€’ Browser automation β€’ Playwright web scraping β€’ DataDome Playwright SDK β€’ PerimeterX Playwright SDK β€’ Automated browser bypass β€’ Playwright CAPTCHA solver β€’ Browser fingerprinting bypass β€’ Headless browser anti-bot β€’ Playwright automation β€’ Challenge solver Playwright β€’ Browser-based bypass β€’ Playwright bot detection

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •