Skip to main content
Scraping nodes fetch and extract content from pages you already know about. If that is not quite your problem, a neighbouring page probably is: This page also covers the residential proxy system — provider configuration, proxied requests, and health monitoring — which the scraping nodes can route through.

Crawlee Scraper

Python-based scraping on top of the crawlee library. Crawlee manages concurrency, retry back-off, and request queues internally — you feed in configuration and get back a list of pages. Also usable as an AI agent tool.

Engines

Modes

  • single — scrape only the seed URL (page and depth caps are forced to 1 and 0).
  • crawl — follow links matching Link Selector (defaults to a[href]) and an optional URL Pattern, up to Max Pages / Max Depth.

Parameters

string
required
Seed URL
select
default:"beautifulsoup"
beautifulsoup, playwright, or adaptive
select
default:"single"
single or crawl
string
CSS selector for text/HTML extraction. Empty extracts the whole page.
select
default:"text"
text, html, or markdown (markdown falls back to text if the html2text package is not installed)
Include a links[] array on each page
number
default:"10"
Page cap in crawl mode (1-1000)
number
default:"2"
Link-following depth in crawl mode (0-50)
string
Glob-style pattern (e.g. */blog/*) restricting which discovered links are followed (crawl mode)
number
default:"60"
Timeout in seconds — applied per request handler and to the whole run (1-3600)
Playwright-only knobs: browser_type (chromium / firefox / webkit), wait_for_selector + wait_timeout (await an element before extracting), take_screenshot (base64 PNG per page). Proxy knobs: use_proxy plus proxy_provider (auto picks by health score), proxy_country, session_type (rotating / sticky), and sticky_duration — see Proxies below.

Output

Per-page content is capped at 100,000 characters.

Example: crawl a blog

Proxy failures degrade gracefully: if the proxy service cannot supply a URL, the crawl proceeds without a proxy and reports proxied: false — which means the target site sees your real IP. Check proxied in the output if that matters.

Apify Actor

Run an Apify actor — a pre-built scraper or automation hosted on the Apify platform — wait for it to finish, and return its dataset items. This is the escape hatch for platforms without a first-class OpenCompany integration: Instagram, TikTok, Twitter/X, LinkedIn, Facebook, YouTube, Google Search and Maps, and general website crawling. Also usable as an AI agent tool. To connect your account, open API Credentials, choose Apify, paste your key (format apify_api_...) into the API Key field, and hit Validate.
Apify is a paid platform. Actors consume Apify usage on your account as they run (many actors also have their own per-result pricing), and heavier memory settings cost more per second. The compute_units field in the output actually reports the run’s total USD usage. Check an actor’s pricing on Apify before running it at scale.

Parameters

select
default:"apify/instagram-scraper"
required
One of 10 curated presets — apify/instagram-scraper, clockworks/tiktok-scraper, apidojo/tweet-scraper, apify/linkedin-scraper, apify/facebook-pages-scraper, streamers/youtube-scraper, apify/google-search-scraper, compass/crawler-google-places, apify/website-content-crawler, curious_coder/web-scraper — or custom
string
Any actor id from the Apify store (when Actor is custom)
string
Raw JSON run-input for the actor. Invalid JSON is silently treated as {}.
number
default:"100"
Maximum dataset items to fetch (1-10000)
number
default:"300"
Run timeout in seconds (1-3600)
select
default:"1024"
Actor memory in MB: 128 / 256 / 512 / 1024 / 2048 / 4096 / 8192
Five presets also expose “quick helper” fields that fill the actor input for you — e.g. instagram_urls (Instagram), tiktok_profiles / tiktok_hashtags (TikTok), twitter_search_terms / twitter_handles (tweet scraper), google_search_query / google_search_pages (Google Search), and crawler_start_urls / crawler_max_depth / crawler_max_pages (website content crawler). Quick helpers overwrite matching keys in your raw Actor Input JSON.

Output

Runs that end FAILED, TIMED-OUT, or ABORTED surface as node errors with the actor’s error message.

Proxies

OpenCompany includes a residential proxy service: you register one or more proxy providers (gateway host/port plus a URL template), store their credentials, and the service picks the best provider per request using health scores, routing rules (domain glob -> preferred providers), geo-targeting, and rotating or sticky sessions. The scraping and HTTP nodes opt in transparently — Crawlee Scraper, HTTP Request, and HTTP Scraper all have a use_proxy flag; when set, the node asks the proxy service for a URL and routes traffic through it. Three dedicated nodes manage and use the service directly.

Proxy Config

Admin node (and AI tool) for managing providers, credentials, and routing rules. Dispatches on Operation: Additional add_provider / update_provider fields: cost_per_gb (USD), priority (0-100, higher ranks first), enabled. Additional add_routing_rule fields: preferred_providers (JSON array), required_country, session_type.

Proxy Request

A proxy-first HTTP client with explicit retry and failover. Unlike the use_proxy flag on other nodes (best-effort), Proxy Request requires the proxy service to be enabled and errors out if no provider is available. Each attempt reports latency and success back into the provider’s health score, and successful requests record byte-based cost.
string
required
Target URL
select
default:"GET"
GET / POST / PUT / DELETE / PATCH
object
Request headers
string
Request body for POST/PUT/PATCH — JSON object, or a string (parsed as JSON when possible, sent raw otherwise)
string
default:"auto"
Specific provider name, or auto for health-based selection
string
ISO country code for geo-targeting
select
default:"rotating"
rotating (new IP per request) or sticky (keep an IP for sticky_duration seconds, default 600)
number
default:"3"
Retry attempts with provider failover (0-10)
number
default:"30"
Request timeout in seconds (1-600)
Output:
An HTTP status of 400 or above counts as a failed attempt and triggers retry/failover; when all attempts fail the node errors with the last error message.

Proxy Status

Read-only snapshot of the proxy runtime — useful on dashboards or as an agent tool so the agent can reason about which provider to target.
When the proxy service is disabled the node still succeeds and returns enabled: false with empty collections — check enabled, not the node’s success state. The provider_name parameter is currently ignored; the node always returns all providers.

Example: scrape a JS-heavy page and summarize

  1. Crawlee ScraperCrawler Type: playwright, Mode: single, URL: the page to watch, Wait For Selector: the element that signals the page has rendered (e.g. .article-body), Output Format: text.
  2. AI Agent — prompt: “Summarize the key points of this page in five bullets.” The scraped pages[0].content flows in as input.
  3. Console — shows the summary on each scheduled run.
The playwright engine renders JavaScript before extraction, so client-side apps and infinite-scroll shells produce real content instead of an empty HTML skeleton.
The RAG pipeline’s HTTP Scraper on Document Processing is a different node: it extracts links from listing pages to feed the download/parse/chunk/embed pipeline, while the nodes on this page extract content.

Tips

Start with beautifulsoup — it is much faster and cheaper than a browser. Switch to playwright only when the page genuinely needs JavaScript to render its content.
In crawl mode, always set URL Pattern and a sensible Max Pages. An unconstrained crawl of a large site burns your whole timeout on pages you do not need.
Use Proxy Config’s test_provider operation right after set_credentials — it does a live round-trip and returns the exit IP and latency, so a typo in credentials surfaces immediately.

Web Search

Find URLs before you scrape them

Browser Automation

Interact with pages instead of just reading them

Document Processing

Feed scraped documents into the RAG pipeline

AI Agents

Give agents scraping tools