What Are Apify Actors? A Beginner's Guide
Quick Answer
Apify Actors are serverless scraping and automation programs that run in Docker containers on Apify's cloud. They take JSON input, run your code, and produce structured output. That output is typically datasets (rows), plus optional files and request queues for crawls.
You can run thousands of Store Actors without writing code, or build and publish your own with the Apify SDK and Crawlee.
What an Actor is
An Actor is the unit of work on Apify: packaged automation that runs in an isolated container with configured memory, timeout, and access to storage and proxies. People use Actors for scraping, crawling, RAG data prep, monitoring, and browser workflows. Anything you might script against the web works here, but with production infrastructure attached.
The Apify platform schedules runs, bills compute, and exposes APIs so CI, notebooks, and no-code tools can trigger the same Actor a human starts in the Console.
How Actors work (input → run → output)
- Input: JSON defined by an
INPUT_SCHEMA(Store Actors ship with a form in the Console). - Run: Apify starts a container, injects environment (tokens, proxy config), and executes your entrypoint.
- Output: Your code pushes records to a dataset, binary files to a key-value store, and can enqueue URLs in a queue for multi-step crawls.
After the run, you download CSV/JSON, pull items via API, or forward data to Zapier, n8n, Make, or a warehouse.
Store Actors vs custom Actors
| Store Actor | Custom Actor | |
|---|---|---|
| Source | Published by Apify or community developers | Your repo (apify create, then apify push) |
| Best for | Known sites (Amazon, Maps, Instagram, …) and quick wins | Proprietary logic, internal tools, niche sites |
| Pricing | Set by publisher (per result, rental, events, etc.) | Your platform compute + optional monetization |
| Input | Pre-built UI from INPUT_SCHEMA | You define schema and README |
Pricing models (how you pay)
What you pay depends on who built the Actor:
- Platform compute: CPU/memory time on Apify (compute units).
- Actor author fees: Many Store Actors add per-item, per-event, or monthly rental charges on top of compute.
- Proxies: Residential or SERP proxies are often add-ons billed by traffic or provider.
Always read the Pricing tab on the Actor page before a large run. New accounts can experiment on the free plan within monthly credits.
How to run an Actor (no code)
- Open an Actor in the Store and click through to the run console.
- Fill the input form (URLs, limits, options).
- Click Start and watch the log.
- Open Storage → Dataset and export JSON, CSV, or Excel, or copy the dataset ID for API access.
Add a Schedule under Schedules for nightly or hourly automation.
Code example: input, push data, output shape
Below is a minimal Node.js Actor that reads input, scrapes a page with Crawlee, and pushes rows to the default dataset (what you see as Output in the Console).
Input JSON (example you pass in the Console or API)
{
"startUrls": [{ "url": "https://news.ycombinator.com" }],
"maxItems": 5
}
Excerpt: src/main.js
import { Actor } from 'apify';
import { CheerioCrawler } from 'crawlee';
await Actor.init();
const input = await Actor.getInput();
const startUrls = input?.startUrls ?? [{ url: 'https://news.ycombinator.com' }];
const maxItems = input?.maxItems ?? 5;
let count = 0;
const crawler = new CheerioCrawler({
maxRequestsPerCrawl: maxItems,
async requestHandler({ request, $ }) {
const title = $('title').text().trim();
await Actor.pushData({
url: request.url,
pageTitle: title,
scrapedAt: new Date().toISOString(),
});
count += 1;
},
});
await crawler.run(startUrls);
await Actor.setValue('OUTPUT', { itemCount: count, message: 'Done' });
await Actor.exit();
Example dataset item (output row)
{
"url": "https://news.ycombinator.com",
"pageTitle": "Hacker News",
"scrapedAt": "2026-03-21T12:00:00.000Z"
}
Optional key-value output (OUTPUT in this example) is useful for summary metadata; tabular exports usually come from the dataset.
Actors vs a script on your laptop
| Local script | Apify Actor | |
|---|---|---|
| Where it runs | Your machine | Managed cloud containers |
| Scale | One box | Parallel runs and autoscaling patterns |
| Proxies | Bring your own | Integrated Apify Proxy and partners |
| Scheduling | Cron on a server | Built-in Schedules |
| Storage | Files on disk | Datasets, KV store, queues |
Ecosystem snapshot
The Store holds 30,000+ Actors across social, e-commerce, lead gen, and AI data. Category picks live under Best Apify Actors, for example social, e-commerce, and lead generation.
Build and monetize your own
Developers use Crawlee with the Apify SDK to build Actors, then apify push to the platform. You can monetize with per-result, event, or rental pricing. Step-by-step: Build an Apify Actor.
Open the Apify Store and run a scraper on a small limit. That is the fastest way to learn inputs and outputs.
An Apify Actor is a packaged automation program (usually web scraping or browser automation) that runs in a Docker container on Apify. You send JSON input, the platform executes the code with storage and optional proxies, and results appear in datasets and other storages you can export or query via API.
Many Store Actors are pay-per-use. The platform free tier includes monthly credits you can apply to runs; some Actors also charge author fees. Check each Actor’s Pricing tab and run a tiny test first.
Search the Store by site name or use case, read the README and input schema, and compare pricing. Our Best Apify Actors hub groups vetted picks by category when you want a shortlist.
Crawlee is an open-source scraping library (Node.js and Python). An Actor is the cloud package that runs on Apify, often built with Crawlee, plus Apify’s runtime, storage, scheduling, and Store distribution.
An Actor runs arbitrary automation in a container. Apify also exposes REST APIs to start runs and fetch datasets. So you might call the API to trigger an Actor; the Actor is the workload, the API is the control plane.
Yes. Pick a Store Actor, fill its input form in the Console, and click Start. Use Schedules for repetition and integrations like Zapier or n8n for handoff to other tools.



