# Power Automate - Scrape.do Integration > Source: https://scrape.do/documentation/integrations/power-automate/ 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: ```plaintext 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](https://dashboard.scrape.do). - Run the action with **url** `https://example.com`, **render** `true` and **returnJSON** `true`. - A status **200** with a body like `{"statusCode": 200, "content": "..."}` means the connector works. > If you're unable to get a response, visit the [playground](https://dashboard.scrape.do/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: ```plaintext 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): - **Scrape.do custom connector** (.zip) - **Connector Swagger definition** (.json) Full tutorial with every step: [How to Build a Bulk Web Scraper in Power Automate with Scrape.do (No Code)](/blog/power-automate-web-scraper/)