logo

Power Automate - Scrape.do Integration

View as Markdown

Step-by-step guide to integrate Scrape.do with Power Automate through a custom connector for bulk web scraping flows

Scrape.do works in Power Automate as a custom connector with one action, Scrape a URL. A cloud flow reads URLs from a Google Sheet, scrapes each one through the connector and writes the rendered HTML back next to it.

Custom connectors are a premium feature: any flow that uses one needs a Power Automate Premium license or the free 90-day Premium trial.

1. Create the Custom Connector

To skip this step, import the connector package from the downloads below and go to step 2.

  • Go to Custom connectors > New custom connector > Create from blank and name it Scrapedo.
  • On the General tab:
    • Host - api.scrape.do
    • Base URL - /
    • Scheme - HTTPS
  • On the Security tab, choose API Key and set:
    • Parameter label - API Token
    • Parameter name - token
    • Parameter location - Query
  • On the Definition tab, add a New action with Summary Scrape a URL and Operation ID ScrapeUrl.
  • Under Request, click Import from sample, choose GET and paste:
https://api.scrape.do/?url=https%3A%2F%2Fexample.com&render=true&returnJSON=true
  • Open the url parameter and mark it Required. Leave render and returnJSON optional.
  • Click Create connector.

Scrape.do reads the token from the token query parameter. Sent as a header, it returns an access-denied response.

2. Test the Connector

  • On the Test tab, create a new connection and paste your API token from your dashboard.
  • Run the action with url https://example.com, render true and returnJSON true.
  • A status 200 with a body like {"statusCode": 200, "content": "<!DOCTYPE html>..."} means the connector works.

If you're unable to get a response, visit the playground and experiment with parameters like Super, Render JavaScript, and Block Resources until you get a successful response.

3. Prepare the Spreadsheet

Create a Google Sheet with two columns: url holds your target URLs, one per row, and result stays empty for the flow to fill. Clear result before every run.

4. Build the Flow

Create an Instant cloud flow with a Manually trigger a flow trigger and add these actions in order:

  1. Get rows (Google Sheets) - Point it at your file and worksheet.
  2. Apply to each - Set its input to the value output of Get rows.
  3. Scrape a URL (your Scrapedo connector), inside the loop - Set Url to the url column and render to true for JavaScript-heavy pages.
  4. Update row (Google Sheets), inside the loop - Set File and Worksheet to the same sheet and Row id to __PowerAppsId__.

5. Map the Scraped HTML

The action returns its body as a string, so parse it before you select content. In Update row, open the result field, switch to the expression (fx) editor and enter:

json(body('Scrape_a_URL'))?['content']

Save and run the flow. Each row's result cell fills with the scraped HTML.

Downloads (import the connector first, then the flow):

Full tutorial with every step: How to Build a Bulk Web Scraper in Power Automate with Scrape.do (No Code)

On this page