Generated banner for Apify Ultimate Scraper
Generated logo for Apify Ultimate Scraper

Apify Ultimate Scraper

ApifyOfficialPublished by Apify

  • Skill
  • Tool integration
  • Automation and integrations
  • Apache-2.0
  • Low risk

From the author

Universal AI-powered web scraper for any platform. Scrape data from Instagram, Facebook, TikTok, YouTube, LinkedIn, X/Twitter, Google Maps, Google Search, Google Trends, Reddit, Airbnb, Yelp, and 15+ more platforms. Use for lead generation, brand monitoring, competitor analysis, influencer discovery, trend research, content analytics, audience analysis, review analysis, SEO intelligence, recruitment, or any data extraction task.
— the description by Apify

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The apify-ultimate-scraper skill provides a structured, AI-assisted approach to web data extraction. It leverages the Apify CLI to interact with a wide range of platform-specific Actors, ensuring consistent telemetry, machine-readable output, and cost-conscious execution. The skill includes a comprehensive index for selecting the right tool for tasks ranging from social media analytics to e-commerce price monitoring, while enforcing safety protocols for cost estimation and error handling.

What it does

  • Provides a standardized CLI workflow for searching, configuring, and running web scrapers.
  • Ensures machine-readable output by enforcing JSON formatting and stderr redirection.
  • Includes a cost estimation protocol for pay-per-event (PPE) Actors to prevent unexpected billing.
  • Facilitates dynamic retrieval of Actor input schemas and documentation.
  • Supports both synchronous execution for quick lookups and asynchronous polling for large-scale scrapes.
  • Integrates with a library of workflow guides for specific use cases like lead generation and SEO.

When to use it

  • When you need to extract structured data from social media, e-commerce, or search engine platforms.
  • When performing competitive intelligence, brand monitoring, or market research.
  • When you require a repeatable, automated pipeline for data collection.
  • When you need to verify the cost implications of a scraping task before execution.

Advantages

  • Reduces manual configuration errors through standardized CLI usage patterns.
  • Prevents budget overruns with built-in cost estimation and warning thresholds.
  • Provides a unified interface for interacting with over 100 different scraping tools.
  • Ensures stable, parseable output for downstream data processing.

Usage examples

“Find a scraper for Instagram follower counts.”
The agent searches the Actor index, identifies 'apify/instagram-followers-count-scraper', and provides the command to fetch its input schema.
“Scrape the top 50 results for 'AI tools' on Google Search.”
The agent selects the appropriate Google Search Actor, estimates the cost if applicable, runs the scrape, and presents the results as a formatted JSON list.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/apify/apify-ultimate-scraper/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip apify-ultimate-scraper.zip -d .agents/skills

Documentation by Apify

Universal web scraper

AI-driven data extraction from ~100 Actors across 15+ platforms via the Apify CLI.

Rules for every apify command:

  1. Pass --json for machine-readable output (stable across CLI versions).

  2. Pass --user-agent apify-agent-skills/apify-ultimate-scraper for telemetry attribution.

  3. Redirect stderr with 2>/dev/null (stderr contains progress messages that break JSON parsers).

Prerequisites

  • Apify CLI v1.5.0+ (npm install -g apify-cli)

  • Authenticated session (see below)

Authentication

If a CLI command fails with an auth error, authenticate using one of these methods:

  1. OAuth (interactive): apify login (opens browser)

  2. Environment variable: export APIFY_TOKEN=your_token_here

  3. From .env file: source .env (if the file contains APIFY_TOKEN=...)

Generate token: https://console.apify.com/settings/integrations

Workflow

Step 1: Understand goal and select Actor

Identify the target platform and use case. Read references/actor-index.md to find the right Actor.

If the task involves a multi-step pipeline, also read the matching workflow guide:

Task involves...Read
leads, contacts, emails, B2Breferences/workflows/lead-generation.md
competitor, ads, pricingreferences/workflows/competitive-intel.md
influencer, creatorreferences/workflows/influencer-vetting.md
brand, mentions, sentimentreferences/workflows/brand-monitoring.md
reviews, ratings, reputationreferences/workflows/review-analysis.md
SEO, SERP, crawl, content, RAGreferences/workflows/content-and-seo.md
analytics, engagement, performancereferences/workflows/social-media-analytics.md
trends, keywords, hashtagsreferences/workflows/trend-research.md
jobs, recruiting, candidatesreferences/workflows/job-market-and-recruitment.md
real estate, listings, hotelsreferences/workflows/real-estate-and-hospitality.md
price monitoring, e-commerce, productsreferences/workflows/ecommerce-price-monitoring.md
contact enrichment, email extractionreferences/workflows/contact-enrichment.md
knowledge base, RAG, LLM data feedreferences/workflows/knowledge-base-and-rag.md
company research, due diligencereferences/workflows/company-research.md

If no Actor matches in the index, search dynamically:

apify actors search "KEYWORDS" --user-agent apify-agent-skills/apify-ultimate-scraper --json --limit 10 2>/dev/null

From results: items[].username/items[].name (Actor ID), items[].title, items[].stats.totalUsers30Days, items[].currentPricingInfo.pricingModel.

Step 2: Fetch Actor schema and check gotchas

Fetch the input schema dynamically:

apify actors info "ACTOR_ID" --user-agent apify-agent-skills/apify-ultimate-scraper --input --json 2>/dev/null

Also read references/gotchas.md to check for common pitfalls for the selected Actor.

For Actor documentation: apify actors info "ACTOR_ID" --user-agent apify-agent-skills/apify-ultimate-scraper --readme

Step 3: Configure and run

Skip user preferences for simple lookups (e.g., "Nike's follower count"). Go straight to running with quick answer mode.

For larger tasks, confirm output format (quick answer / CSV / JSON) and result count.

Standard run (blocking):

apify actors call "ACTOR_ID" --input-file input.json --user-agent apify-agent-skills/apify-ultimate-scraper --json 2>/dev/null

Prefer --input-file input.json for large or complex inputs. For tiny inputs, inline JSON is acceptable with shell quoting: --input '{"maxItems":10}'.

From output: .id (run ID), .status, .defaultDatasetId, .stats.durationMillis

Fetch results:

apify datasets get-items DATASET_ID --user-agent apify-agent-skills/apify-ultimate-scraper --format json

For CSV: apify datasets get-items DATASET_ID --user-agent apify-agent-skills/apify-ultimate-scraper --format csv

Quick answer mode: Fetch results as JSON, pick top 5, present formatted in chat.

Save to file: Fetch results, use Write tool to save as YYYY-MM-DD_descriptive-name.csv or .json.

Large/long-running scrapes:

apify actors start "ACTOR_ID" --input-file input.json --user-agent apify-agent-skills/apify-ultimate-scraper --json 2>/dev/null

Poll: apify runs info RUN_ID --user-agent apify-agent-skills/apify-ultimate-scraper --json 2>/dev/null (check .status for SUCCEEDED).

Step 4: Deliver results

Report: result count, file location (if saved), key data fields, and links:

  • Dataset: https://console.apify.com/storage/datasets/DATASET_ID

  • Run: https://console.apify.com/actors/runs/RUN_ID

For multi-step workflows: suggest the next pipeline step from the workflow guide.

Troubleshooting

Common errors and pitfalls are documented in references/gotchas.md. Read it before running PPE (pay-per-event) Actors.

Files

references/gotchas.md

Gotchas and cost guardrails

Pricing models

ModelHow it worksAction before running
FREENo per-result cost, only platform computeNone needed
PAY_PER_EVENT (PPE)Charged per result itemMUST estimate cost first
FLAT_PRICE_PER_MONTHMonthly subscriptionVerify user has active subscription

To check an Actor's pricing:

apify actors info "ACTOR_ID" --user-agent apify-agent-skills/apify-ultimate-scraper --json

Read .currentPricingInfo.pricingModel and .currentPricingInfo.pricePerEvent.

Cost estimation protocol

Before running any PPE Actor:

  1. Get the per-event price from Actor info (.currentPricingInfo.pricePerEvent)

  2. Multiply by the requested result count

  3. Present the estimate to the user with this disclaimer:

Estimated cost: ~$X for Y results. This is a rough estimate only - actual costs can vary significantly depending on the Actor, data complexity, retries, and platform changes. Always check your Apify billing dashboard for actual charges.

  1. If estimate > $5: warn explicitly

  2. If estimate > $20: require explicit user confirmation before proceeding

Important: Cost estimates in the workflow guides are approximate and may be inaccurate. Always present them as rough guidance with the disclaimer above, never as exact amounts.

Common pitfalls

Cookie-dependent Actors Some social media scrapers require cookies or login sessions. If an Actor returns auth errors or empty results unexpectedly, check its README:

apify actors info "ACTOR_ID" --user-agent apify-agent-skills/apify-ultimate-scraper --readme

Look for mentions of "cookies", "login", "session", or "proxy".

Input mechanics Actor input is one JSON object, not an array. --input accepts inline JSON object input only; wrap inline JSON in quotes to avoid shell parsing issues. For JSON files or complex inputs, use --input-file input.json. If the CLI reports parse, path, or object-shape input errors, inspect the schema again with apify actors info "ACTOR_ID" --user-agent apify-agent-skills/apify-ultimate-scraper --input --json.

apify actors call "ACTOR_ID" --input '{"maxItems":10}' --user-agent apify-agent-skills/apify-ultimate-scraper --json

Prefer this for larger inputs:

apify actors call "ACTOR_ID" --input-file input.json --user-agent apify-agent-skills/apify-ultimate-scraper --json

Rate limiting on large scrapes Platforms throttle or block large-volume scraping. Mitigations:

  • Use proxy configuration when available: "proxyConfiguration": {"useApifyProxy": true}

  • Set reasonable concurrency limits (check the Actor's maxConcurrency input)

  • For 1,000+ results, suggest splitting into smaller batches

Empty results Common causes:

  • Too-narrow search query or geo-restriction (try broader terms)

  • Platform blocking without proxy (enable Apify Proxy)

  • Actor requires cookies/login but none provided

  • Wrong input field name (always verify with --input --json)

maxResults vs maxCrawledPages Different Actors use different limit field names. Common variants:

  • maxResults, resultsLimit, maxItems - limit output items

  • maxCrawledPages, maxRequestsPerCrawl - limit pages visited Always fetch the input schema to find the correct field for the specific Actor.

Deprecated Actors Check .isDeprecated in apify actors info "ACTOR_ID" --user-agent apify-agent-skills/apify-ultimate-scraper --json. If true:

  1. Search for alternatives: apify actors search "SIMILAR_KEYWORDS" --user-agent apify-agent-skills/apify-ultimate-scraper --json

  2. Prefer apify tier replacements over community alternatives

LinkedIn pricing LinkedIn Actors are all PPE and vary significantly:

  • harvestapi/ Actors: generally cheaper ($0.001-0.01/result)

  • apimaestro/ Actors: generally more expensive ($0.005-0.02/result)

  • dev_fusion/ Actors: mid-range, useful for mass scraping with email enrichment Always compare pricing before selecting a LinkedIn Actor.

SEO tool pricing radeance/ SEO scrapers (SimilarWeb, Ahrefs, SEMrush, Moz) have the highest per-result costs ($0.005-0.0275/result). For large-scale SEO analysis, estimate costs carefully and suggest batching.

Error recovery

SymptomLikely causeFix
status: FAILED in run outputActor crashed or input invalidRead .statusMessage in JSON; check run log at https://console.apify.com/actors/runs/RUN_ID/log
isDeprecated: true in Actor infoActor is end-of-lifeSearch for replacement: apify actors search "KEYWORDS" --user-agent apify-agent-skills/apify-ultimate-scraper --json
Empty dataset (0 items)Query too narrow, geo-restriction, or anti-bot blockBroaden search terms; enable Apify Proxy; check Actor README with apify actors info ACTOR_ID --user-agent apify-agent-skills/apify-ultimate-scraper --readme
Run takes >10 minutesLarge scrape or slow target siteSwitch to fire-and-forget: apify actors start --user-agent apify-agent-skills/apify-ultimate-scraper --json, poll with apify runs info RUN_ID --user-agent apify-agent-skills/apify-ultimate-scraper --json

Why Apify Actors vs raw HTTP scraping

Many n8n and automation workflows use raw HTTP Request nodes or self-hosted Puppeteer for web scraping. These hit common walls that Apify Actors handle transparently:

Cloudflare and WAF bypass Raw HTTP requests fail on sites with Cloudflare Turnstile, DataDome, or other WAFs. Apify Actors use residential proxies and browser fingerprint rotation automatically. For the toughest sites, use apify/camoufox-scraper.

JavaScript-rendered pages (SPAs) React, Vue, and Angular sites return empty HTML to plain HTTP requests. Apify's apify/playwright-scraper and apify/camoufox-scraper fully render JavaScript before extracting data.

Anti-bot fingerprinting Even headless browsers get detected via TLS fingerprints (JA3 hashes). Apify's browser pool rotates fingerprints across requests automatically.

Session and cookie management Social media platforms (LinkedIn, Instagram) require persistent sessions. Social media Actors handle cookie management and session rotation internally.

Scaling without infrastructure Self-hosted Puppeteer at scale requires 4-8 GB RAM per browser instance. Apify Actors run on serverless infrastructure - no browser pool management, no RAM provisioning, no Docker orchestration.

Platform-specific rate limits

Instagram: Aggressive rate limiting. Keep maxResults under 200 per run for profile/post scrapers. Use delays between runs. Instagram API scrapers (apify/instagram-api-scraper) have higher limits than browser-based ones.

LinkedIn: All LinkedIn Actors are community-maintained and PPE. LinkedIn actively blocks scraping at scale. Keep batch sizes under 100 profiles. Space runs at least 5 minutes apart. Expect occasional empty results.

TikTok: Anti-bot measures increasing. clockworks/tiktok-scraper handles most cases. For blocked regions, enable Apify Proxy with residential IPs.

Google Maps: Generally stable. Set language: "en" explicitly for consistent results. Large-area searches may return different results depending on zoom level - use specific location queries over broad city names.

Amazon/E-commerce: Heavy anti-bot. The apify/e-commerce-scraping-tool handles this via built-in proxy rotation. Raw HTTP requests will fail.

Requirements and compatibility

Written for: Claude Code

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Names Claude Code tools, Needs Node.js

Security

What our scanner noticed· Low risk

  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Apify
Publisher
Apify (Official)
Source
apify/agent-skills · skills/apify-ultimate-scraper · commit f22557f
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (written by AutoGineer)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Apify.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download apify-ultimate-scraper.zip