Repository intelligence

apify/crawlee

Editorial

Crawlee—A web scraping and browser automation library for Node.js to build reliable crawlers. In JavaScript and TypeScript. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with Puppeteer, Playwright, Cheerio, JSDOM, and raw HTTP. Both headful and headless mode. With proxy rotation. In ThingsO it is evaluated as a web crawling and scraping framework.

78Health
Editorial

What it is

94% confidence

Crawlee—A web scraping and browser automation library for Node.js to build reliable crawlers. In JavaScript and TypeScript. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with Puppeteer, Playwright, Cheerio, JSDOM, and raw HTTP. Both headful and headless mode. With proxy rotation. In ThingsO it is evaluated as a web crawling and scraping framework.

Product typeWeb crawling and scraping framework
Primary roleDiscover web pages and extract data from sites at repeatable scale.
Categoryweb-scraping
Interactionprogrammatic API
Editorial

Problem → solution

86% confidence

Problem

Reliable web collection requires crawling, request management, parsing, retries, throttling, and adaptation to diverse page structures.

Pain points

  • Reliable web collection requires crawling, request management, parsing, retries, throttling, and adaptation to diverse page structures.

Solution approach

Provide crawler/scraper primitives for fetching pages, scheduling requests, extracting structured data, and controlling crawl behavior.

Why it matters

The project is useful when teams need the web-scraping capability without building every supporting primitive from scratch.

Editorial

Why it is different

Differentiators

  • Repository-stated scope: Crawlee—A web scraping and browser automation library for Node.js to build reliable crawlers. In JavaScript and TypeScript. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with Puppeteer, Playwright, Cheerio, JSDOM, and raw HTTP. Both headful and headless mode. With proxy rotation.
  • Its curated role in the ThingsO catalog is web-scraping; exact implementation differentiation is verified from repository evidence rather than assumed from popularity.

Design philosophy

  • Prefer the project’s documented public interfaces and extension points over undocumented internals.

Unique capabilities

  • Repository-stated scope: Crawlee—A web scraping and browser automation library for Node.js to build reliable crawlers. In JavaScript and TypeScript. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with Puppeteer, Playwright, Cheerio, JSDOM, and raw HTTP. Both headful and headless mode. With proxy rotation.
  • Its curated role in the ThingsO catalog is web-scraping; exact implementation differentiation is verified from repository evidence rather than assumed from popularity.

Design trade-offs

  • More resilient crawling requires more runtime complexity.
  • Browser-backed scraping improves dynamic-page coverage at higher resource cost.
Editorial

Who should use it

76% confidence

Target users

  • data engineers
  • research teams
  • automation developers

Jobs to be done

  • crawl websites
  • extract structured web data
  • build repeatable collection pipelines

Best for

  • multi-page collection
  • repeatable extraction pipelines

Not ideal for

  • sources with an official API that fully meets the requirement
  • unauthorized or policy-prohibited collection
Editorial

Architecture

72% confidence

The baseline architecture for this web-scraping project is interpreted from its product category, while concrete runtime, technology, code paths, commands, and deployment evidence are compiled from the current repository snapshot.

Architecture style

Crawler engine with request scheduling, fetch/browser adapters, parsing/extraction logic, and output pipelines.

inferred · 80% confidence

Execution model

Seed requests enter a scheduler, pages are fetched, parsers extract items and additional links, and outputs flow to downstream storage or processing.

inferred · 82% confidence

State model

State behavior depends on the selected runtime/deployment; inspect the project’s execution modules and persistence configuration for durable-state requirements.

inferred · 55% confidence

Persistence

Persistence requirements are workload/deployment specific unless explicitly established by a captured manifest/container document.

inferred · 52% confidence

Concurrency

Concurrency is implementation/runtime specific; verify worker, async or parallel execution settings before capacity planning.

inferred · 52% confidence

Scaling

Scale according to the runtime’s supported process/service model and validate shared state, model hardware and external rate limits before horizontal replication.

inferred · 52% confidence

Core components

Scheduler

Coordinates crawl requests, priorities, and retries.

Fetcher

Retrieves page content through HTTP or browser execution.

Extractor

Transforms page content into structured records or follow-up links.

Data / control flow

  1. Seeds or URLs are scheduled for retrieval.
  2. Fetched content is parsed into data and/or new requests, then emitted to a pipeline or consumer.
Editorial

Technology

88% confidence
primary language

TypeScript

Primary language reported by the current GitHub repository snapshot.

known
backend framework

Express

Declared project dependency associated with backend framework.

known
browser automation

Playwright

Declared project dependency associated with browser automation.

known
build/package

Node/npm-compatible package manifest

Defines dependency, packaging or build metadata.

known
deployment

Container configuration

Container build or compose configuration is present in repository evidence.

known
development infrastructure

CI automation

Repository CI configuration automates checks, builds or release tasks.

known
Editorial

Codebase map

92% confidence

The semantic codebase map is derived from the captured repository tree. Key visible areas include docs, packages, docs/examples, packages/cli, packages/core.

docs

Project documentation.

packages

Reusable packages/modules that compose the project.

docs/examples

Usage examples/reference implementations.

packages/cli

Command-line interface implementation.

packages/core

Core domain or execution logic.

packages/basic-crawler/src

Primary implementation source code.

packages/basic-crawler/test

Automated tests.

packages/browser-crawler/src

Primary implementation source code.

Start reading

  • docs
  • packages
  • docs/examples
  • packages/cli
  • packages/core

Entry points

  • packages/basic-crawler/src/index.ts
  • packages/browser-crawler/src/index.ts
  • packages/browser-pool/src/index.ts
  • packages/cheerio-crawler/src/index.ts
  • packages/cli/src/index.ts
  • packages/core/src/autoscaling/index.ts
  • packages/core/src/crawlers/index.ts
  • packages/core/src/enqueue_links/index.ts

Extension points

Not established from available evidence.

Editorial

Developer workflow

82% confidence

Local setup

The README provides executable setup/run commands; a representative captured command is `npx crawlee create my-crawler`.

known · 80% confidence
setup or run project · npx crawlee create my-crawler
setup or run project · npm start
install dependencies/runtime · npm install crawlee playwright
install dependencies/runtime · npm install crawlee@next

Build

Package script `build` runs `turbo run build --filter=./packages/* && node ./scripts/typescript_fixes.mjs`.

known · 90% confidence

Tests

Package script `test` runs `vitest run --silent`.

known · 88% confidence

Lint

Package script `lint` runs `oxlint packages test docs --tsconfig=tsconfig.json --type-aware`.

known · 90% confidence

Typecheck

Not established from available evidence.

unknown · 0% confidence

CI/CD

Captured CI configuration is present for automated repository checks/build/release tasks.

known · 82% confidence

Contribution

A captured contribution/development document describes project contribution expectations.

known · 80% confidence

Release process

Not established from available evidence.

unknown · 0% confidence
Editorial

Integration & extension

Extension model

Extend with spiders/crawlers, request middleware, parsers, extraction rules, pipelines, or browser adapters.

inferred · 72% confidence

Plugin system

Not established from available evidence.

unknown · 0% confidence

Adding an extension

Start with documented public APIs and the codebase extension/provider/integration paths identified by the semantic tree map.

inferred · 58% confidence

APIs

Not established from available evidence.

Protocols

Not established from available evidence.

Ecosystem integrations

  • Validate concrete integrations against the current repository docs and codebase map before adoption.
Editorial

Deployment & operations

82% confidence

Minimum deployment

Captured container configuration establishes a container-based development or deployment path.

known · 86% confidence

Production topology

Production topology is deployment-specific; validate stateful services, worker/runtime boundaries and external dependencies before high-availability scale-out.

inferred · 54% confidence

Persistence

Persistence requirements are workload/deployment specific unless explicitly established by a captured manifest/container document.

inferred · 52% confidence

Configuration

Configuration is supplied through the project’s documented runtime/application settings; inspect README and captured configuration files for exact keys.

inferred · 62% confidence

Scaling

Scale according to the runtime’s supported process/service model and validate shared state, model hardware and external rate limits before horizontal replication.

inferred · 52% confidence

Observability

Not established from available evidence.

unknown · 0% confidence

Backup / upgrade

Not established from available evidence.

unknown · 0% confidence

Failure recovery

Recovery planning should cover persistent state, generated artifacts and external integration credentials; exact procedures are deployment-specific.

inferred · 50% confidence

Resource profile

Resource requirements depend on workload and selected runtime/model; benchmark the intended production workload before sizing infrastructure.

inferred · 50% confidence

Operational risks

  • External APIs, models or runtime dependencies can change independently of this repository.
  • Upgrades should be tested against the adopting application’s integrations and persisted state.
Editorial

Security & privacy

Authentication

Not established from available evidence.

unknown · 0% confidence

Authorization

Not established from available evidence.

unknown · 0% confidence

Secrets

Use the project’s supported secret/configuration mechanism and keep service credentials outside source control.

inferred · 52% confidence

Network exposure

Not established from available evidence.

unknown · 0% confidence

Sandboxing

Not established from available evidence.

unknown · 0% confidence

Data persisted

Not established from available evidence.

unknown · 0% confidence

Data leaving system

Data can leave the deployment when configured external APIs, model providers or remote sources are used; exact flows depend on user configuration.

inferred · 50% confidence

Telemetry

Not established from available evidence.

unknown · 0% confidence

Security considerations

  • Operators should verify authorization, terms and data-handling requirements for external sources.
Editorial

Decision guide

Choose when

  • multi-page collection
  • repeatable extraction pipelines

Avoid when

  • sources with an official API that fully meets the requirement
  • unauthorized or policy-prohibited collection

Evaluate first

  • Confirm the current license and project activity meet your requirements.
  • Prototype the project against one representative production workflow.
  • Review the generated Technology, Codebase, Developer Workflow, Deployment, and Security evidence sections before committing to adoption.

Trade-offs

  • More resilient crawling requires more runtime complexity.
  • Browser-backed scraping improves dynamic-page coverage at higher resource cost.
Learning curvemedium
Operational complexitymedium
Migration costmedium
Lock-inmedium
Editorial

Project signals & learning

Maturity

established with strong public adoption signals

inferred · 84% confidence

Governance

Maintained under GitHub owner `apify`; detailed governance/decision rights are not fully established by the bounded evidence pack.

inferred · 62% confidence

Licensing

GitHub reports SPDX license `Apache-2.0`; verify repository license text and dependency obligations for the intended use.

known · 90% confidence

Adoption signals

  • GitHub snapshot: 25,483 stars
  • GitHub snapshot: 1,636 forks

Ecosystem

Not established from available evidence.

What you can learn

  • Study apify/crawlee to understand practical implementation choices in the web-scraping problem space.
  • Compare its public extension model with its internal module boundaries before reusing patterns elsewhere.

Suggested reading order

  • docs
  • packages
  • docs/examples
  • packages/cli
  • packages/core

editorial / chatgpt-gpt-5.6-sol-manual · 78% overall confidence

Classification

Web Scraping capability Editorial
Deterministic · health-v1

Project Health

Maintenance100
Adoption84
Community37
Documentation100
Operations0
License clarity100
Maturity100
Metadata100
Source fact

GitHub source facts

Stars25.5K
Forks1.6K
Open issues153
Watchers25.5K
LanguageTypeScript
LicenseApache-2.0
Default branchmaster
Snapshot2026-08-24
Source fact

Evidence & provenance