Apify Plugin for OpenClaw
Universal web scraping and data extraction via Apify — 57+ Actors across Instagram, Facebook, TikTok, YouTube, Google Maps, Google Search, e-commerce, and more.
Install
openclaw plugins install @apify/apify-openclaw-plugin
Restart the Gateway after installation.
How it works
The plugin registers a single tool — apify — with three actions:
discover + query | Search the Apify Store for Actors by keyword |
discover + actorId | Fetch an Actor's input schema + README |
start + actorId + input | Run any Apify Actor, returns runId / datasetId |
collect + runs | Poll status and return results for completed runs |
The tool uses a two-phase async pattern: start fires off a run and returns immediately. collect fetches results when the run completes. The agent does other work in between.
Get an API key
- Create an Apify account at https://console.apify.com/
- Generate an API token in Account Settings → Integrations.
- Store it in plugin config or set the
APIFY_API_KEY environment variable.
Configure
{
plugins: {
entries: {
"apify": {
config: {
apiKey: "apify_api_...", // optional if APIFY_API_KEY env var is set
baseUrl: "https://api.apify.com",
maxResults: 20,
enabledTools: [], // empty = all tools enabled
},
},
},
},
// Make the tool available to agents:
tools: {
alsoAllow: ["apify"], // or "apify" or "group:plugins"
},
}
Or use the interactive setup wizard:
openclaw apify setup
apify
Workflow
discover (search) → discover (schema) → start → collect
- Search — Find Actors:
{ action: "discover", query: "amazon price scraper" }
- Schema — Get input params:
{ action: "discover", actorId: "apify~google-search-scraper" }
- Start — Run the Actor:
{ action: "start", actorId: "apify~google-search-scraper", input: { queries: ["OpenAI"] } }
- Collect — Get results:
{ action: "collect", runs: [{ runId: "...", actorId: "...", datasetId: "..." }] }
Actor ID format
Actor IDs use the username~actor-name format (tilde separator, not slash).
Known Actors
The tool description includes 57+ known Actors across these categories:
- Instagram — profiles, posts, comments, hashtags, reels, search, followers, tagged posts
- Facebook — pages, posts, comments, likes, reviews, groups, events, ads, reels, photos, marketplace
- TikTok — search, profiles, videos, comments, followers, hashtags, sounds, ads, trends, live
- YouTube — search, channels, comments, shorts, video-by-hashtag
- Google Maps — places, reviews, email extraction
- Other — Google Search, Google Trends, Booking.com, TripAdvisor, contact info, e-commerce
Batching
Most Actors accept arrays of URLs/queries in their input (e.g., startUrls, queries). Always batch multiple targets into a single run — one run with 5 URLs is cheaper and faster than 5 separate runs.
Examples
const search = await apify({
action: "discover",
query: "linkedin company scraper",
});
const schema = await apify({
action: "discover",
actorId: "compass~crawler-google-places",
});
const started = await apify({
action: "start",
actorId: "apify~google-search-scraper",
input: { queries: ["OpenAI", "Anthropic"], maxPagesPerQuery: 1 },
label: "search",
});
const results = await apify({
action: "collect",
runs: started.runs,
});
await apify({
action: "start",
actorId: "apify~instagram-profile-scraper",
input: { usernames: ["natgeo", "nasa"] },
});
await apify({
action: "start",
actorId: "clockworks~tiktok-scraper",
input: { searchQueries: ["AI tools"], resultsPerPage: 20 },
});
Sub-agent delegation
The tool description instructs agents to delegate apify calls to a sub-agent. The sub-agent handles the full discover → start → collect workflow and returns only the relevant extracted data — not raw API responses or run metadata.
Security
- API keys are resolved from plugin config or
APIFY_API_KEY env var — never logged or included in output.
- Base URL validation — only
https://api.apify.com prefix is allowed (SSRF prevention).
- External content wrapping — all scraped results are wrapped with untrusted content markers.
Development
npm install
npx tsc --noEmit
npx vitest run
npm pack --dry-run
Support
For issues with this integration, contact integrations@apify.com.
License
MIT