9 Production-Ready Apify Actors & REST APIs for B2B Lead Generation, E-Commerce Price Spying & AI RAG Data Pipelines
Whether you are building an AI agent that researches markets, a B2B outbound sales engine, or an e-commerce competitor price tracker, web data extraction is the foundational layer of your stack. Yet maintaining custom sc
Whether you are building an AI agent that researches markets, a B2B outbound sales engine, or an e-commerce competitor price tracker, web data extraction is the foundational layer of your stack. Yet maintaining custom scrapers in-house — dealing with broken DOM selectors, malformed JSON-LD schemas, email de-obfuscation, and Docker container orchestration — quickly drains engineering bandwidth.
To solve this for developers, growth teams, and AI engineers, I designed and deployed 9 production-ready Apify Store Actors (alongside 5 RapidAPI Hub REST APIs and 3 standalone Python + Excel VBA suites). Every Actor runs on Node.js 24 + @crawlee/cheerio, starts in under 2 seconds, and uses transparent Pay-Per-Event pricing ($0.002 per dataset item) with zero monthly lock-in.
In this comprehensive reference guide, we will explore all 9 Apify Actors, inspect their JSON schemas, and walk through copy-pasteable integration patterns for Python, Node.js, cURL, and n8n / Make / Zapier workflows.
🗂️ Complete Catalog: 9 Production Apify Store Actors
Category A: B2B Lead Generation & Contact Enrichment
1. Google Maps & Local Business Lead, Email, Phone & Social Extractor
- 🔗 Apify Store:
tungnguyen84/google-maps-lead-email-phone-extractor -
What it extracts:
businessName,category,domain,website,address,rating,reviewCount,emails,phones,linkedin,facebook,instagram,twitter,youtube,tiktok. -
How it works: Parses
Schema.orgLocalBusiness/OrganizationJSON-LD and microdata, then automatically crawls/contact,/about,/locations, and/impressumpages on the company domain to uncover verified email addresses that aren't displayed on Google Maps cards.
2. GitHub Developer, Contributor & Stargazer B2B Lead Scraper
- 🔗 Apify Store:
tungnguyen84/github-developer-contributor-lead-scraper -
What it extracts:
recordType(developerorrepository),username,fullName,profileUrl,repositoryUrl,bio,company,location,website,twitter,linkedin,emails,followers,publicRepos. -
How it works: Accepts GitHub repository URLs (e.g.
https://github.com/apify/crawlee) or developer profile URLs (https://github.com/tungnguyen84), automatically discovers contributors, and extracts B2B recruiting and DevTools GTM leads without hitting GitHub's 60 req/hr unauthenticated API limit.
3. B2B Website Email, Phone & Social Media Contact Scraper
- 🔗 Apify Store:
tungnguyen84/b2b-website-email-phone-social-scraper - 🔗 RapidAPI Hub:
b2b-website-email-phone-social-scraper -
What it extracts: Verified
mailto:and inline emails, phone numbers, company titles, meta descriptions, and 6 social networks across any list of B2B domains.
Category B: AI, LLM & RAG Data Ingestion Pipelines
4. YouTube Video Transcript, Metadata, Comments & Channel Email Scraper
- 🔗 Apify Store:
tungnguyen84/youtube-video-transcript-metadata-scraper -
What it extracts:
videoId,title,channelName,channelId,channelUrl,viewCount,durationSeconds,publishDate,keywords,transcriptLanguage,wordCount,estimatedTokens,fullTranscriptText,transcriptSegments([{ start, duration, text }]),contactEmails,outboundLinks, andmarkdownForAi. - Best for: AI video summarizers, podcast/lecture RAG knowledge bases, and YouTube creator sponsorship outreach.
5. Reddit Subreddit, Search & Thread to Clean JSON & AI Markdown Scraper
- 🔗 Apify Store:
tungnguyen84/reddit-subreddit-json-ai-scraper -
What it extracts:
id,subreddit,title,author,score,numComments,url,permalink,selftext,wordCount,estimatedTokens,markdownForAi,createdAt. -
Best for: Community sentiment analysis, AI product research agents, and training data curation from
old.reddit.com,reddit.com, and.jsonfeeds.
6. Website to Clean Markdown & Text Scraper for AI, LLM & RAG
- 🔗 Apify Store:
tungnguyen84/website-to-markdown-ai-rag-llm-scraper - 🔗 RapidAPI Hub:
website-to-clean-markdown-ai-llm-rag-converter -
What it extracts: Strips scripts, ads, navbars, and SVGs from documentation portals or articles and outputs hierarchical Markdown (
# H1,## H2,### H3, code blocks) with exact word and LLM token estimates.
Category C: E-Commerce Intelligence & Technical SEO Auditing
7. Shopify Store Products, Prices & B2B Contact Email Scraper
- 🔗 Apify Store:
tungnguyen84/shopify-store-product-contact-scraper - 🔗 RapidAPI Hub:
shopify-store-product-price-contact-scraper - What it extracts: Product catalogs, variants, sale prices, compare-at prices, stock availability, vendor tags, and merchant contact emails/social links.
8. WooCommerce & WordPress Store Product, Price & Contact Scraper
- 🔗 Apify Store:
tungnguyen84/woocommerce-wordpress-store-product-contact-scraper - 🔗 RapidAPI Hub:
woocommerce-wordpress-product-price-contact-spy - What it extracts: WooCommerce product titles, prices, URLs, and store owner emails & phone numbers.
9. Website SEO Audit, Meta Tags, Headings & Contact Email Scraper
- 🔗 Apify Store:
tungnguyen84/website-sitemap-seo-audit-email-scraper - 🔗 RapidAPI Hub:
website-sitemap-seo-audit-contact-scraper -
What it extracts: On-page SEO diagnostics (
titlelength,meta description,canonical,h1Count,h2Count,imagesMissingAlt, internal/external links) combined with lead contact discovery for SEO agencies.
💻 Production Code Examples: Calling Any Actor via Synchronous REST API
Apify provides a single-request synchronous endpoint (run-sync-get-dataset-items) that starts the Actor, waits for completion (typically 3–12 seconds for Cheerio-based Actors), and returns the dataset items directly as a JSON array.
1. Python SDK-Free Client with Automatic Retries
import time
import requests
from typing import Any, Dict, List
class ApifyScraperClient:
def __init__(self, api_token: str):
self.api_token = api_token
self.base_url = "https://api.apify.com/v2/acts"
def run_actor_sync(
self,
actor_id: str,
input_payload: Dict[str, Any],
timeout_secs: int = 120,
max_retries: int = 3,
) -> List[Dict[str, Any]]:
endpoint = (
f"{self.base_url}/{actor_id}/run-sync-get-dataset-items"
f"?token={self.api_token}"
)
for attempt in range(1, max_retries + 1):
try:
response = requests.post(
endpoint,
json=input_payload,
headers={"Content-Type": "application/json"},
timeout=timeout_secs,
)
response.raise_for_status()
return response.json()
except requests.RequestException as exc:
if attempt == max_retries:
raise RuntimeError(
f"Actor {actor_id} failed after {max_retries} attempts: {exc}"
) from exc
backoff = 2 ** attempt
print(f"[Retry {attempt}/{max_retries}] Waiting {backoff}s...")
time.sleep(backoff)
return []
if __name__ == "__main__":
client = ApifyScraperClient(api_token="YOUR_APIFY_TOKEN")
# Example 1: Extract Google Maps & Local Business Leads
leads = client.run_actor_sync(
"tungnguyen84~google-maps-lead-email-phone-extractor",
{
"startUrls": [{"url": "https://apify.com/contact"}],
"enrichCompanyWebsites": True,
"maxBusinesses": 10,
},
)
print(f"Extracted {len(leads)} business leads:")
for lead in leads:
print(f" - {lead.get('businessName')}: emails={lead.get('emails')}, phones={lead.get('phones')}")
# Example 2: Extract GitHub Developer Contributors
devs = client.run_actor_sync(
"tungnguyen84~github-developer-contributor-lead-scraper",
{
"targetUrls": [{"url": "https://github.com/tungnguyen84"}],
"maxProfiles": 10,
},
)
print(f"Extracted {len(devs)} GitHub developer profiles:")
for dev in devs:
print(f" - @{dev.get('username')} ({dev.get('fullName')}): {dev.get('emails')}")
2. Node.js / TypeScript Parallel Batch Pipeline (Promise.allSettled)
When enriching a prospect company, you often want to scrape their company website contacts, SEO health, and GitHub organization in parallel:
const APIFY_TOKEN = process.env.APIFY_TOKEN || "YOUR_APIFY_TOKEN";
async function invokeActor(actorSlug, input) {
const url = `https://api.apify.com/v2/acts/${actorSlug}/run-sync-get-dataset-items?token=${APIFY_TOKEN}`;
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(input),
});
if (!res.ok) {
throw new Error(`HTTP ${res.status} from ${actorSlug}: ${await res.text()}`);
}
return res.json();
}
async function enrichCompany360(websiteUrl, githubUrl) {
const [contactRes, seoRes, githubRes] = await Promise.allSettled([
invokeActor("tungnguyen84~google-maps-lead-email-phone-extractor", {
startUrls: [{ url: websiteUrl }],
enrichCompanyWebsites: true,
maxBusinesses: 5,
}),
invokeActor("tungnguyen84~website-sitemap-seo-audit-email-scraper", {
startUrls: [{ url: websiteUrl }],
maxPagesPerSite: 3,
}),
invokeActor("tungnguyen84~github-developer-contributor-lead-scraper", {
targetUrls: [{ url: githubUrl }],
maxProfiles: 5,
}),
]);
return {
contacts: contactRes.status === "fulfilled" ? contactRes.value : [],
seoAudit: seoRes.status === "fulfilled" ? seoRes.value : [],
githubDevelopers: githubRes.status === "fulfilled" ? githubRes.value : [],
};
}
enrichCompany360("https://apify.com/contact", "https://github.com/apify/crawlee")
.then((report) => console.log(JSON.stringify(report, null, 2)))
.catch(console.error);
⚡ Why @crawlee/cheerio Beats Headless Browsers for 90% of B2B & AI Scraping
Many developers default to Puppeteer or Playwright for every scraping task. However, in benchmark tests across 1,000 business domains, GitHub repositories, YouTube videos, and Shopify/WooCommerce stores:
-
Speed:
@crawlee/cheerioprocesses 12–25 pages per second per container, compared to 0.4–1.2 pages per second in headless Chromium. -
Memory & Compute Cost: A Cheerio Actor runs comfortably inside a
256 MB – 512 MBcontainer, costing 10x to 25x less in platform compute units than a4 GBPlaywright container. -
Hidden Structured Data: Even modern SSR/hydrated frameworks (Next.js, Nuxt, Shopify Liquid, WordPress, YouTube
ytInitialPlayerResponse, GitHub semantic HTML) embed 100% of their primary entity data directly in the initial HTML response.
📦 Own the Full Offline Source Code & Excel VBA Automation Suites
If you want standalone Python CLI executables and 1-click Excel VBA Macro Dashboards with lifetime source code access and zero recurring API fees:
-
Python B2B Lead Scraper, Email Extractor & Excel VBA Suite Pro (
$14.99) — Includes multi-threaded Python B2B scraper + Excel VBA dashboard. -
Shopify Competitor Price & Product Spy Pro (
$12.99) — Track competitor Shopify catalogs, discounts, and stock changes directly in Excel. -
Ultimate Excel VBA Automation Pack: 10 One-Click Business Macros (
$9.99) — Instant data cleaning, duplicate removal, sheet merging, and PDF reporting macros.
Need a custom Apify Actor, anti-bot scraper, or end-to-end data pipeline tailored to your business? Contact me on Fiverr (@tungnguyen84)!
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.