> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapegraphai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Make

> Use ScrapeGraphAI inside Make.com scenarios to scrape, extract, search, crawl, and monitor web pages

## Overview

The ScrapeGraphAI app for Make.com lets you connect any automation scenario to ScrapeGraph's v2 API — no code required. Fetch pages, extract structured data with an AI prompt, run web searches, kick off multi-page crawls, and schedule monitors, all as native Make modules.

<CardGroup cols={2}>
  <Card title="ScrapeGraphAI on Make" icon="puzzle-piece" href="https://www.make.com/en/integrations/scrapegraphai">
    Install the app from Make's marketplace
  </Card>

  <Card title="ScrapeGraphAI Dashboard" icon="key" href="https://scrapegraphai.com/dashboard">
    Get your API key
  </Card>
</CardGroup>

## Installation

1. Open your Make.com workspace and go to **Connections**.
2. Search for **ScrapeGraphAI** and click **Install**.
3. When prompted, enter your `SGAI-APIKEY` from the [dashboard](https://scrapegraphai.com/dashboard).
4. Click **Save** — the connection is shared across all modules in your scenario.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-connection.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=5c6282704d0b2f792b10fb5ef7eee543" alt="ScrapeGraphAI connection dialog in Make" width="2940" height="1612" data-path="integrations/images/make-connection.png" />
</Frame>

## Example: Extract product data into Google Sheets

This scenario runs daily, extracts all products from an Amazon search page, and saves each one as a row in Google Sheets — no code required.

**Full scenario flow:**

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-scenario-extract-sheets.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=355a7693ef6fd30c115759bc332e1121" alt="Full scenario: Schedule → Extract → Iterator → Google Sheets" width="2940" height="1612" data-path="integrations/images/make-scenario-extract-sheets.png" />
</Frame>

**Step 1 — Schedule trigger**: Set the scenario to run daily (or any interval).

**Step 2 — Extract module**: Configure with your target URL, an extraction prompt, and an output schema.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-extract.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=5e2abb96a49c1279c00be941169ca8c9" alt="Extract module configuration" width="2940" height="1612" data-path="integrations/images/make-extract.png" />
</Frame>

* **URL**: The product listing page to extract from
* **Extraction Prompt**: `Extract all products on the page with their name, price, rating, and number of reviews`
* **Output Schema (JSON)**:

```json theme={null}
{
  "type": "object",
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string"},
          "price": {"type": "string"},
          "rating": {"type": "number"},
          "reviews": {"type": "number"}
        }
      }
    }
  }
}
```

**Step 3 — Iterator**: Add a **Flow Control → Iterator** module and set the **Array** field to `{{2.json.products}}`. This loops through each product and passes it to the next module one at a time.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-iterator.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=14602b642caae348802a886c0826ec6d" alt="Iterator module configuration" width="2940" height="1612" data-path="integrations/images/make-iterator.png" />
</Frame>

**Step 4 — Google Sheets: Add a Row**: Map each field from the Iterator output:

* **Name** → `{{value.name}}`
* **Price** → `{{value.price}}`
* **Rating** → `{{value.rating}}`
* **Reviews** → `{{value.reviews}}`

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-sheets-config.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=5335dd4c0d50bd9e2802a7c285750918" alt="Google Sheets module configuration" width="2940" height="1612" data-path="integrations/images/make-sheets-config.png" />
</Frame>

**Result**: Every product on the page is saved as a separate row.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-sheets-result.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=4e658a99a09a45884727da89c7b00865" alt="Google Sheets result with extracted product data" width="2940" height="1612" data-path="integrations/images/make-sheets-result.png" />
</Frame>

***

## Modules

### Scrape a URL

Fetch a URL and return its content in one or more formats: Markdown, HTML, links, images, a plain-text summary, or branding elements.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-scrape.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=c571bd365df78b3079a85fda580ca284" alt="Scrape a URL module configuration" width="2940" height="1612" data-path="integrations/images/make-scrape.png" />
</Frame>

| Field | Description |
| - | - |
| URL | The page to fetch |
| Format | Output format — Markdown, HTML, Links, Images, Summary, Branding |
| HTML Mode | Rendering mode — Normal, Reader, Prune (markdown / HTML formats) |
| JSON Prompt | Natural-language description of what to extract (JSON format only) |
| JSON Schema | Optional JSON Schema string to enforce output shape (JSON format only) |
| Full Page / Width / Height / Quality | Screenshot tuning (Screenshot format only) |
| Content Type | Optional override — Auto, HTML, or PDF |
| Fetch Config | Optional fetch options — see [Fetch Config](#fetch-config) |

***

### Extract data from URL

Send a URL, raw HTML, or markdown to ScrapeGraph and get back structured JSON — driven by a natural-language prompt and an optional JSON schema.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-extract.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=5e2abb96a49c1279c00be941169ca8c9" alt="Extract data from URL module configuration" width="2940" height="1612" data-path="integrations/images/make-extract.png" />
</Frame>

| Field | Description |
| - | - |
| Source Type | `URL`, `Raw HTML`, or `Markdown` — picks which input field is used |
| URL / HTML / Markdown | The content to extract from (one is shown based on Source Type) |
| Extraction Prompt | Natural-language instruction, e.g. `Extract product name and price` |
| Output Schema (JSON) | Optional JSON schema to enforce output shape |
| HTML Processing Mode | Normal, Reader, or Prune |
| Fetch Config | Optional fetch options — see [Fetch Config](#fetch-config). Only applies when Source Type = URL. |

***

### Search web

Run a web search and get page content returned inline — optionally with AI extraction applied to each result.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-search.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=b667c959195ec706eae0a9fd4cca1e6b" alt="Search web module configuration" width="2940" height="1612" data-path="integrations/images/make-search.png" />
</Frame>

| Field | Description |
| - | - |
| Query | Search query string |
| Number of Results | 1–20, default 3 |
| Format | Content format for each result |
| Extraction Prompt | Optional AI extraction applied to each page |
| Output Schema (JSON) | Optional schema — requires Extraction Prompt |
| Country Code | Curated dropdown of 52 country codes for localised results (US, UK, Germany, Japan, India, …) |
| Fetch Config | Optional fetch options — see [Fetch Config](#fetch-config) |

***

### Crawl a website

Start a multi-page crawl from an entry URL. The module polls internally and returns the **completed** crawl in a single bundle — a `pages` array with one entry per crawled page, each carrying a `scrapeRefId` you can pass to **Get a past result** to fetch its full content.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/rt7oJ61ECUsHKwTs/integrations/images/make-crawl.png?fit=max&auto=format&n=rt7oJ61ECUsHKwTs&q=85&s=b1817e906130f8288b1f44f8dffc2953" alt="Crawl a website module configuration" width="3164" height="1690" data-path="integrations/images/make-crawl.png" />
</Frame>

| Field | Description |
| - | - |
| URL | Entry point for the crawl |
| Format | Output format per page (markdown / HTML / JSON / screenshot / links / images / summary / branding) |
| HTML Mode / JSON Prompt / Screenshot dimensions | Format-specific sub-fields, surface based on the chosen Format |
| Max Pages | Cap on total pages crawled (1–1000). Default `50`. |
| Max Depth | How many link levels deep to traverse. Default `2`. |
| Max Links Per Page | Maximum links to follow per page. Default `10`. |
| Allow External Links | Whether to follow links to other domains. Off by default — same-origin only. |
| Include / Exclude Patterns | URL glob patterns, e.g. `/blog/*` |
| Content Types | Optional MIME-type filter (HTML, PDF, Word, Excel, …). Leave empty for all. |
| Fetch Config | Optional fetch options — see [Fetch Config](#fetch-config) |

**Output:**

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/rt7oJ61ECUsHKwTs/integrations/images/make-crawl-output.png?fit=max&auto=format&n=rt7oJ61ECUsHKwTs&q=85&s=c6fa4c4053c6719b67fdfcfa3af4f1fd" alt="Crawl a website module output bundle" width="3164" height="1690" data-path="integrations/images/make-crawl-output.png" />
</Frame>

The bundle includes the `Crawl Job ID`, a `Status` of `completed`, and a `pages[]` array. Each page has `url`, `depth`, `title`, `contentType`, `status`, and `scrapeRefId`.

<Tip>
  Crawls can take a while on large sites. The module waits for completion before emitting its bundle — for very large crawls (hundreds of pages), increase your scenario's execution timeout in **Scenario settings**.
</Tip>

***

### Create monitor

Schedule ScrapeGraph to fetch a URL on a recurring cron schedule and detect changes between runs.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-create-monitor.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=214430ec257a2ab4b9fb1e8f13a86b96" alt="Create monitor module configuration" width="2940" height="1612" data-path="integrations/images/make-create-monitor.png" />
</Frame>

| Field | Description |
| - | - |
| URL | Page to watch |
| Monitor Name | Optional display name |
| Interval (cron) | Cron expression — see table below |
| Format | Content format to capture (markdown / HTML / JSON / screenshot / links / summary) |
| HTML Mode / JSON Prompt / Screenshot dimensions | Format-specific sub-fields, surface based on the chosen Format |
| Webhook URL | Optional URL to POST results to on each tick |
| Fetch Config | Optional fetch options — see [Fetch Config](#fetch-config) |

**Common cron expressions**

| Schedule | Cron |
| - | - |
| Every hour | `0 * * * *` |
| Every 6 hours | `0 */6 * * *` |
| Daily at 09:00 UTC | `0 9 * * *` |
| Weekly on Monday | `0 9 * * 1` |

<Note>
  Run Create monitor once manually to set up the monitor, then use Get monitor activity in a separate scheduled scenario to fetch what changed.
</Note>

***

### Get monitor activity

Fetch the latest activity ticks from an existing monitor.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/6MFijdzaNZumpxh0/integrations/images/make-monitor-activity.png?fit=max&auto=format&n=6MFijdzaNZumpxh0&q=85&s=93fe6ce5c40b153caebb34e9783960d0" alt="Get monitor activity module" width="2940" height="1612" data-path="integrations/images/make-monitor-activity.png" />
</Frame>

| Field | Description |
| - | - |
| Monitor ID | The `id` returned by Create monitor |
| Limit | Number of ticks to return (1–100, default 20) |

Returns a `ticks` array where each entry has `changed` (boolean), `diffs`, `status`, and `createdAt`.

***

### Update monitor

Edit an existing monitor's interval, format, webhook, or fetch config without deleting and recreating it.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/695I14z2sVvvQDAk/integrations/images/make-update-monitor.png?fit=max&auto=format&n=695I14z2sVvvQDAk&q=85&s=29212afa40669f67a9cd6ff4212a490b" alt="Update monitor module configuration" width="2924" height="1836" data-path="integrations/images/make-update-monitor.png" />
</Frame>

| Field | Description |
| - | - |
| Monitor ID | The `cronId` returned by Create monitor |
| Interval (cron) | Optional. New 5-field cron expression |
| Monitor Name | Optional. New display name |
| Webhook URL | Optional. New URL to POST tick payloads to |
| Format | Optional. Replace the captured output type — same options and sub-fields as Create monitor |
| Fetch Config | Optional. Replace fetch options — see [Fetch Config](#fetch-config) |

Any field left blank is left unchanged on the monitor. Returns the updated monitor record.

***

### Get a past result

Fetch a stored job result by its ID. Most useful for retrieving the full content of a crawled page using the `scrapeRefId` from **Crawl a website**.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/rt7oJ61ECUsHKwTs/integrations/images/make-get-history.png?fit=max&auto=format&n=rt7oJ61ECUsHKwTs&q=85&s=c1ac74535b34678f8109556e1e0741fa" alt="Get a past result module configuration" width="3164" height="1690" data-path="integrations/images/make-get-history.png" />
</Frame>

| Field | Description |
| - | - |
| Entry ID | A job ID or `scrapeRefId` from a crawl page |

Returns the full stored entry — `result` (the original response payload), `metadata` (content type and other run details), `params` (the inputs the job was run with), `service`, `status`, and `createdAt`.

<Tip>
  Combine **Crawl a website → Iterator → Get a past result** to crawl a site and retrieve the full markdown / HTML / extracted JSON for every page in one scenario. Map the iterator's `scrapeRefId` into the Entry ID field — the module runs once per crawled page.
</Tip>

***

### List past results

Browse recent ScrapeGraphAI jobs filtered by service type. Search-style module — emits one bundle per entry, ready to fan out into downstream modules.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/695I14z2sVvvQDAk/integrations/images/make-list-history.png?fit=max&auto=format&n=695I14z2sVvvQDAk&q=85&s=374ca1d0d6cc2a5ba0ca10d0f7a3d5e8" alt="List past results module configuration" width="2924" height="1836" data-path="integrations/images/make-list-history.png" />
</Frame>

| Field | Description |
| - | - |
| Service | Optional. Filter to one service: `Scrape`, `Extract`, `Search`, `Crawl`, `Monitor`, `Schema`. Leave blank for all. |
| Page | Page number, 1-indexed (default `1`) |
| Limit | Entries per page, 1–100 (default `20`) |

Each emitted bundle has `id`, `service`, `status`, `url`, `createdAt`, and other run metadata. Pipe a bundle's `id` into **Get a past result** to retrieve the full stored payload.

***

## Fetch Config

Five modules — **Scrape a URL**, **Extract data from URL**, **Search web**, **Crawl a website**, and **Create monitor** — accept an optional **Fetch Config** collection that controls how each page is fetched. Leave it empty to use defaults.

<Frame>
  <img src="https://mintcdn.com/scrapegraphaiinc-9e950277/rva50TT0bxIUS11P/integrations/images/make-fetch-config.png?fit=max&auto=format&n=rva50TT0bxIUS11P&q=85&s=b1405bcf4d6f36eb035707a017aa6891" alt="Fetch Config collection expanded inside the Extract module" width="2924" height="1596" data-path="integrations/images/make-fetch-config.png" />
</Frame>

| Field | Description |
| - | - |
| Mode | Fetch mode — `Auto` (default), `Fast` (skips JS rendering), or `JS` (executes scripts) |
| Stealth | Residential proxy + anti-bot headers. **Adds 5 credits per call** |
| Country | Two-letter ISO country code for geo-targeted proxy (e.g. `us`, `de`, `jp`) |
| Wait (ms) | Milliseconds to wait after page load (0–30000) |
| Timeout (ms) | Request timeout in milliseconds (1000–60000) |
| Scrolls | Number of page scrolls to trigger lazy-loaded content (0–100) |
| Headers (JSON) | Custom HTTP headers as a JSON object string, e.g. `{"User-Agent": "..."}` |
| Cookies (JSON) | Cookies as a JSON object string, e.g. `{"session": "abc123"}` |

<Tip>
  Reach for **Stealth** + **Mode = JS** + **Wait = 2000–5000** when a site blocks bots or only renders content after JavaScript runs. Combine with **Country** to bypass region-locked pages.
</Tip>

***

## Deprecated modules

The following modules from the v1 integration are still visible but no longer functional. Use the v2 modules above instead.

| Deprecated | Replacement |
| - | - |
| \[Deprecated] SmartScrape | Scrape |
| \[Deprecated] Markdownify | Scrape (Markdown format) |
| \[Deprecated] Generate JSON Schema | Extract |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.