# AI Web Scraper — Any URL to JSON by Prompt ✅ No Code (`neuralverge/neuralverge-ai-extract`) Actor

Extract structured data from any URL with a natural-language prompt — no code, no selectors, no LLM API key. Add an optional JSON Schema for an exact output shape. Structured JSON out, MCP-ready. Pay only for successful extractions — misses are free.

- **URL**: https://apify.com/neuralverge/neuralverge-ai-extract.md
- **Developed by:** [NeuralVerge](https://apify.com/neuralverge) (community)
- **Categories:** Automation, Developer tools, AI
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

### AI Web Scraper — Any URL to JSON by Prompt ✅ No Code

Extract structured data from **any URL with a natural-language prompt** — describe what you want,
get it back as clean data. **No code, no CSS selectors, no LLM API key.** Add an optional JSON
Schema when you need an exact output shape. Powered by the Neuralverge
API. **You only pay for successful extractions — misses are free.** Export to JSON, CSV or Excel.

Ideal for one-off and repeatable extraction, monitoring, enrichment, research, and feeding clean
data to AI agents (MCP-ready).

### ✨ Why this Actor

- 💸 **Pay only for successful extractions** — if a page returns no content (or times out), the
  row is skipped and never billed. Misses are free.
- 🗣️ **Just describe what you want** — a natural-language prompt instead of code or selectors.
  Nothing to maintain when a site changes its markup.
- 🔑 **No LLM API key, no login** — the model and fetching run on the Neuralverge backend. You
  don't bring an OpenAI/Gemini key.
- 🎯 **Optional JSON Schema** — pass one to force an exact structured shape; omit it to get a
  clean markdown result. Geo-routing (`countryCode`) built in. MCP-ready for AI agents.

### 🔧 How it works

1. **Provide a URL and an instruction** (e.g. "Extract company name, website, industry, founded
   year, specialties"). Optionally add a JSON Schema for an exact shape.
2. **Run the Actor.** Fetching + AI extraction run on the Neuralverge backend.
3. **Get one dataset row.** With a schema, the fields land as top-level columns; without one, the
   result is a markdown summary in `human`. The full response is under `raw`.

If a URL returns no content (or an upstream error like a 504), it's logged and **skipped without
charge** — you're not billed for that run.

### Input

One URL per run.

| Field | Type | Notes |
|---|---|---|
| `url` | string | The page URL to extract from. |
| `instructions` | string | Natural-language description of what to extract. |
| `extractSchema` | object | Optional JSON Schema for an exact output shape. |
| `countryCode` | string | Two-letter geo-routing code (advanced, default `us`). |
| `finalizerModel` | string | Extraction model (advanced). |

```json
{
  "url": "https://www.linkedin.com/company/ibm",
  "instructions": "Extract company name, website, industry, founded year, specialties"
}
````

### What you'll receive

- **Without a schema** — a clean markdown result in `human` (the extracted facts), plus `query`,
  `scrapedAt` and the full response under `raw`.
- **With a JSON Schema** — the schema's fields spread to top-level columns, alongside `human` and
  `raw`.

#### Example output (real run)

A real dataset row from `https://www.linkedin.com/company/ibm` with the prompt above and
**no schema** — shown in full. With no schema the backend returns `machine: null`, so there are
no structured columns; the extracted facts come back as text in `human`, and the complete API
response is kept under `raw`.

```json
{
  "query": "https://www.linkedin.com/company/ibm",
  "scrapedAt": "2026-07-18T12:00:00.000Z",
  "human": "Company Name: IBM\nWebsite: http://www.ibm.com\nIndustry: IT Services and IT Consulting\nFounded Year: N/A\nSpecialties:\n- Analytics\n- Commerce\n- Research\n- Financing\n- Consulting\n- IT infrastructure\n- Experience Design\n- Cloud\n- Security\n- Internet of Things\n- Mobile\n- Cognitive\n- Technology support\n- Watson\n- Industry solutions\n- Resiliency services\n- Systems services",
  "raw": {
    "kind": "extract",
    "url": "https://www.linkedin.com/company/ibm",
    "used_url": "https://www.linkedin.com/company/ibm",
    "instructions": "Extract company name, website, industry, founded year, specialties",
    "settings": {
      "has_schema": false,
      "country_code": "us"
    },
    "human": "Company Name: IBM\nWebsite: http://www.ibm.com\nIndustry: IT Services and IT Consulting\nFounded Year: N/A\nSpecialties:\n- Analytics\n- Commerce\n- Research\n- Financing\n- Consulting\n- IT infrastructure\n- Experience Design\n- Cloud\n- Security\n- Internet of Things\n- Mobile\n- Cognitive\n- Technology support\n- Watson\n- Industry solutions\n- Resiliency services\n- Systems services",
    "machine": null,
    "total_points": 5
  }
}
```

> Genuine result from a live run (no schema, `total_points: 5`). Note `Founded Year: N/A` and the
> full 17-item specialties list come straight from the page. Pass a JSON Schema to get
> `company_name`, `website`, `industry`, `founded_year`, `specialties` as separate top-level
> columns instead (then `machine` is populated and its fields are spread into the row); the full
> API response is always kept under `raw`.

### Pricing

Pay per result — **$0.005 per successful extraction** ($5 per 1,000). **You pay only for rows
returned — empty or failed extractions are free.**

| Event | Price |
|---|---|
| Actor start | Free |
| Successful extraction (per dataset row) | **$0.005** |

URLs that return no content are **not billed**. Pricing is on top of your Apify platform usage.

### Integrations & API

Results are stored in a standard Apify dataset — export as CSV, JSON, XML or Excel, or fetch on
demand through the [Apify API](https://docs.apify.com/api). The Actor also plugs into Apify's
integrations (Make, Zapier, n8n, webhooks) and can be called from any [MCP](https://mcp.apify.com/)
client to give an AI agent a general-purpose web-extraction tool.

### FAQ

**Do I need an OpenAI/Gemini or Crunchbase-style API key?** No. The model and fetching run on the
Neuralverge backend — you bring nothing but a URL and a prompt.

**Do I have to write selectors or code?** No. Describe what you want in plain language.

**When should I use a JSON Schema?** When you need a guaranteed structure (fixed field names/types)
for a database or pipeline. Otherwise the markdown result in `human` is enough.

**Am I charged if extraction fails?** No. You're billed only for rows returned to the dataset;
empty results and upstream errors are logged and skipped.

***

**Disclaimer:** This Actor is an independent tool. You are responsible for ensuring you have the
right to extract from the URLs you submit and for complying with each site's terms and applicable
law. All trademarks are property of their respective owners.

# Actor input Schema

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

The page URL to extract data from (one per run).

## `instructions` (type: `string`):

Natural-language description of what to extract from the page.

## `extractSchema` (type: `object`):

Optional JSON Schema describing the exact output shape. If omitted, extraction follows the instructions only.

## Actor input object example

```json
{
  "url": "https://www.linkedin.com/company/ibm",
  "instructions": "Extract data from LinkedIn company profile\n- Company name\n- Tagline\n- About\n- Website\n- LinkedIn url\n- Industry\n- Company size\n- Employee count\n- Founded year\n- Follower count\n- Headquarters\n- Locations\n- Specialties"
}
```

# Actor output Schema

## `results` (type: `string`):

Extracted data — structured fields when a JSON Schema is used, otherwise a markdown result under `human` — one row per successful URL.

# 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 = {
    "url": "https://www.linkedin.com/company/ibm",
    "instructions": `Extract data from LinkedIn company profile
- Company name
- Tagline
- About
- Website
- LinkedIn url
- Industry
- Company size
- Employee count
- Founded year
- Follower count
- Headquarters
- Locations
- Specialties`
};

// Run the Actor and wait for it to finish
const run = await client.actor("neuralverge/neuralverge-ai-extract").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 = {
    "url": "https://www.linkedin.com/company/ibm",
    "instructions": """Extract data from LinkedIn company profile
- Company name
- Tagline
- About
- Website
- LinkedIn url
- Industry
- Company size
- Employee count
- Founded year
- Follower count
- Headquarters
- Locations
- Specialties""",
}

# Run the Actor and wait for it to finish
run = client.actor("neuralverge/neuralverge-ai-extract").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 '{
  "url": "https://www.linkedin.com/company/ibm",
  "instructions": "Extract data from LinkedIn company profile\\n- Company name\\n- Tagline\\n- About\\n- Website\\n- LinkedIn url\\n- Industry\\n- Company size\\n- Employee count\\n- Founded year\\n- Follower count\\n- Headquarters\\n- Locations\\n- Specialties"
}' |
apify call neuralverge/neuralverge-ai-extract --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AI Web Scraper — Any URL to JSON by Prompt ✅ No Code",
        "description": "Extract structured data from any URL with a natural-language prompt — no code, no selectors, no LLM API key. Add an optional JSON Schema for an exact output shape. Structured JSON out, MCP-ready. Pay only for successful extractions — misses are free.",
        "version": "0.1",
        "x-build-id": "25kC8GKbmmDIH8no3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/neuralverge~neuralverge-ai-extract/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-neuralverge-neuralverge-ai-extract",
                "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/neuralverge~neuralverge-ai-extract/runs": {
            "post": {
                "operationId": "runs-sync-neuralverge-neuralverge-ai-extract",
                "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/neuralverge~neuralverge-ai-extract/run-sync": {
            "post": {
                "operationId": "run-sync-neuralverge-neuralverge-ai-extract",
                "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",
                "properties": {
                    "url": {
                        "title": "URL",
                        "type": "string",
                        "description": "The page URL to extract data from (one per run)."
                    },
                    "instructions": {
                        "title": "Instructions",
                        "type": "string",
                        "description": "Natural-language description of what to extract from the page."
                    },
                    "extractSchema": {
                        "title": "Extract JSON Schema (optional)",
                        "type": "object",
                        "description": "Optional JSON Schema describing the exact output shape. If omitted, extraction follows the instructions only."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
