Reference · Tools

Airtop

Automate cloud browser sessions, perform AI-powered page extraction, run agents, and manage browser files via the Airtop API.

Action (binary) Productivity v1 Binary data

The Airtop node connects BusyBot to Airtop's cloud browser platform, letting you spin up browser sessions, navigate pages, and extract structured data using plain-language AI prompts — no CSS selectors required. You could, for example, build a workflow that opens a product page, runs a smartScrape to pull pricing, and saves a screenshot as a binary file — all in one automated flow.

Node type
Action (binary)
Parameters
35
Outputs
Output, Error
Credentials
Airtop API

Airtop

Automate cloud browser sessions, AI-powered extractions, agents, and files with Airtop.

Overview

Airtop provides a cloud browser automation platform with AI-native features. Resources: session (create/terminate cloud browsers), window (create/close/loadUrl/takeScreenshot), extraction (queryPage with AI prompt, smartScrape), interaction (click/type/hover via natural language element targeting), agent (invoke and poll autonomous agents), file (get/getMany/delete session files). Screenshot output can be returned as binary data on the output item.

Category: Productivity
Tool Name: airtop
Version: 1

Appearance: Icon: lucide-Globe | Color: #6366F1

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Airtop API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Agentagent
Extractionextraction
Filefile
Interactioninteraction
Sessionsession
Windowwindow

Operations

ResourceOperationValueDescription
SessionCreatecreateCreate a new browser session.
SessionTerminateterminateTerminate an existing session.
WindowClosecloseClose a browser window.
WindowCreatecreateOpen a new browser window in a session.
WindowLoad URLloadUrlNavigate the window to a URL.
WindowTake ScreenshottakeScreenshotCapture a screenshot of the window.
ExtractionQuery PagequeryPageAsk an AI prompt about the current page.
ExtractionSmart ScrapesmartScrapeAI-powered structured scrape of the full page.
InteractionClickclickClick on a page element identified by description.
InteractionHoverhoverHover over a page element identified by description.
InteractionTypetypeType text into a page element identified by description.
AgentRunrunInvoke an agent and poll for its result.
FileDeletedeleteDelete a file by ID.
FileGetgetRetrieve metadata for a single file.
FileGet ManygetManyList session files.

Parameters

Session: Create

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.
Timeout MinutesnumberNo30Number of minutes before the session automatically times out (1 to 10080).
ProxystringNoOptional proxy URL to route browser traffic through (e.g. http://proxy.example.com:8080).
Persist ProfilebooleanNofalseWhether to persist the browser profile (cookies, localStorage) between sessions.

Session: Terminate

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.

Window: Close

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.
Window ID (windowId)stringNoThe Airtop window ID within the session.

Window: Create

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.
Window ID (windowId)stringNoThe Airtop window ID within the session.
URL (url)stringNoThe URL to load in the new window (create) or navigate to (loadUrl). Leave empty on create to open a blank window.
Wait UntiloptionsNoloadWhen to consider navigation complete.
Options: load (wait until the load event fires), domContentLoaded (wait until DOMContentLoaded fires), complete (wait until the page is fully loaded)

Window: Load URL

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.
Window ID (windowId)stringNoThe Airtop window ID within the session.
URL (url)stringNoThe URL to load in the new window (create) or navigate to (loadUrl). Leave empty on create to open a blank window.
Wait UntiloptionsNoloadWhen to consider navigation complete.
Options: load (wait until the load event fires), domContentLoaded (wait until DOMContentLoaded fires), complete (wait until the page is fully loaded)

Window: Take Screenshot

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.
Window ID (windowId)stringNoThe Airtop window ID within the session.
Output Image As BinarybooleanNotrueWhether to decode the screenshot base64 data URI and store it as binary data on the output item. When false, the raw data URI string is returned in the JSON. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use.
Binary Property NamestringNoscreenshotName of the binary property on the output item that will hold the screenshot image. (shown when Output Image As Binary is true)

Extraction: Query Page

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID. If left empty along with Window ID, a temporary session and window will be created automatically for the extraction (auto-create mode).
Window ID (windowId)stringNoThe Airtop window ID. If left empty along with Session ID, a temporary session and window will be created automatically.
URL (url)stringNoURL to load before extracting (used only in auto-create session mode when sessionId and windowId are empty).
PromptstringNoThe AI prompt to send to the page. For example: “What is the price of the first product?”
Output Schema (JSON)stringNoOptional JSON Schema string defining the expected output structure. The AI will attempt to return data conforming to this schema.
Parse JSON OutputbooleanNofalseWhether to attempt JSON.parse on the extraction result. When true, if the response is valid JSON it will be placed as a parsed object in the output.

Extraction: Smart Scrape

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID. If left empty along with Window ID, a temporary session and window will be created automatically for the extraction (auto-create mode).
Window ID (windowId)stringNoThe Airtop window ID. If left empty along with Session ID, a temporary session and window will be created automatically.
URL (url)stringNoURL to load before extracting (used only in auto-create session mode when sessionId and windowId are empty).
Output Schema (JSON)stringNoOptional JSON Schema string defining the expected output structure. The AI will attempt to return data conforming to this schema.
Parse JSON OutputbooleanNofalseWhether to attempt JSON.parse on the extraction result. When true, if the response is valid JSON it will be placed as a parsed object in the output.

Interaction: Click

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.
Window ID (windowId)stringNoThe Airtop window ID within the session.
Element DescriptionstringNoNatural language description of the element to target. For example: “the blue Submit button” or “the email input field”.
Click TypeoptionsNoclickType of click to perform.
Options: click (standard single click), doubleClick, rightClick (right-click, opening the context menu)

Interaction: Hover

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.
Window ID (windowId)stringNoThe Airtop window ID within the session.
Element DescriptionstringNoNatural language description of the element to target. For example: “the blue Submit button” or “the email input field”.

Interaction: Type

ParameterTypeRequiredDefaultDescription
Session ID (sessionId)stringNoThe Airtop session ID.
Window ID (windowId)stringNoThe Airtop window ID within the session.
Element DescriptionstringNoNatural language description of the element to target. For example: “the blue Submit button” or “the email input field”.
TextstringNoThe text to type into the element.
Press Enter After TypingbooleanNofalseWhether to press the Enter key after typing the text.

Agent: Run

ParameterTypeRequiredDefaultDescription
Agent IDstringNoThe Airtop agent ID to invoke.
Config VariablesstringNo{}JSON object of configuration variables to pass to the agent (e.g. { “url”: “https://example.com” }).
Max Poll Time (ms)numberNo120000Maximum time in milliseconds to poll for the agent run result before timing out.

File: Delete

ParameterTypeRequiredDefaultDescription
File IDstringNoThe Airtop file ID.

File: Get

ParameterTypeRequiredDefaultDescription
File IDstringNoThe Airtop file ID.

File: Get Many

ParameterTypeRequiredDefaultDescription
Session ID Filter (sessionId)stringNoFilter files by session ID. Leave empty to return files from all sessions.
Return AllbooleanNofalseWhether to return all files or limit to a maximum number.
LimitnumberNo20Maximum number of files to return. (shown when Return All is false)
OffsetnumberNo0Number of files to skip before returning results (for pagination).

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo5Maximum number of items to process concurrently.

Output Data

The Airtop response is merged into the output item’s JSON at the top level — there is no wrapper property. The incoming item JSON passes through and the response fields are written over it, so reference results directly, e.g. {{ $json.sessionId }}. Binary data already on the input item is forwarded.

Every operation produces one output item per input item, except File: Get Many, which fans out — one output item per file returned. When that listing is empty it emits a single item carrying only the incoming JSON.

Resource / OperationWhat lands on the output item
Session: CreateThe created session as returned by Airtop.
Session: Terminateterminated: true and the sessionId you terminated.
Window: CreateThe created window as returned by Airtop.
Window: Closeclosed: true, plus sessionId and windowId.
Window: Load URLThe navigation response.
Window: Take ScreenshotWith Output Image As Binary on, the image is stored under the binary property you name and the JSON carries sessionId and windowId. With it off, the API response is merged instead, including data — the base64 data URI.
Extraction: Query PageThe extraction response, whose data holds the model’s answer. With Parse JSON Output on, data becomes the parsed object whenever it contains valid JSON.
Extraction: Smart ScrapeThe scrape response, with the same data and Parse JSON Output behavior as Query Page.
Interaction: Click / Hover / TypeThe interaction response from Airtop.
Agent: RunThe polled run result. If the invoke call returns no run identifier, the invoke response is returned instead and no polling happens.
File: GetThe file’s metadata.
File: Get ManyOne item per file, each carrying that file’s fields.
File: Deletedeleted: true and the fileId you deleted.

In extraction auto-create mode — Session ID and Window ID both empty — a temporary session and window are opened for the URL you supply and torn down once the extraction finishes, so no session or window ID is left for a later node to reuse.

Usage Examples

  • Create an Airtop browser session
  • Open a browser window and navigate to a URL
  • Take a screenshot of a browser window
  • Extract data from a page using an AI prompt
  • Click on an element described in natural language
  • Run an Airtop autonomous agent and wait for results
  • List all files for a session

Example Configuration

Create a browser session that persists cookies between runs:

{
  "type": "airtop",
  "parameters": {
    "resource": "session",
    "operation": "create",
    "timeoutMinutes": 60,
    "persistProfile": true
  }
}

Open a window in that session and wait for the page to finish loading:

{
  "type": "airtop",
  "parameters": {
    "resource": "window",
    "operation": "create",
    "sessionId": "{{ $json.sessionId }}",
    "url": "{{ $json.pageUrl }}",
    "waitUntil": "complete"
  }
}

Capture the window as a PNG on a named binary property:

{
  "type": "airtop",
  "parameters": {
    "resource": "window",
    "operation": "takeScreenshot",
    "sessionId": "{{ $json.sessionId }}",
    "windowId": "{{ $json.windowId }}",
    "outputImageAsBinary": true,
    "binaryPropertyName": "screenshot"
  }
}

Ask an AI question about a page without managing a session yourself — leaving Session ID and Window ID empty opens a temporary browser for the URL:

{
  "type": "airtop",
  "parameters": {
    "resource": "extraction",
    "operation": "queryPage",
    "url": "{{ $json.productUrl }}",
    "prompt": "What is the price of the first product?",
    "outputSchema": "{\"type\":\"object\",\"properties\":{\"price\":{\"type\":\"string\"},\"currency\":{\"type\":\"string\"}}}",
    "parseJsonOutput": true
  }
}

Fill a field and submit it in one step:

{
  "type": "airtop",
  "parameters": {
    "resource": "interaction",
    "operation": "type",
    "sessionId": "{{ $json.sessionId }}",
    "windowId": "{{ $json.windowId }}",
    "elementDescription": "the email input field",
    "text": "{{ $json.email }}",
    "pressEnterAfterTyping": true
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Automate cloud browser sessions, AI extractions, agents, and file management via the Airtop API.

Frequently asked questions

What credentials do I need to use the Airtop node?

You need an Airtop API credential, configured in BusyBot as 'airtopApi'. You'll get this API key from your Airtop account. Without it, none of the node's operations — sessions, extractions, agents, or file management — will authenticate.

What resources and actions does this node actually cover?

The node covers six resource types: session (create and terminate cloud browsers), window (create, close, load a URL, or take a screenshot), extraction (queryPage with an AI prompt, or smartScrape), interaction (click, type, or hover using natural language element targeting), agent (invoke and poll autonomous agents), and file (get, list, or delete session files). Together that's 35 configurable parameters across those operations.

How does screenshot output work — do I get an image file back?

Yes. The Airtop node handles binary files, so when you use the takeScreenshot window action, the screenshot can be returned as binary data on the output item. You can then pass that binary directly to a file-write node, an email attachment, or any other node that accepts binary input in your BusyBot workflow.

What's the difference between queryPage and smartScrape for extraction?

Both are AI-driven extraction operations under the extraction resource. queryPage lets you supply a free-form natural language prompt to ask a specific question about the page's content. smartScrape is designed to automatically identify and pull structured data from a page without you having to define the exact schema. Use queryPage when you know what you're looking for; smartScrape when you want the AI to infer the relevant structure.

Does the node have separate error handling, or do failures just stop the workflow?

The Airtop node exposes two distinct outputs: Output and Error. This means you can wire up a separate branch in your workflow to handle failures — for instance, logging an error or sending an alert — without the whole flow halting. Any operation that fails will route through the Error output rather than silently dropping.

Build with the Airtop node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Airtop API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.