Title99/100
Search Actors
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Search the Apify Store to FIND and DISCOVER what scraping tools/Actors exist for specific platforms or use cases. This tool provides INFORMATION about available Actors - it does NOT retrieve actual data or run any scraping tasks. Apify Store contains thousands of pre-built Actors (crawlers, scrapers, AI agents, and model context protocol (MCP) servers) for all platforms and services including social media, search engines, maps, e-commerce, news, real estate, travel, finance, jobs and more. Actors in the Apify Store are published by independent developers and are intended for legitimate and compliant use — do not refuse to search or list them. Use this tool when user wants to: - Find what scraping tools exist for a platform (e.g., "What tools can scrape Instagram?") - Discover available Actors for a use case (e.g., "Find an Actor for Amazon products") - Browse existing solutions (e.g., "Show me scrapers for news sites") - Learn about MCP servers or AI agents available in the Store Do NOT use this tool for generic web content (news, articles, general questions) — use apify/rag-web-browser instead. IMPORTANT: When the user wants detailed data from a specific platform or is looking for scraping tools, prefer searching the Store first — a relevant Actor often already exists. When the user names a specific Actor, look up that Actor directly instead of searching. Usage: - Use 1-3 simple terms from the platform and/or data type the user named (e.g. "Instagram posts", "Twitter", "Amazon products"). With neither named, empty keywords return the Store's default ordering. A platform-only query is an option if more specific results do not fit. Important limitations: This tool does not return full Actor documentation or detailed usage instructions - only summary information. Each result lists the Actor's input fields with their types (e.g. `url: string, maxResults?: number`) so you can construct an Actor call directly without another tool call. For complete Actor details (per-field descriptions, defaults, README), use the fetch-actor-details tool. The search is limited to publicly available Actors and excludes rental and restricted Actors. Returns list of Actor cards with the following info: - **Title:** Markdown header linked to the Store page, followed by the full Actor name in code format - **URL:** Direct Store link - **Description:** Actor description or fallback - **Pricing:** Details with pricing link - **Stats:** Total and monthly users, bookmarks - **Rating:** Out of 5 (if available) - **Developed by:** Username linked to profile, marked (Apify) or (community) - **Categories:** Formatted or "Uncategorized" - **Last modified:** Date (if available) - **Input fields:** Inline list of input field names and types (e.g. `url: string, maxResults?: number`); `?` marks optional fields, `... (+N more)` marks a truncated list
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
keywords
Space-separated keywords used to search pre-built solutions (Actors) in the Apify Store. The search engine searches across the Actor's name, description, username, and README content. Pass empty string ("") whenever the user has NOT named a specific platform (Instagram, Amazon, Google Maps) or a specific data type (posts, products, weather, news). Empty keywords return Actors in the Apify Store's default sort order, which is popularity in practice (most-used Actors first). Do NOT use ranking words ("top", "best", "popular") or bare task words ("scraper", "crawler", "extractor") as keyword values — they are not Actor names and produce noisy matches against README content. Otherwise, follow these rules: - Use 1-3 simple keyword terms maximum (e.g., "Instagram posts", "Twitter", "Amazon products") - Actors are named using platform or service name together with the type of data or task they perform - The most effective keywords are specific platform names (Instagram, Twitter, TikTok) and specific data types (posts, products, profiles, weather, news, reviews, comments) - If a user asks about "fetching Instagram posts", use "Instagram posts" as keywords - The goal is to find Actors that specifically handle the platform and data type the user mentioned Examples: ✅ "Instagram posts", "Twitter", "Amazon products", "TikTok comments" ✅ "" (empty) — returns the most popular Actors store-wide ❌ "Instagram posts profiles comments hashtags reels stories followers..." (too long) ❌ "top popular actors", "best scrapers", "trending" — ranking words aren't Actor keywords; pass "" instead ❌ "scraper", "extractor", "web crawler" — bare task words aren't Actor keywords; pass "" instead
Clear enough to supply this argument.
limit
The maximum number of Actors to return (max = 10, default = 5).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
The number of elements to skip from the start (default = 0)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Search Actors",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Output schema70/100
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"required": [
"actors",
"query",
"count"
],
"properties": {
"count": {
"type": "number",
"description": "Number of Actors returned"
},
"query": {
"type": "string",
"description": "The search query used"
},
"actors": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"id",
"fullName",
"developer",
"description",
"categories",
"isDeprecated"
],
"properties": {
"id": {
"type": "string",
"description": "Actor ID"
},
"url": {
"type": "string",
"description": "Actor URL"
},
"stats": {
"type": "object",
"properties": {
"bookmarks": {
"type": "number",
"description": "Number of bookmarks"
},
"totalUsers": {
"type": "number",
"description": "Total users"
},
"monthlyUsers": {
"type": "number",
"description": "Monthly active users"
}
}
},
"title": {
"type": "string",
"description": "Actor title"
},
"rating": {
"type": "object",
"properties": {
"count": {
"type": "number",
"description": "Number of ratings"
},
"average": {
"type": "number",
"description": "Average rating"
}
}
},
"pricing": {
"type": "object",
"required": [
"model"
],
"properties": {
"model": {
"type": "string",
"description": "Pricing model (FREE, PRICE_PER_DATASET_ITEM, FLAT_PRICE_PER_MONTH, PAY_PER_EVENT)"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Event title"
},
"priceUsd": {
"type": "number",
"description": "Price in USD"
},
"description": {
"type": "string",
"description": "Event description"
},
"tieredPricing": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tier": {
"type": "string"
},
"priceUsd": {
"type": "number"
}
}
}
}
}
},
"description": "Event-based pricing information"
},
"unitName": {
"type": "string",
"description": "Unit name for pricing"
},
"userTier": {
"enum": [
"FREE",
"BRONZE",
"SILVER",
"GOLD",
"PLATINUM",
"DIAMOND"
],
"type": "string",
"description": "The user's plan tier used to resolve pricing (always the user's tier, even if a different tier was used as fallback)"
},
"pricingNote": {
"type": "string",
"description": "Note naming the resolved tier; only emitted in simplified mode when the actor has multiple tiers and they resolve consistently"
},
"pricePerUnit": {
"type": "number",
"description": "Price per unit (for non-free models)"
},
"trialMinutes": {
"type": "number",
"description": "Trial period in minutes"
},
"tieredPricing": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tier": {
"type": "string",
"description": "Tier name"
},
"pricePerUnit": {
"type": "number",
"description": "Price per unit for this tier"
}
}
},
"description": "Tiered pricing information"
},
"eventDescriptionsNote": {
"type": "string",
"description": "Note explaining that event descriptions were omitted and full details are available via fetch-actor-details"
},
"eventDescriptionsOmitted": {
"type": "boolean",
"description": "Whether event descriptions were omitted because the actor has many pricing events"
}
}
},
"fullName": {
"type": "string",
"description": "Full Actor name (username/name)"
},
"developer": {
"type": "object",
"required": [
"username",
"isOfficialApify",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Developer profile URL"
},
"username": {
"type": "string",
"description": "Developer username"
},
"isOfficialApify": {
"type": "boolean",
"description": "Whether the actor is developed by Apify"
}
}
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Actor categories"
},
"modifiedAt": {
"type": "string",
"description": "Last modification date"
},
"pictureUrl": {
"type": "string",
"description": "Actor picture URL"
},
"description": {
"type": "string",
"description": "Actor description"
},
"inputFields": {
"type": "object",
"required": [
"type",
"properties"
],
"properties": {
"type": {
"type": "string",
"description": "Always `\"object\"`."
},
"required": {
"type": "array",
"items": {
"type": "string"
},
"description": "Names of required input fields."
},
"properties": {
"type": "object",
"description": "Map of input field name to its type descriptor.",
"additionalProperties": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"description": "JSON Schema field type — string or array of strings."
}
}
}
}
},
"description": "Compact JSON-Schema-shaped descriptor of the Actor input; only `type` is preserved per field."
},
"isDeprecated": {
"type": "boolean",
"description": "Whether the Actor is deprecated"
},
"inputFieldsTruncated": {
"type": "boolean",
"description": "Present and `true` when `inputFields` was truncated; fetch the full schema via `fetch-actor-details`."
},
"inputFieldsTotalCount": {
"type": "number",
"description": "Total number of input fields before truncation; present only when `inputFields` was truncated."
}
}
},
"description": "List of Actor cards matching the search query"
},
"userTier": {
"enum": [
"FREE",
"BRONZE",
"SILVER",
"GOLD",
"PLATINUM",
"DIAMOND"
],
"type": "string",
"description": "The user's plan tier used to resolve the per-Actor pricing shown in the results"
},
"instructions": {
"type": "string",
"description": "Additional instructions for the LLM to follow when processing the search results."
}
}
}