Integrations
Fresh Source: docs.airtop.aiAirtop integrates with browser automation frameworks (Playwright, Puppeteer, Selenium) and no-code platforms (Make, n8n).
Playwright
Connect Playwright to an Airtop cloud browser session via CDP (Chrome DevTools Protocol).
typescript
import Airtop from '@airtop/sdk';
import { chromium } from 'playwright';
const airtop = new Airtop({ apiKey: process.env.AIRTOP_API_KEY });
// Create session and get CDP URL
const session = await airtop.sessions.create({
configuration: { timeoutMinutes: 15 },
});
const sessionId = session.data.id;
const cdpUrl = session.data.cdpWsUrl;
// Connect Playwright via CDP
const browser = await chromium.connectOverCDP(cdpUrl);
const context = browser.contexts()[0];
const page = context.pages()[0] || await context.newPage();
// Use Playwright APIs
await page.goto('https://example.com');
const title = await page.title();
console.log('Page title:', title);
// Take screenshot
await page.screenshot({ path: 'screenshot.png' });
// Cleanup
await browser.close();
await airtop.sessions.terminate(sessionId);python
from airtop import Airtop
from playwright.sync_api import sync_playwright
airtop_client = Airtop(api_key="your-api-key")
# Create session and get CDP URL
session = airtop_client.sessions.create(
configuration={"timeoutMinutes": 15}
)
session_id = session.data.id
cdp_url = session.data.cdp_ws_url
# Connect Playwright via CDP
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(cdp_url)
context = browser.contexts[0]
page = context.pages[0] if context.pages else context.new_page()
page.goto("https://example.com")
print(f"Page title: {page.title()}")
page.screenshot(path="screenshot.png")
browser.close()
airtop_client.sessions.terminate(session_id)Puppeteer
Connect Puppeteer to an Airtop session via WebSocket.
typescript
import Airtop from '@airtop/sdk';
import puppeteer from 'puppeteer';
const airtop = new Airtop({ apiKey: process.env.AIRTOP_API_KEY });
const session = await airtop.sessions.create({
configuration: { timeoutMinutes: 15 },
});
const sessionId = session.data.id;
const wsUrl = session.data.cdpWsUrl;
// Connect Puppeteer
const browser = await puppeteer.connect({
browserWSEndpoint: wsUrl,
});
const pages = await browser.pages();
const page = pages[0] || await browser.newPage();
await page.goto('https://example.com');
const title = await page.title();
console.log('Page title:', title);
await browser.disconnect();
await airtop.sessions.terminate(sessionId);python
# Puppeteer is Node.js only — use Playwright for Python
# See Playwright section aboveSelenium
Connect Selenium WebDriver to an Airtop session.
typescript
// Selenium is typically used with Java/Python — see Python examplepython
from airtop import Airtop
from selenium import webdriver
airtop_client = Airtop(api_key="your-api-key")
session = airtop_client.sessions.create(
configuration={"timeoutMinutes": 15}
)
session_id = session.data.id
selenium_url = session.data.selenium_url
# Connect Selenium
options = webdriver.ChromeOptions()
driver = webdriver.Remote(
command_executor=selenium_url,
options=options
)
driver.get("https://example.com")
print(f"Page title: {driver.title}")
driver.quit()
airtop_client.sessions.terminate(session_id)Make (formerly Integromat)
Airtop provides native Make modules for no-code automation.
Available Modules
| Module | Description |
|---|---|
| Create Session | Start a cloud browser session |
| Create Window | Open a URL in the session |
| Page Query | Ask questions about page content |
| Scrape Content | Extract page content |
| Click | Click elements on the page |
| Type | Type text into inputs |
| Fill Form | AI-powered form filling |
| Terminate Session | End the session |
Setup
- Install the Airtop app from the Make marketplace
- Add your API key in the connection settings
- Drag Airtop modules into your scenario
- Configure each module with session/window IDs from previous steps
n8n
Airtop provides n8n nodes for workflow automation.
Available Nodes
| Node | Description |
|---|---|
| Airtop | Main node with all operations as a dropdown |
Setup
- Install the Airtop community node in n8n
- Add your API key as a credential
- Add the Airtop node to your workflow
- Select the operation (Create Session, Page Query, etc.)
When to Use Which
| Framework | Best For |
|---|---|
| Airtop SDK | AI-powered operations (scrape, query, fill, monitor) |
| Playwright | Complex browser automation with Airtop's cloud infrastructure |
| Puppeteer | Node.js projects needing fine-grained browser control |
| Selenium | Java/Python projects with existing Selenium codebases |
| Make/n8n | No-code automations, connecting Airtop to other services |
Hybrid Approach
Combine Airtop's AI APIs with framework capabilities:
typescript
// Use Airtop for AI + Playwright for precise control
const browser = await chromium.connectOverCDP(cdpUrl);
const page = browser.contexts()[0].pages()[0];
// Playwright for navigation
await page.goto('https://example.com/dashboard');
await page.waitForSelector('.data-table');
// Airtop AI for intelligent extraction
const data = await airtop.windows.pageQuery(sessionId, windowId, {
prompt: 'Extract all rows from the data table with columns: Name, Status, Date',
configuration: { outputSchema: { /* ... */ } },
});