# Instant web data scraper - Scrape any website (`curious_coder/instant-web-scraper`) Actor

Scrape any public and private website data by providing just URL and optionally cookies and proxy information.
This scraper is similar to instant data scraper but runs on cloud and can be used as API too!

- **URL**: https://apify.com/curious\_coder/instant-web-scraper.md
- **Developed by:** [Curious Coder](https://apify.com/curious_coder) (community)
- **Categories:** AI, Automation
- **Stats:** 2,050 total users, 13 monthly users, 85.9% runs succeeded, 19 bookmarks
- **User rating**: 4.94 out of 5 stars

## Pricing

$10.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### ⚡️ What is an Instant web data scraper and what can it do?

Instant web data scraper is an online data scraper designed for **scraping data from any website**. It is one of the most versatile data extraction tools available. It is an improved version of Instant Data Scraper Chrome Extension.
<table>
  <thead>
    <tr>
      <th>Feature</th>
      <th>⚡️ Instant Web Data Scraper</th>
      <th>Instant Data Scraper Chrome Extension</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>🪄 Extract data from any website by fine-tuning the input</td>
      <td>✅</td>
      <td>✅</td>
    </tr>
    <tr>
      <td>📃 Handle pagination, infinite scrolling, and dynamic data loads</td>
      <td>✅</td>
      <td>✅</td>
    </tr>
    <tr>
      <td>⏳ Customize delays to control and randomize the crawling speed</td>
      <td>✅</td>
      <td>✅</td>
    </tr>
    <tr>
      <td>🗳 Auto detect tables or extract various data points such as descriptions, URLs, and more</td>
      <td>✅</td>
      <td>✅</td>
    </tr>
    <tr>
      <td>🍪 Navigate complex web pages with advanced options such as cookies and proxies</td>
      <td>✅</td>
      <td>❌</td>
    </tr>
    <tr>
      <td>⬇️ Filter and scrape data to Excel and CSV</td>
      <td>✅</td>
      <td>✅</td>
    </tr>
    <tr>
      <td>⬇️ Filter and scrape data to JSON, HTML, and other formats</td>
      <td>✅</td>
      <td>❌</td>
    </tr>
    <tr>
      <td>🛠 Export data via API, schedule and monitor runs, set up integrations and webhooks</td>
      <td>✅</td>
      <td>❌</td>
    </tr>
    <tr>
      <td>🚀 Scalable scraping</td>
      <td>✅</td>
      <td>❌</td>
    </tr>
    <tr>
      <td>☁️ Cloud running, scraping setup and data storage</td>
      <td>✅</td>
      <td>❌</td>
    </tr>
  </tbody>
</table>

### 💸 Is this data scraper free?

Yes. Apify provides you with $5 free usage credits every month on the [Apify Free plan](https://apify.com/pricing), so with Instant Web Scraper you can **scrape hundreds of results for free** within those limits. This makes it one of the best customizable free data scraping tools available on the market.

### 🌩 What website data can this data scraper extract?

Thanks to the versatility of Instant Web Scraper, it can extract any details from web pages if you set it up right. You can extract any publicly available data, including but not limited to:

<table>
<tr>
<td>📱 Names and links</td>
<td>📝 Descriptions</td>
<td>⭐ Ratings and reviews</td>
</tr>
<tr>
<td>📈 User counts</td>
<td>⬇️ Number of downloads</td>
<td>🔗 URLs</td>
</tr>
<tr>
<td>💵 Prices</td>
<td>📸 Images and logos</td>
<td>🗓️ Last updated dates</td>
</tr>
<tr>
<td>🌐 Website URLs</td>
<td>📍 Addresses</td>
<td>📧 Email addresses</td>
</tr>
</table>


### 🧑‍💻 Why scrape data from websites?

Instant Web Data Scraper is very versatile and can turn into any specific web scraping tool you want. Using this data scraping tool, you can:

- Build a price scraping tool and track product prices and item availability
- Make an online data scraper to monitor competitors and their updates
- Build a web contact scraper and extract contact information for lead generation
- Create a product scraper and collect reviews and user feedback
- Turn data scraper into a Google scraping tool to monitor positions by keywords
- Automate data extraction for complex workflows, in general

### 🔧 How to use Instant Data Scraper?

No need to hunt for data from the websites manually; the Actor will do the heavy lifting. You can scrape data from web pages in just ten steps with this data scraping program:

1. Find [Instant Web Scraper](https://apify.com/curious_coder/instant-web-scraper) in Apify Store and click the **Try for free** button.
2. Enter the URL of the webpage you want to scrape and select the 'Find tables' action to identify tabular data.
3. Run the Actor and review the output dataset.
4. Note the 'table number' and 'column numbers' of the data points to be scraped.
5. Define your data extraction preferences in the "Column mappings" section.
6. Enter the noted 'table number' from the previous run.
7. Find the next page button selector from the target web page and enter it.
8. Choose the 'Scrape data' action and run the Actor again.
9. Optionally, pass cookies and set proxies if needed for advanced scraping scenarios.
10. Preview and download your dataset in JSON, XML, CSV, Excel, or HTML, or export it via API.

### ⬇️ Input

To scrape data, the input for this Instant Web Scraper should be **URLs and data point selectors**. You can input data by filling out fields, using JSON, or programmatically via an API. For a full explanation of input in JSON, see the [input tab](https://apify.com/curious_coder/instant-web-scraper/input-schema).

### ⬆️ Output sample

The results will be wrapped into a dataset which you can find in the **Output** tab. Here are two example datasets:

#### 1. Scraping Wordpress directory

**Input**

```json
{
    "action": "scrapeData",
    "additionalColumns": false,
    "maxDelay": 3,
    "minDelay": 2,
    "tableNumber": 1,
    "nextPageSelector": ".next.page-numbers",
    "columnMappings": [
        {
            "key": "name",
            "value": "2"
        },
        {
            "key": "link",
            "value": "0"
        },
        {
            "key": "ratings",
            "value": "4"
        },
        {
            "key": "authorName",
            "value": "8"
        },
        {
            "key": "usersCount",
            "value": "9"
        },
        {
            "key": "description",
            "value": "6"
        },
        {
            "key": "lastUpdated",
            "value": "11"
        },
        {
            "key": "pluginLogo",
            "value": "1"
        }
    ],
    "url": "https://wordpress.org/plugins/?plugin_business_model=commercial"
}

````

**Output data**

```json
[
	{
		"name": "Elementor Website Builder – More than Just a Page Builder",
		"link": "https://wordpress.org/plugins/elementor/",
		"ratings": "6,586 total ratings",
		"authorName": "Elementor.com",
		"usersCount": "5+ million active installations",
		"description": "The Elementor Website Builder has it all: drag and drop page builder, pixel perfect design,…",
		"lastUpdated": "Updated 4 days ago",
		"pluginLogo": "https://ps.w.org/elementor/assets/icon.svg?rev=2597493"
	},
	{
		"name": "Yoast SEO",
		"link": "https://wordpress.org/plugins/wordpress-seo/",
		"ratings": "27,595 total ratings",
		"authorName": "Team Yoast",
		"usersCount": "5+ million active installations",
		"description": "Improve your WordPress SEO: Write better content and have a fully optimized WordPress site using…",
		"lastUpdated": "Updated 2 days ago",
		"pluginLogo": "https://ps.w.org/wordpress-seo/assets/icon.svg?rev=2363699"
	}
]

```

You can preview all the fields in the **Storage** tab and choose the format in which to export the data you've extracted: JSON, CSV, Excel, or HTML table.

#### 2. Scraping Apify Store

**Input**

```json
{
    "action": "scrapePage",
    "additionalColumns": false,
    "maxDelay": 3,
    "minDelay": 2,
    "tableNumber": 1,
    "nextPageSelector": "button.data-tracking-actor-pagination-button-next-store-web",
    "columnMappings": [
        {
            "key": "name",
            "value": "2"
        },
        {
            "key": "description",
            "value": "4"
        },
        {
            "key": "userName",
            "value": "5"
        },
        {
            "key": "usersCount",
            "value": "8"
        },
        {
            "key": "price",
            "value": "7"
        },
        {
            "key": "iconUrl",
            "value": "1"
        },
        {
            "key": "authorPicture",
            "value": "6"
        }
    ],
    "url": "https://apify.com/store"
}

```

**Output data**

```json
[
	{
		"name": "Web Scraper",
		"description": "Crawls arbitrary websites using the Chrome browser and extracts data from pages using a provided JavaScript code. The actor supports both recursive crawling and lists of URLs and automatically manages concurrency for maximum performance. This is Apify's basic tool for web crawling and scraping.",
		"userName": "Apify",
		"usersCount": "46.5k",
		"price": "Free",
		"iconUrl": "https://images.apifyusercontent.com/J6UV1Nvv0A5RpAIUBaSPN_eBye_lDVpBYyoTg5Jl03I/rs:fill:76:76/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMuYW1hem9uYXdzLmNvbS9tb0pSTFJjODVBaXRBcnBOTi9abjh2YldUaWthN2FuQ1FNbi1TRC0wMi0wMi5wbmc.webp",
		"authorPicture": "https://images.apifyusercontent.com/FMPBaWpQ77oz0xJB2epDbiEacNO524JpP0IGc63WUdg/rs:fill:32:32/aHR0cHM6Ly9pbWFnZXMuYXBpZnl1c2VyY29udGVudC5jb20vUmZ6Z3ZXZW1WSjM3VHU3SnJnQjhBRjhmdk9PUVZNWTIwMVd3NnNoeGcxRS9yczpmaWxsOjMyOjMyL2FIUjBjSE02THk5aGNHbG1lUzFwYldGblpTMTFjR3h2WVdSekxYQnliMlF1Y3pNdVlXMWhlbTl1WVhkekxtTnZiUzlhYzJOTmQwWlNOVWczWlVOMFYzUjVhQzlaY1hSclVXMUZlRnB3YlUxa05tUktVUzFoY0dsbWVWOXplVzFpYjJ4ZmQyaHBkR1ZmWW1jdWNHNW4ucG5n.webp"
	},
	{
		"name": "Google Search Results Scraper",
		"description": "This Google Scraper enables you to scrape Google Search Engine Results Pages (SERPs) and extract organic and paid results, ads, queries, People Also Ask, prices, reviews, like a Google SERP API. Select country or language and extraction of custom attributes, and download your data, no coding needed.",
		"userName": "Apify",
		"usersCount": "34.2k",
		"price": "Free",
		"iconUrl": "https://images.apifyusercontent.com/aDW746gaT2abezCHdyJvcUvyfAcitg0wkspytcV8yf0/rs:fill:76:76/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMuYW1hem9uYXdzLmNvbS9uRkpuZEZYQTV6akNUdXVkUC85S2pMeFlnRTRyS3ZLYnIzTS1Hb29nbGVfU2VhcmNoX1Jlc3VsdHNfU2NyYXBlci5wbmc.webp",
		"authorPicture": "https://images.apifyusercontent.com/FMPBaWpQ77oz0xJB2epDbiEacNO524JpP0IGc63WUdg/rs:fill:32:32/aHR0cHM6Ly9pbWFnZXMuYXBpZnl1c2VyY29udGVudC5jb20vUmZ6Z3ZXZW1WSjM3VHU3SnJnQjhBRjhmdk9PUVZNWTIwMVd3NnNoeGcxRS9yczpmaWxsOjMyOjMyL2FIUjBjSE02THk5aGNHbG1lUzFwYldGblpTMTFjR3h2WVdSekxYQnliMlF1Y3pNdVlXMWhlbTl1WVhkekxtTnZiUzlhYzJOTmQwWlNOVWczWlVOMFYzUjVhQzlaY1hSclVXMUZlRnB3YlUxa05tUktVUzFoY0dsbWVWOXplVzFpYjJ4ZmQyaHBkR1ZmWW1jdWNHNW4ucG5n.webp"
	}
]
```

### 🦾 Want more website scraping tools?

The Apify platform is always expanding with newer, more reliable, and more versatile data extraction tools, contributed by both Apify and the Community. Feel free to explore some of the following website data scrapers:

<table>
<tr>
<td>🌐 <a href="https://apify.com/apify/web-scraper">Web Scraper</a></td>
<td>🍒 <a href="https://apify.com/apify/cheerio-scraper">Cheerio Scraper</a></td>
</tr>
<tr>
<td>📄 <a href="https://apify.com/apify/website-content-crawler">Website Content Crawler</a></td>
<td>🚀 <a href="https://apify.com/apify/super-scraper-api">Super Scraper API</a></td>
</tr>
<tr>
<td>📞 <a href="https://apify.com/vdrmota/contact-info-scraper">Contact Info Scraper</a></td>
<td>🔍 <a href="https://apify.com/apify/page-analyzer">Page Analyzer</a></td>
</tr>
</table>

### ❓FAQ

#### How to scrape data from website to Excel with instant scraper tool?

1. **Select the target website.** Enter the URL of the website you want to scrape.
2. **Identify column mappings.** Use the tool’s interface to specify how to display extracted data.
3. **Target next page selectors.** Use the tool’s interface to automate swiping through the pages of the website.
4. **Add proxies, cookies or customize wait time**, additionally.
5. **Run the scraper.** Start the scraping process and wait for the tool to collect the data.
6. **Export the data.** Download the extracted data in your preferred format (CSV, JSON, Excel, etc.).

#### Can I extract website data to Google Sheets?

Yes. Thanks to integrations on the Apify platform, Instant Data Scraper can be connected with almost any cloud service or web app. You can **integrate your scraped databases with Google Drive, but also Zapier, Slack, Make, Airbyte, GitHub, LangChain,** [and more](https://apify.com/integrations).

#### Is it legal to extract public data from websites?

It depends what data you're scraping. Personal data such as names, for instance, is protected by GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. We also recommend that you read our blog post: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

#### Can I use Instant Web Scraper as its web scraping API?

Yes, you can use the Apify API to access Instant Web Scraper programmatically. The API allows you to manage, schedule, and run Apify Actors, access datasets, monitor performance, get results, create and update Actor versions, and more.

To access the API using Node.js or Python, you can use the `apify-client` in [NPM package](https://apify.com/curious_coder/instant-web-scraper/api/client/nodejs) or [PyPI package](https://apify.com/curious_coder/instant-web-scraper/api/client/python). There are also [API endpoints](https://apify.com/curious_coder/instant-web-scraper/api/endpoints) available for extracting website data without a client. For detailed information and code examples, see the [API tab](https://apify.com/curious_coder/instant-web-scraper/api/client/curl) or refer to the [Apify API documentation](https://docs.apify.com/api/v2).

#### Your feedback

We’re always working on improving the performance of our tools. If you’ve got any technical feedback for Instant Web Data Scraper or found a bug, please create an issue on the [Issues tab](https://apify.com/curious_coder/instant-web-scraper/issues/open).

# Actor input Schema

## `action` (type: `string`):

First run the actor with 'Find tables' option to get possible output data table formats. Then choose the desired format and use it's table number to scrape the data by choosing 'Scrape' option

## `cookies` (type: `array`):

Cookie used to authorize actor with website. Install [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) chrome extension. Login to your website account. Click on the extension and export the website cookies. Insert the contents here

## `url` (type: `string`):

Enter the link to the page to start scraping data

## `columnMappings` (type: `array`):

Assign column names to data obtained from scraping. By default scraper will assign 0 based number to each column. You will need to manually assign names to these columns by mapping column names to column numbers in 'Find tables' output

## `tableNumber` (type: `integer`):

Scraper will automatically detact all the tables in the given page. But to decide which table to scrape, scraper needs either sample data or table number. Run the scraper with 'Find tables' action and choose the value from 'Table number' column from the output dataset. Choose the value from the row of your preferred data format

## `additionalColumns` (type: `boolean`):

Include additional columns that are not included in columns mappings. These columns will have names like column\_1, column\_2, etc

## `nextPageSelector` (type: `string`):

Copy the CSS selector of the next page button or link. Leave it empty if the method of loading more data is by scrolling down. To get the selector of next page element, Right click on the element and click 'Inspect element'. Then on the popup, Right click on the highlighted element and click on 'Copy > Copy selector'

## `count` (type: `integer`):

Leave this field empty if you want to scrape all items.

## `proxy` (type: `object`):

You can use proxy from your account's country if needed for extra safety.

## `minDelay` (type: `integer`):

Minimum duration in seconds to wait before scraping next page

## `maxDelay` (type: `integer`):

Maximum duration in seconds to wait before scraping next page

## Actor input object example

```json
{
  "action": "scrapeData",
  "url": "https://wordpress.org/plugins/?plugin_business_model=commercial",
  "columnMappings": [
    {
      "key": "name",
      "value": "2"
    },
    {
      "key": "link",
      "value": "0"
    },
    {
      "key": "ratings",
      "value": "4"
    },
    {
      "key": "authorName",
      "value": "8"
    },
    {
      "key": "usersCount",
      "value": "9"
    },
    {
      "key": "description",
      "value": "6"
    },
    {
      "key": "lastUpdated",
      "value": "11"
    },
    {
      "key": "pluginLogo",
      "value": "1"
    }
  ],
  "tableNumber": 1,
  "additionalColumns": false,
  "nextPageSelector": ".next.page-numbers",
  "count": 100,
  "minDelay": 2,
  "maxDelay": 2
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "action": "scrapeData",
    "url": "https://wordpress.org/plugins/?plugin_business_model=commercial",
    "columnMappings": [
        {
            "key": "name",
            "value": "2"
        },
        {
            "key": "link",
            "value": "0"
        },
        {
            "key": "ratings",
            "value": "4"
        },
        {
            "key": "authorName",
            "value": "8"
        },
        {
            "key": "usersCount",
            "value": "9"
        },
        {
            "key": "description",
            "value": "6"
        },
        {
            "key": "lastUpdated",
            "value": "11"
        },
        {
            "key": "pluginLogo",
            "value": "1"
        }
    ],
    "tableNumber": 1,
    "nextPageSelector": ".next.page-numbers",
    "count": 100,
    "minDelay": 2,
    "maxDelay": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("curious_coder/instant-web-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "action": "scrapeData",
    "url": "https://wordpress.org/plugins/?plugin_business_model=commercial",
    "columnMappings": [
        {
            "key": "name",
            "value": "2",
        },
        {
            "key": "link",
            "value": "0",
        },
        {
            "key": "ratings",
            "value": "4",
        },
        {
            "key": "authorName",
            "value": "8",
        },
        {
            "key": "usersCount",
            "value": "9",
        },
        {
            "key": "description",
            "value": "6",
        },
        {
            "key": "lastUpdated",
            "value": "11",
        },
        {
            "key": "pluginLogo",
            "value": "1",
        },
    ],
    "tableNumber": 1,
    "nextPageSelector": ".next.page-numbers",
    "count": 100,
    "minDelay": 2,
    "maxDelay": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("curious_coder/instant-web-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "action": "scrapeData",
  "url": "https://wordpress.org/plugins/?plugin_business_model=commercial",
  "columnMappings": [
    {
      "key": "name",
      "value": "2"
    },
    {
      "key": "link",
      "value": "0"
    },
    {
      "key": "ratings",
      "value": "4"
    },
    {
      "key": "authorName",
      "value": "8"
    },
    {
      "key": "usersCount",
      "value": "9"
    },
    {
      "key": "description",
      "value": "6"
    },
    {
      "key": "lastUpdated",
      "value": "11"
    },
    {
      "key": "pluginLogo",
      "value": "1"
    }
  ],
  "tableNumber": 1,
  "nextPageSelector": ".next.page-numbers",
  "count": 100,
  "minDelay": 2,
  "maxDelay": 2
}' |
apify call curious_coder/instant-web-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=curious_coder/instant-web-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instant web data scraper - Scrape any website",
        "description": "Scrape any public and private website data by providing just URL and optionally cookies and proxy information. \nThis scraper is similar to instant data scraper but runs on cloud and can be used as API too!",
        "version": "1.0",
        "x-build-id": "z2Qbjpd1qobbkiUXF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/curious_coder~instant-web-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-curious_coder-instant-web-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/curious_coder~instant-web-scraper/runs": {
            "post": {
                "operationId": "runs-sync-curious_coder-instant-web-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/curious_coder~instant-web-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-curious_coder-instant-web-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "url"
                ],
                "properties": {
                    "action": {
                        "title": "⛏️ Select action to perform",
                        "enum": [
                            "findTables",
                            "scrapeData"
                        ],
                        "type": "string",
                        "description": "First run the actor with 'Find tables' option to get possible output data table formats. Then choose the desired format and use it's table number to scrape the data by choosing 'Scrape' option",
                        "default": "scrapeData"
                    },
                    "cookies": {
                        "title": "🍪 Cookies",
                        "minItems": 1,
                        "type": "array",
                        "description": "Cookie used to authorize actor with website. Install [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) chrome extension. Login to your website account. Click on the extension and export the website cookies. Insert the contents here"
                    },
                    "url": {
                        "title": "URL to scrape",
                        "type": "string",
                        "description": "Enter the link to the page to start scraping data"
                    },
                    "columnMappings": {
                        "title": "Column name mappings",
                        "type": "array",
                        "description": "Assign column names to data obtained from scraping. By default scraper will assign 0 based number to each column. You will need to manually assign names to these columns by mapping column names to column numbers in 'Find tables' output",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "key",
                                "value"
                            ],
                            "properties": {
                                "key": {
                                    "type": "string",
                                    "title": "Key"
                                },
                                "value": {
                                    "type": "string",
                                    "title": "Value"
                                }
                            }
                        }
                    },
                    "tableNumber": {
                        "title": "Table number to scrape",
                        "type": "integer",
                        "description": "Scraper will automatically detact all the tables in the given page. But to decide which table to scrape, scraper needs either sample data or table number. Run the scraper with 'Find tables' action and choose the value from 'Table number' column from the output dataset. Choose the value from the row of your preferred data format",
                        "default": 1
                    },
                    "additionalColumns": {
                        "title": "Include additional columns",
                        "type": "boolean",
                        "description": "Include additional columns that are not included in columns mappings. These columns will have names like column_1, column_2, etc",
                        "default": false
                    },
                    "nextPageSelector": {
                        "title": "Next page selector",
                        "type": "string",
                        "description": "Copy the CSS selector of the next page button or link. Leave it empty if the method of loading more data is by scrolling down. To get the selector of next page element, Right click on the element and click 'Inspect element'. Then on the popup, Right click on the highlighted element and click on 'Copy > Copy selector'"
                    },
                    "count": {
                        "title": "#️⃣ Total number of records required",
                        "type": "integer",
                        "description": "Leave this field empty if you want to scrape all items."
                    },
                    "proxy": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "You can use proxy from your account's country if needed for extra safety."
                    },
                    "minDelay": {
                        "title": "⏱️ Minimum wait duration",
                        "minimum": 2,
                        "type": "integer",
                        "description": "Minimum duration in seconds to wait before scraping next page",
                        "default": 2
                    },
                    "maxDelay": {
                        "title": "⏱️ Maximum wait duration",
                        "minimum": 2,
                        "type": "integer",
                        "description": "Maximum duration in seconds to wait before scraping next page",
                        "default": 2
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
