Browser workflow automation

Automate the page state before every screenshot.

Navigate, sign in, click, type, wait, and capture the exact state you need. Reuse the workflow on demand, on a schedule, or through the API.

  • No concurrency throttling
  • 3 capture regions
  • Direct storage delivery
scheduled workflow
Scheduled browser automation workflow delivering website screenshots to cloud storage
Workflow completed
Repeatable capture

Build the interaction once. Run it whenever you need it.

Combine browser actions, scheduling, visual comparison, and direct storage delivery without maintaining your own browser workers.

Run concurrently

Process large URL lists without queuing behind artificial concurrency limits.

Validate by region

Replay the same workflow from the US, Europe, or Australia and Asia Pacific.

Deliver directly

Send captures to S3, Azure, Google Cloud, Cloudflare R2, SFTP, webhooks, or email.

Workflow phases

Control the browser before and after navigation.

Use pre-activities for setup and authentication, then post-activities to reach the exact visual state to capture.

Before navigation

Pre-activities

Open a login page, enter credentials, establish a session, or prepare an account before visiting the final target.

Load target
After page load

Post-activities

Click menus, type searches, wait for components, focus elements, work inside an iFrame, and capture the final state.

No programming required for basic workflows. Configure activities in a request template and add a schedule when the workflow is ready.

Explore scheduling
Browser actions

Use focused controls for each interaction.

Select elements by visible text, placeholder, CSS selector, or another supported identifier.

NavigateOpen a URL
ClickActivate an element
TypeEnter text
KeypressSend a key
SelectChoose an option
HideRemove visual noise
HoverReveal hover states
FocusScroll to content
WaitPause execution
Wait forWatch for an element
iFrameChange document context
FetchReturn a property
Practical walkthroughs

See complete workflows from setup to API request.

Follow three common patterns: a public search flow, a page behind authentication, and interaction inside an iFrame.

Example 1: Step-by-step Instructions to Interact with a Website Using Automation

In the following example, we will use Post-Activities to interact with the https://dev.to/ website by searching for "Hello World" and clicking on the "Newest" tab on the search results page.

1. Let's start by visiting the website (https://dev.to/):

DEV Community home page before running the search workflow


2. Create a Post Activity to type "Hello World" in the "Search..." text field:

Type activity configured for the DEV Community search input


3. Create a Post Activity to press the "Enter" key on the keyboard:

Keypress activity configured to submit the website search


DEV Community search results produced by the automated workflow


4. Create a Post Activity to click on the "Newest" tab:

Click activity configured for the Newest search-results tab


The final result:

Final website screenshot after completing the automated search workflow


Here are the technical details to replay the login request using the website screenshot API:

POST https://api.addscreenshots.com/screenshots?apikey=YOUR_API_KEY

{
  "url": "https://dev.to",
  "viewport": "1024x768",
  "quality": "80",
  "activities_after": [
    {
      "type": "Hello World",
      "element": "Search..."
    },
    {
      "keypress": "Enter"
    },
    {
      "click": "Newest"
    }
  ]
}

Your API key can be found on the API Keys page. Need an API Key? Sign up to get started.
For internal applications, replace YOUR_API_KEY with your own unique API Key.
For public facing websites or hotlinks, generate a signed URL.


Example 2: How to Take Screenshots of Pages Behind a Login

In the following example we will use Pre-Activities to navigate to a login page (https://app.addscreenshots.com/login), fill in our credentials and complete the login. Once we're logged in, we will navigate to the Storage Account page (https://app.addscreenshots.com/storage).

1. First, navigate to the login page of the website.

Add Screenshots login page used for the authenticated workflow


2. Automate the website login using Pre-Activities to:
a) Navigate to the login page,
b) Type "you@mail.com" in the text field with the placeholder "Enter Email Address...",
c) Type "Secret321" in the password field with the placeholder "Password",
d) Click on the element with the "Login" text

Pre-activities configured to complete the website login


The final result:

Final screenshot of a page behind the authenticated login


Here are the technical details to replay the search request using the Screenshot API:

POST https://api.addscreenshots.com/screenshots?apikey=YOUR_API_KEY

{
  "url": "https://app.addscreenshots.com/storage",
  "viewport": "1024x768",
  "quality": "80",
  "activities_before": [
    {
      "navigate": "https://app.addscreenshots.com/login"
    },
    {
      "type": "you@mail.com",
      "element": "Enter Email Address..."
    },
    {
      "type": "Secret321",
      "element": "Password"
    },
    {
      "click": "Login"
    }
  ]
}

Example 3: How to interact with an iFrame

In the following example we will use Post-Activities to interact with an iFrame (child page) on the https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe website by clicking on a menu item and only selecting the iFrame in the final screenshot.

1. Let's start by visiting the website:

MDN iFrame documentation page before automated interaction


2. Create a Post Activities to:
a) select the "iFrame" (make it the active document to interact with),
b) click on the "CSS" menu and
c) set the section to "iframe" (only show the iframe section)

Post-activities configured to interact with an iFrame


The final result:

Final screenshot containing the selected iFrame section


Here are the technical details to replay the iframe interaction request using the Screenshot API:

POST https://api.addscreenshots.com/screenshots?apikey=YOUR_API_KEY

{
  "url": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe",
  "viewport": "1024x768",
  "wait": "250",
  "section": "iframe",
  "quality": "80",
  "activities_after": [
    {
      "iframe": "iframe"
    },
    {
      "click": "CSS"
    }
  ]
}