clickscrollscreenshot

Browser Actions API

Click, fill, select, scroll and capture screenshots on the rendered page, then extract the result. One request, a result for every action.

Documentation
No credit card
SOC 2 aligned
99.9% uptime
Simple Pricing
$1
One dollar
=
5,000
Requests
Pay as you go
No subscriptions
Never expires
2,847,653+
Requests processed this week

How It Works

Request → rendered page → your actions → screenshot or extraction.

  1. 1

    Your request

    POST a URL with render_js: true and an ordered list in advanced.actions.

  2. 2

    Rendered page

    AlterLab opens the page in a managed Chromium browser and waits for it to load.

  3. 3

    Your actions

    Each action runs in order: click, fill, select, scroll, wait, evaluate.

  4. 4

    Screenshot or extraction

    You get the final HTML, Markdown or JSON, optional screenshots, and action_results.

Action Types at a Glance

Everything a person does on a page, as a JSON step.

18
Action types
20
Actions per request
60s
Action time budget
wait

Fixed delay, or wait until an element is visible. A selector wait that times out fails the action.

wait_for

Wait for an element to reach a state. Fails on timeout.

click

Click an element.

fill

Fill an input field with a value.

press

Press a keyboard key.

scroll

Scroll by a number of viewport heights.

infinite_scroll

Scroll repeatedly until the end of content or max_scrolls is reached.

screenshot

Capture a screenshot at this point in the sequence (returned as screenshot_url).

evaluate

Run JavaScript in the page. The return value is reported in result.

dismiss_consent

Remove the cookie consent overlay from the live page.

select

Choose an option in a <select> element.

hover

Hover over an element (menus, tooltips, lazy content).

click_text

Click the element whose visible text matches.

extract

Read text or an attribute from the first matching element into result.

check

Check a checkbox or radio button.

uncheck

Uncheck a checkbox.

wait_event

Wait for a page load state (e.g. after a navigation).

snapshot

Capture the page HTML or markdown at this point (returned as snapshot_url).

What Teams Build With Actions

The content you need often appears only after someone interacts with the page.

Clean screenshots for website audits and visual monitoring

dismiss_consent → wait_for → screenshot

E-commerce variant selection and price capture

select → wait_for → extract

Load-more and infinite-scroll feeds

click → wait_for → infinite_scroll

Search and form-driven pages

fill → press → wait_for

AI agents via MCP

MCP scrape tool → actions

No-code with n8n

n8n node → actions

Clean screenshots for website audits and visual monitoring

Dismiss the cookie notice, wait for the hero to load, then capture a full-page screenshot. Use it for SEO and accessibility audits, client reports, or visual change monitoring.

New to page captures? Read what screenshot capture is.

E-commerce variant selection and price capture

Pick a size or color from the variant selector and read the price that appears for it. Each extract action returns its value directly in action_results.

Load-more and infinite-scroll feeds

Click a Load more button or scroll until the feed stops growing, then extract every card in one response.

Search and form-driven pages

Type a query into a search box, press Enter and wait for the results list. Works for store locators, directories and filter panels.

AI agents via MCP

The hosted MCP server exposes the same actions to Claude, Cursor and other agents, so an agent can click through a page and read the result in one tool call.

Set up the hosted MCP server.

No-code with n8n

Add actions to the AlterLab n8n node and feed screenshots or extracted values into the rest of your workflow without writing code.

See the n8n integration guide.

One Request, Every Step Reported

Hide the cookie notice, choose a size, read the price and take a full-page screenshot.

Bash
curl -X POST https://api.alterlab.io/v1/scrape \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://shop.example.com/product/123",
  "advanced": {
    "render_js": true,
    "screenshot": true,
    "actions": [
      {
        "type": "dismiss_consent",
        "mode": "hide"
      },
      {
        "type": "select",
        "selector": "#size",
        "value": "M"
      },
      {
        "type": "wait_for",
        "selector": ".price",
        "state": "visible"
      },
      {
        "type": "extract",
        "selector": ".price"
      },
      {
        "type": "screenshot",
        "full_page": true
      }
    ]
  }
}'

Every action returns an entry in action_results with its success flag, result and screenshot URL. Try it on your own URL in the playground or read the full browser actions guide.

Actions Are Included

Pay for the rendered page, not for each click.

$0.004
Per browser-tier request
$0
Per action
+$0.0002
Per captured screenshot

Failed screenshot captures are free. PDF, extraction and OCR add-ons are billed as usual. See pricing for every tier.

Frequently Asked Questions

Browser actions guideOpen the playground

Your first scrape.
Sixty seconds.

Up to 5,000 free requests — about 5,000 Light, 500 Protected or 250 Dynamic requests. No credit card.Just a POST request.

terminal
curl -X POST https://api.alterlab.io/v1/scrape \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "formats": ["markdown"]}'

No credit card required · Up to 5,000 free requests (about 5,000 Light, 500 Protected or 250 Dynamic requests) · Balance never expires