Airtop
App · AI Agents · 13 actions
Drive a real Chrome browser in the cloud from a workflow, using plain language instead of selectors: read a page, ask questions about it, extract structured data across paginated results, screenshot it, and click and type your way through it. Keep a browser signed in across steps with saved profiles, and hand a live view to a person when something needs a human.
Actions
| Action | What it does |
|---|---|
| Ask about a page | Open a page and answer a question about it in plain language: 'is this in stock?', 'who wrote this?', 'what does the pricing page say the top tier costs?'. |
| Check a page condition | Ask whether something is true of the page and get back a yes or no a later step can branch on: 'is the order marked shipped?', 'is there a cookie banner?'. |
| Click something | Click something on the page, described in your own words rather than as a CSS selector: 'the Accept cookies button', 'the second result'. |
| Delete saved profiles | Delete saved browser profiles by name. |
| End a browser session | Close a browser session so it stops billing. |
| Extract data from a page | Pull structured records off a page (listings, search results, a table), following 'next page' links as it goes. |
| List browser sessions | See the browser sessions on your Airtop account and how many minutes each has used. |
| Open a page | Open another tab in a browser session that's already running, and get back a link for watching or driving it yourself. |
| Read a page | Open a page in a real Chrome browser and return its text, with the navigation and scripts stripped out. |
| Start a browser session | Open a cloud browser that stays open across steps, and wait until it's ready. |
| Summarize a page | Open a page and summarize it. |
| Take a screenshot | Open a page and take a picture of it. |
| Type text | Type into a field described in your own words: 'the search box', 'the email field'. |
Ask about a page
Open a page and answer a question about it in plain language: 'is this in stock?', 'who wrote this?', 'what does the pricing page say the top tier costs?'. No selectors, and the answer survives a redesign of the page.
Inputs
- Page address
urltext - The page to work on. Leave this blank and fill in the session and window below to use a browser an earlier step already opened; that's how you reach a page behind a login.
- Question
prompttextRequired - What you want to know about the page.
- Browser session
session_idtext - Use a browser an earlier 'Start a browser session' step opened, instead of opening a new one. Leave blank to just use the address above.
- Browser tab
window_idtext - The tab from that same step. Needed whenever a browser session is given.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load. - Stop after (credits)
max_creditsnumber - Give up if the step has spent more than this many Airtop credits. Airtop checks between steps of the work, so it can overshoot a little.At least 1.
- Stop after (seconds)
max_secondsnumber - Give up if the step has been running longer than this. Browser steps are slow (a click can take minutes), so leave this generous.At least 1.
Outputs
answertextcredits_usednumberissueslistpartialtrue/falsestatustext
Example output
{
"answer": "The page explains that this domain is for use in examples.",
"credits_used": 1,
"issues": [],
"partial": false,
"status": "success"
}Check a page condition
Ask whether something is true of the page and get back a yes or no a later step can branch on: 'is the order marked shipped?', 'is there a cookie banner?'. This one looks at the page as an image, so it costs far more than the other steps on a busy page; set a credit ceiling if you're unsure.
Inputs
- Page address
urltext - The page to work on. Leave this blank and fill in the session and window below to use a browser an earlier step already opened; that's how you reach a page behind a login.
- Condition
conditiontextRequired - What should be true, in plain words.
- Browser session
session_idtext - Use a browser an earlier 'Start a browser session' step opened, instead of opening a new one. Leave blank to just use the address above.
- Browser tab
window_idtext - The tab from that same step. Needed whenever a browser session is given.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load. - Stop after (credits)
max_creditsnumber - Give up if the step has spent more than this many Airtop credits. Airtop checks between steps of the work, so it can overshoot a little.At least 1.
- Stop after (seconds)
max_secondsnumber - Give up if the step has been running longer than this. Browser steps are slow (a click can take minutes), so leave this generous.At least 1.
Outputs
condition_mettrue/falsecredits_usednumberissueslistpartialtrue/falsereasontextstatustext
Example output
{
"condition_met": true,
"credits_used": 1,
"issues": [],
"partial": false,
"reason": "The page shows the order status as shipped.",
"status": "success"
}Click something
Click something on the page, described in your own words rather than as a CSS selector: 'the Accept cookies button', 'the second result'. Slow: finding the element is itself an AI step and a click can take a few minutes.
Inputs
- Page address
urltext - The page to work on. Leave this blank and fill in the session and window below to use a browser an earlier step already opened; that's how you reach a page behind a login.
- What to click
element_descriptiontextRequired - Describe it the way you'd describe it to a person.
- Wait for the next page
wait_for_navigationtrue/false - Turn on when the click goes somewhere, so the next step sees the new page rather than the old one.Default:
false. - Browser session
session_idtext - Use a browser an earlier 'Start a browser session' step opened, instead of opening a new one. Leave blank to just use the address above.
- Browser tab
window_idtext - The tab from that same step. Needed whenever a browser session is given.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load. - Stop after (credits)
max_creditsnumber - Give up if the step has spent more than this many Airtop credits. Airtop checks between steps of the work, so it can overshoot a little.At least 1.
- Stop after (seconds)
max_secondsnumber - Give up if the step has been running longer than this. Browser steps are slow (a click can take minutes), so leave this generous.At least 1.
Outputs
credits_usednumberdetailtextissueslistpartialtrue/falsestatustext
Example output
{
"credits_used": 0,
"detail": "Click operation completed",
"issues": [],
"partial": false,
"status": "success"
}Delete saved profiles
Delete saved browser profiles by name. A profile holds the cookies of a signed-in browser, so deleting one signs that account out of every future session that would have used it.
Inputs
- Profile names
profile_nameslistRequired - The profiles to delete.
Outputs
countnumberdeletedtrue/falseprofile_nameslist
Example output
{
"count": 1,
"deleted": true,
"profile_names": [
"linkedin-login"
]
}End a browser session
Close a browser session so it stops billing. Give a profile name to keep whatever it's signed into, so a later run can start already signed in; the signed-in state is only saved when the session ends.
Inputs
- Browser session
session_idtextRequired - From an earlier 'Start a browser session' step.
- Save signed-in state as
save_profile_astext - A name to keep this browser's cookies and logins under, for 'Sign in as' on a later session. Leave blank to keep nothing.
Outputs
endedtrue/falseprofile_saved_astextsession_idtext
Example output
{
"ended": true,
"profile_saved_as": "",
"session_id": "0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9"
}Extract data from a page
Pull structured records off a page (listings, search results, a table), following 'next page' links as it goes. Describe the shape you want and the result comes back ready for a later step to loop over.
Inputs
- Page address
urltext - The page to work on. Leave this blank and fill in the session and window below to use a browser an earlier step already opened; that's how you reach a page behind a login.
- What to extract
prompttextRequired - Describe the records you want and the fields on each one.
- Result shape
output_schemaobject - An optional JSON schema for the answer. Give one and the result comes back as data rather than text, so a later step can loop over it.
- Browser session
session_idtext - Use a browser an earlier 'Start a browser session' step opened, instead of opening a new one. Leave blank to just use the address above.
- Browser tab
window_idtext - The tab from that same step. Needed whenever a browser session is given.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load. - Stop after (credits)
max_creditsnumber - Give up if the step has spent more than this many Airtop credits. Airtop checks between steps of the work, so it can overshoot a little.At least 1.
- Stop after (seconds)
max_secondsnumber - Give up if the step has been running longer than this. Browser steps are slow (a click can take minutes), so leave this generous.At least 1.
Outputs
answertextcredits_usednumberdataissueslistpartialtrue/falsestatustext
Example output
{
"answer": "{\"links\":[{\"text\":\"Learn more\",\"url\":\"https://iana.org\"}]}",
"credits_used": 3,
"data": {
"links": [
{
"text": "Learn more",
"url": "https://iana.org"
}
]
},
"issues": [],
"partial": false,
"status": "success"
}List browser sessions
See the browser sessions on your Airtop account and how many minutes each has used. Worth running on a schedule: a session a failed workflow left behind keeps billing until it goes idle, and this is what shows it.
Inputs
- Which sessions
statustext - Narrow it to sessions in one state.One of:
all(All sessions),running(Running now),initializing(Starting up),awaitingCapacity(Waiting for capacity),ended,completed,cancelled. Default:all. - How many
limitnumber - The most sessions to return, newest first.At least 1. Default:
10.
Outputs
countnumberhas_moretrue/falserunning_countnumbersessionslisttotalnumber
Example output
{
"count": 1,
"has_more": false,
"running_count": 1,
"sessions": [
{
"created_at": "2026-09-17T22:19:59.935Z",
"idle_timeout_minutes": 5,
"last_activity": "2026-09-17T22:19:59.935Z",
"minutes_used": null,
"profile_name": null,
"session_id": "0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9",
"status": "running"
}
],
"total": 1
}Open a page
Open another tab in a browser session that's already running, and get back a link for watching or driving it yourself.
Inputs
- Browser session
session_idtextRequired - From an earlier 'Start a browser session' step.
- Page address
urltextRequired - The page to open.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load.
Outputs
live_view_urltextsession_idtexturltextwindow_idtext
Example output
{
"live_view_url": "https://live.airtop.ai/0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9?token=...",
"session_id": "0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9",
"url": "https://example.com",
"window_id": "2c3d4e5f-6071-8293-a4b5-c6d7e8f9a0b1"
}Read a page
Open a page in a real Chrome browser and return its text, with the navigation and scripts stripped out. No AI is involved and it costs no Airtop credits, so use it when a later step is going to do the thinking.
Inputs
- Page address
urltext - The page to work on. Leave this blank and fill in the session and window below to use a browser an earlier step already opened; that's how you reach a page behind a login.
- Browser session
session_idtext - Use a browser an earlier 'Start a browser session' step opened, instead of opening a new one. Leave blank to just use the address above.
- Browser tab
window_idtext - The tab from that same step. Needed whenever a browser session is given.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load.
Outputs
content_typetextcredits_usednumberissueslistpartialtrue/falseselected_texttextstatustexttexttexttitletext
Example output
{
"content_type": "text/plain",
"credits_used": 0,
"issues": [],
"partial": false,
"selected_text": "",
"status": "success",
"text": "Example Domain\n\nThis domain is for use in examples.",
"title": "Example Domain"
}Start a browser session
Open a cloud browser that stays open across steps, and wait until it's ready. Use it when several steps work on the same site, or when you need to be signed in. Always pair it with an 'End a browser session' step; a browser left open bills until it goes idle.
Inputs
- Starting page
urltext - Open this page straight away. Leave blank to start with a blank tab.
- Sign in as
profile_nametext - The name of a saved Airtop profile to load, so the browser starts already signed in. Create one by signing in through a live view and saving it when the session ends.
- Close after idle for
idle_timeout_minutesnumber - Minutes of inactivity before Airtop closes the browser by itself. This is the backstop that stops a failed workflow billing forever, so keep it short.From 1 to 1440. Default:
5. - Solve CAPTCHAs
solve_captchatrue/false - Let Airtop work through CAPTCHA challenges itself.Default:
false. - Use a residential proxy
use_proxytrue/false - Browse through Airtop's residential proxy, for sites that block data-centre traffic.Default:
false.
Outputs
created_attextidle_timeout_minutesnumberlast_activitytextlive_view_urltextminutes_usednumberprofile_nametextsession_idtextstatustextwindow_idtext
Example output
{
"created_at": "2026-09-17T22:19:59.935Z",
"idle_timeout_minutes": 5,
"last_activity": "2026-09-17T22:19:59.935Z",
"live_view_url": "https://live.airtop.ai/0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9?token=...",
"minutes_used": null,
"profile_name": null,
"session_id": "0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9",
"status": "running",
"window_id": "1b2c3d4e-5f60-7182-93a4-b5c6d7e8f9a0"
}Summarize a page
Open a page and summarize it. Add a prompt to steer what the summary is about (the pricing, the risks, what changed), rather than a general precis.
Inputs
- Page address
urltext - The page to work on. Leave this blank and fill in the session and window below to use a browser an earlier step already opened; that's how you reach a page behind a login.
- Focus on
prompttext - What the summary should be about. Leave blank for a general summary.
- Browser session
session_idtext - Use a browser an earlier 'Start a browser session' step opened, instead of opening a new one. Leave blank to just use the address above.
- Browser tab
window_idtext - The tab from that same step. Needed whenever a browser session is given.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load. - Stop after (credits)
max_creditsnumber - Give up if the step has spent more than this many Airtop credits. Airtop checks between steps of the work, so it can overshoot a little.At least 1.
- Stop after (seconds)
max_secondsnumber - Give up if the step has been running longer than this. Browser steps are slow (a click can take minutes), so leave this generous.At least 1.
Outputs
credits_usednumberissueslistpartialtrue/falsestatustextsummarytext
Example output
{
"credits_used": 1,
"issues": [],
"partial": false,
"status": "success",
"summary": "The page describes a domain reserved for examples."
}Take a screenshot
Open a page and take a picture of it. Comes back as an image you can attach to an email or a message. Costs no Airtop credits.
Inputs
- Page address
urltext - The page to work on. Leave this blank and fill in the session and window below to use a browser an earlier step already opened; that's how you reach a page behind a login.
- Browser session
session_idtext - Use a browser an earlier 'Start a browser session' step opened, instead of opening a new one. Leave blank to just use the address above.
- Browser tab
window_idtext - The tab from that same step. Needed whenever a browser session is given.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load.
Outputs
credits_usednumberexpires_attextimagetextimage_formattextissueslistpartialtrue/falsestatustext
Example output
{
"credits_used": 0,
"expires_at": "",
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...",
"image_format": "base64",
"issues": [],
"partial": false,
"status": "success"
}Type text
Type into a field described in your own words: 'the search box', 'the email field'. Airtop reports the keystrokes as sent, which isn't the same as the page acting on them, so turn on 'Press Enter' to submit.
Inputs
- Page address
urltext - The page to work on. Leave this blank and fill in the session and window below to use a browser an earlier step already opened; that's how you reach a page behind a login.
- Text to type
texttextRequired - What to put in the field.
- Where to type
element_descriptiontext - Describe the field. Leave blank to type wherever the page already has the cursor.
- Clear the field first
clear_firsttrue/false - Empty the field before typing into it.Default:
false. - Press Enter afterwards
press_entertrue/false - Submit the form, or run the search.Default:
false. - Wait for the next page
wait_for_navigationtrue/false - Turn on when pressing Enter goes somewhere, so the next step sees the new page.Default:
false. - Browser session
session_idtext - Use a browser an earlier 'Start a browser session' step opened, instead of opening a new one. Leave blank to just use the address above.
- Browser tab
window_idtext - The tab from that same step. Needed whenever a browser session is given.
- Consider the page loaded
wait_untiltext - How long to wait after opening the address before acting. Only applies when this step opens the page.One of:
load(When the page and its images have loaded),domContentLoaded(As soon as the HTML is ready (fastest)),complete(When the page and everything embedded in it have loaded),noWait(Don't wait at all). Default:load. - Stop after (credits)
max_creditsnumber - Give up if the step has spent more than this many Airtop credits. Airtop checks between steps of the work, so it can overshoot a little.At least 1.
- Stop after (seconds)
max_secondsnumber - Give up if the step has been running longer than this. Browser steps are slow (a click can take minutes), so leave this generous.At least 1.
Outputs
credits_usednumberdetailtextissueslistpartialtrue/falsestatustext
Example output
{
"credits_used": 0,
"detail": "Type operation completed",
"issues": [],
"partial": false,
"status": "success"
}