scrapecraft is a free, open source data extraction & web scraping project written in Python and released under MIT. It has 698 GitHub stars, 112 forks and 1 open issues, and was last pushed 9 months ago. On this registry it ranks #43 of 45 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is scrapecraft?

ScrapeCraft is an MIT-licensed, web-based scraping editor โ€” described in its README as similar to Cursor but specialized for web scraping โ€” that lets users build, test, and deploy scrapers through a visual workflow builder and natural-language AI assistance, and it is aimed at developers and data teams who already work in Python or TypeScript and want extraction pipelines assembled rather than hand-coded.

What it is

ScrapeCraft is a full-stack application, not a library. It pairs a React and TypeScript frontend, styled with Tailwind CSS, against a FastAPI backend that uses LangGraph and the ScrapeGraphAI API to drive scraping work. State lives in PostgreSQL, with Redis as cache, and the whole stack ships as Docker and Docker Compose services. The editor exposes a pipeline model directly: a user creates a pipeline, registers URLs, defines an extraction schema, asks the AI assistant to generate scraping code, runs the pipeline, and exports the results. An AI assistant backed by OpenRouter and the Kimi-k2 model sits inside the editor and is reachable through POST /api/chat/message.

The problem it solves is the assembly work around scraping rather than scraping itself. Instead of writing one-off crawler scripts, wiring ad-hoc parsing, and hand-rolling a viewer for the output, ScrapeCraft treats a scraper as a stored pipeline with a declared schema. Fields are defined with Pydantic, so the shape of the extracted data is explicit before any code is generated, and generated Python carries async support. Pipelines are persisted and addressable: GET /api/pipelines lists them, POST /api/pipelines creates one, PUT /api/pipelines/{id} updates it, and POST /api/pipelines/{id}/run executes it.

Key capabilities

  • AI assistant powered by OpenRouter using the Kimi-k2 model, exposed at POST /api/chat/message.
  • Multi-URL bulk scraping, managed through the editor's URL Manager.
  • Dynamic schema definition with Pydantic for the fields to be extracted.
  • Python code generation with async support.
  • Real-time streaming over WebSocket at WS /ws/{pipeline_id}.
  • Results visualization in table and JSON views, with export to JSON or CSV.
  • Watchtower-based auto-updating deployment: push new Docker images to a registry and containers update without manual intervention.

Who uses it and how

  • Teams self-hosting the stack with docker compose up -d, reaching the frontend on port 3000 and the API on port 8000, with Swagger-style documentation at /docs.
  • Extraction teams that want a schema-first workflow, where Pydantic fields are declared before the AI generates scraping code, so output shape is agreed up front.
  • Developers working without Docker: the backend runs under uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 and the frontend under npm start.
  • Operators who publish images to their own registry and let Watchtower roll containers forward unattended.
  • Users running the same pipeline shape across many URLs at once rather than one scraper per page.

Getting started

Clone the repository, copy .env.example to .env, add an OPENROUTER_API_KEY from OpenRouter and a SCRAPEGRAPH_API_KEY from ScrapeGraphAI, then run docker compose up -d. Development mode avoids Docker entirely and runs the FastAPI backend and the npm frontend separately.

How it compares

No paid product list is supplied, so placement is relative to the tools the README names. ScrapeGraphAI is the scraping engine underneath, LangGraph orchestrates the backend flow, and the Cursor analogy frames the editing experience as AI-assisted authoring rather than configuration. It sits above those libraries as an application layer, not as a replacement for them.

When to use it โ€” and when not to

A self-hoster operates PostgreSQL and Redis, supplies a JWT_SECRET for token signing, and must hold working OpenRouter and ScrapeGraphAI API keys before any pipeline runs, so the tool cannot function as a fully offline stack. Teams that want a managed hosted option, or that are unwilling to depend on two third-party API accounts, are better served elsewhere. The README documents no hosted deployment and no access-control model beyond the JWT secret variable, which makes it a poor fit for multi-tenant or externally exposed installations without additional work.

project readme (upstream, from github) โ€” read inline

ScrapeCraft - AI-Powered Web Scraping Editor

ScrapeCraft is a web-based scraping editor similar to Cursor but specialized for web scraping. It uses AI assistance to help users build scraping pipelines with the ScrapeGraphAI API.

https://github.com/user-attachments/assets/defaf7ad-23da-40b7-82cd-3b2a4d1d22c9

API Banner

Features

  • ๐Ÿค– AI-powered assistant using OpenRouter (Kimi-k2 model)
  • ๐Ÿ”— Multi-URL bulk scraping support
  • ๐Ÿ“‹ Dynamic schema definition with Pydantic
  • ๐Ÿ’ป Python code generation with async support
  • ๐Ÿš€ Real-time WebSocket streaming
  • ๐Ÿ“Š Results visualization (table & JSON views)
  • ๐Ÿ”„ Auto-updating deployment with Watchtower

Tech Stack

  • Backend: FastAPI, LangGraph, ScrapeGraphAI
  • Frontend: React, TypeScript, Tailwind CSS
  • Database: PostgreSQL
  • Cache: Redis
  • Deployment: Docker, Docker Compose, Watchtower

Prerequisites

  • Docker and Docker Compose
  • OpenRouter API key (Get it from OpenRouter)
  • ScrapeGraphAI API key (Get it from ScrapeGraphAI)

Quick Start with Docker

  1. Clone the repository

    git clone https://github.com/ScrapeGraphAI/scrapecraft.git
    cd scrapecraft
    
  2. Set up environment variables

    cp .env.example .env
    

    Edit the .env file and add your API keys:

  3. Start the application with Docker

    docker compose up -d
    
  4. Access the application

  5. Stop the application

    docker compose down
    

Development Mode

If you want to run the application in development mode without Docker:

Backend Development

cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Frontend Development

cd frontend
npm install
npm start

Usage

  1. Create a Pipeline: Click "New Pipeline" to start
  2. Add URLs: Use the URL Manager to add websites to scrape
  3. Define Schema: Create fields for data extraction
  4. Generate Code: Ask the AI to generate scraping code
  5. Execute: Run the pipeline to scrape data
  6. Export Results: Download as JSON or CSV

Remote Updates

The application includes Watchtower for automatic updates:

  1. Push new Docker images to your registry
  2. Watchtower will automatically detect and update containers
  3. No manual intervention required

API Endpoints

  • POST /api/chat/message - Send message to AI assistant
  • GET /api/pipelines - List all pipelines
  • POST /api/pipelines - Create new pipeline
  • PUT /api/pipelines/{id} - Update pipeline
  • POST /api/pipelines/{id}/run - Execute pipeline
  • WS /ws/{pipeline_id} - WebSocket connection

Environment Variables

Variable Description How to Get
OPENROUTER_API_KEY Your OpenRouter API key Get API Key
SCRAPEGRAPH_API_KEY Your ScrapeGraphAI API key Get API Key
JWT_SECRET Secret key for JWT tokens Generate a random string
DATABASE_URL PostgreSQL connection string Auto-configured with Docker
REDIS_URL Redis connection string Auto-configured with Docker

License

MIT

Frequently asked questions

Is scrapecraft free to use?

scrapecraft is open source under the MIT licence. There is no licence fee and no seat count โ€” you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does scrapecraft do?

๐Ÿค– AI-powered web scraping editor with visual workflow builder. Build, test & deploy web scrapers using natural language. Powered by ScrapeGraphAI & LangGraph.

What is scrapecraft written in?

scrapecraft is primarily written in Python. Its source is publicly available at https://github.com/ScrapeGraphAI/scrapecraft, and it has 698 GitHub stars.