Guides
Apify guides
Build your first JavaScript actor
Scaffold, code, run, and deploy in one sitting
A beginner-friendly walkthrough that takes you from `apify create` to a deployed JavaScript actor that scrapes page titles. No Crawlee, no Puppeteer — just the Apify SDK and built-in fetch.
Read guideBuild your first Python actor
Scaffold, code, run, and deploy in one sitting
A beginner-friendly walkthrough that takes you from `apify create` to a deployed Python actor that scrapes page titles. Uses the Apify Python SDK and httpx — nothing else.
Read guideUse Apify Proxy without getting blocked
Session pools, country targeting, retry-on-block
The four knobs that actually matter — datacenter vs residential, country targeting, session pools, and retry-on-block — plus drop-in JS and Python helpers for Crawlee and raw fetch.
Read guideCache expensive scrapes across runs
Don't re-scrape what you scraped yesterday
A KV-store cache helper that turns 10k unchanged product pages into 1k. Includes TTL strategies, cache busting via a version constant, and the gotchas around per-actor scope and value size.
Read guideSchedule your actor (without burning credits)
Cron + a cursor pattern that prevents rework
Apify Schedules plus a KV-store cursor so a daily 6am job doesn't re-scrape yesterday's data. Covers UTC gotchas, overlapping runs, and how to keep state consistent across failures.
Read guideChain Apify actors
Actor.call() vs Actor.start(), and reading the dataset
Call one actor from another — synchronously with `Actor.call()`, fire-and-forget with `Actor.start()`. Orchestrator patterns, dataset reading, cost compounding, and how to avoid infinite loops.
Read guideSend run results to a webhook
Deliver datasets to Slack, Sheets, S3, your own server
Configure Apify webhooks via the Console or `.actor/actor.json`, verify the request without HMAC, pull the dataset by id, and stay idempotent on retries. JS (Express) and Python (FastAPI) receivers.
Read guideWrite a high-converting Store listing
Title formula, README skeleton, screenshots, pricing
Most actors ship with 2-star listings. The title formula that ranks, the README skeleton buyers actually read, the three screenshots that sell, and the pricing presentation that prevents chargebacks.
Read guideAdd free-tier limits to your actor
Cap results, runs/day, and add a cooldown
Push free users to upgrade without breaking your actor. A drop-in helper that limits results per run, daily runs, and enforces a cooldown — with paid users bypassed via APIFY_USER_IS_PAYING.
Read guideHow to tell if a user is paying
Detect paid plans with APIFY_USER_IS_PAYING
The env var Apify injects on every run to tell you whether the user is on a paid plan — plus a reusable tier helper, gating patterns, watermarking, and the gotchas worth knowing.
Read guideGot an Apify question you wish was a guide? Email support@mail.apifyhub.com — we read every request.