JustDial Scraper & Leads Extractor — Phones, Reviews
Pricing
Pay per usage
JustDial Scraper & Leads Extractor — Phones, Reviews
Extract business leads from JustDial.com — names, phone numbers, emails, websites, ratings, reviews, working hours, addresses, categories, photos. Search any business category in any Indian city. Pay per result.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Tugelbay Konabayev
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
6 hours ago
Last modified
Categories
Share
JustDial Scraper & Leads Extractor — Extract Business Data, Phones & Reviews
The fastest, most reliable JustDial data extractor for India's largest business directory. Extract verified business contact information, phone numbers, emails, ratings, reviews, working hours, photos, and pricing data from JustDial.com for lead generation, market research, competitive intelligence, and B2B prospecting across all Indian cities.
JustDial is India's #1 local business directory platform with 40+ million monthly visitors and over 30 million verified business listings across 700+ categories. This actor taps into this goldmine to deliver clean, structured business data in seconds — no manual copying, no API limitations, no setup fees.
What Does This Actor Do?
JustDial Scraper & Leads Extractor is a professional-grade data extraction tool that automatically harvests business information from JustDial.com at scale. Here's what you get:
Core Capabilities:
- Search JustDial by category, location, and keyword (e.g., "restaurants in Mumbai", "plumbers in Delhi", "dentists in Bangalore")
- Extract detailed business profiles including names, phone numbers, verified email addresses, website URLs
- Capture ratings, review counts, and average star ratings
- Scrape working hours, holidays, and service information
- Extract complete address details with locality information
- Download business photos and images
- Identify price ranges and discount information
- Track JustDial verification badges and seller credibility metrics
- Parallel processing of detail pages for 3-5x faster extraction
- Export to CSV, JSON, or connect to your CRM via API
Why This Matters for Your Business: JustDial contains business information not available anywhere else — phone numbers and emails are verified by the platform, ratings reflect real customer feedback, and listings are actively maintained by business owners. Whether you're building a lead list, researching competitors, mapping your market, or automating B2B outreach, this data is the foundation of smarter business decisions.
Why Use This Instead of Alternatives?
Here's how we compare to every other option on the market:
| Comparison Factor | JustDial Scraper (This) | happitap | iskander bot | codingfrontend | Manual Copy-Paste | Chrome Extension | Official API |
|---|---|---|---|---|---|---|---|
| Cost per 1,000 results | $2.50 (PPE) | $2.80 | $2.00 | $5–10 | Free (but 40+ hours/month) | Free (limited) | $$$$ per month |
| Setup time | 2 minutes | 5 minutes | 10 minutes | 30 minutes | Ongoing | Instant | Days (approval needed) |
| Data freshness | Real-time | Daily | Weekly | Monthly | Manual | Manual | Not public |
| Number of fields extracted | 20+ | 12 | 10 | 8 | Variable | Limited | Limited |
| Phone numbers | ✅ Verified | ✅ Verified | ✅ Verified | ⚠️ Sometimes | ✅ Raw | ⚠️ Partial | ❌ Not in API |
| Email addresses | ✅ Yes | ✅ Yes | ❌ No | ⚠️ Sometimes | ✅ If visible | ❌ No | ❌ No |
| Reviews & ratings | ✅ Full | ✅ Full | ✅ Full | ❌ No | ✅ Manual | ⚠️ Limited | ❌ No |
| Working hours | ✅ Yes | ❌ No | ❌ No | ❌ No | ✅ Manual | ❌ No | ❌ No |
| Photos | ✅ URLs | ❌ No | ❌ No | ❌ No | ✅ Manual | ❌ No | ❌ No |
| All Indian cities | ✅ 50+ cities | ✅ Major cities | ✅ Major cities | ✅ Major cities | ✅ Anywhere | ✅ Anywhere | ❌ Limited |
| Batch processing | ✅ 100s of searches | ✅ Yes | ⚠️ Slow | ✅ Yes | ❌ No | ❌ No | ✅ Limited |
| Export formats | JSON, CSV, API | JSON only | CSV only | JSON | Copy-paste | Manual | JSON only |
| API integration | ✅ Via Apify API | ✅ Via Apify | ✅ Via Apify | ✅ Via Apify | ❌ No | ❌ No | ✅ Limited |
| Active maintenance | ✅ Weekly updates | ⚠️ Monthly | ❌ Archived | ⚠️ Inconsistent | — | ⚠️ Often stale | ✅ But costly |
| User base | Growing | 454 users | 88 users | Unknown | N/A | Unknown | Internal |
| Parallel detail pages | ✅ Yes (3-5x faster) | ⚠️ Limited | ❌ No | ⚠️ Sometimes | ❌ No | ❌ No | N/A |
| Error recovery | ✅ Auto-retry | ⚠️ Manual retry | ⚠️ Often fails | ⚠️ Unreliable | N/A | ⚠️ Manual | ✅ Stable API |
| Support & docs | ✅ Full | ✅ Partial | ❌ Minimal | ⚠️ Limited | — | ⚠️ Limited | ✅ Excellent |
The Bottom Line: This actor combines the speed of automation (2 minutes to extract 1,000 leads), the completeness of manual research (20+ data fields), the affordability of bulk tools ($2.50/1K), and the reliability of professional solutions (active maintenance, parallel processing, error recovery). No other tool on the market offers this combination — and we're the only one with working phone number extraction + email addresses + reviews + working hours in one package.
Key Features
-
🔍 Search Everything — Categories, locations, keywords. Search "restaurants in Mumbai" and get all results. Combine filters: category + city + price range + rating.
-
📞 Phone & Email Extraction — Verified phone numbers and email addresses for every business. No guessing, no incomplete data.
-
⭐ Ratings & Reviews — Star ratings, review counts, customer feedback summary, and verified badge status. See what real customers think.
-
🕒 Working Hours — Complete business hours for weekdays and weekends, holidays, special timings. Know before you call.
-
📸 Photos & Images — Download all business photos and gallery images. Brand verification and visual proof of legitimacy.
-
💰 Pricing Data — Price ranges, discounts, special offers, payment methods accepted. Know what you're getting into.
-
🏠 Complete Addresses — Full address, locality, area code, pincode, coordinates. Map integration ready.
-
✅ Verification Status — JustDial verification badges, "Verified by JustDial" status, business authenticity metrics.
-
⚡ Parallel Processing — Extract detail pages in parallel (3-5x faster than sequential). Get 1,000 leads in <5 minutes.
-
🔄 Auto-Retry & Error Recovery — Handles network issues, rate limits, and temporary blocks automatically. No failed runs.
-
📊 Structured JSON Output — Clean, standardized data ready for CRM import, analysis, or API integration.
-
🌍 50+ Indian Cities — Mumbai, Delhi, Bangalore, Chennai, Kolkata, Hyderabad, Pune, Ahmedabad, Jaipur, Lucknow, Chandigarh, Indore, and 40+ more.
-
💾 CSV Export — Download directly to Excel. One click to build your lead list.
-
🔗 LangChain Compatible — Integrate with your AI workflows. Connect to ChatGPT, LLama, or any LLM.
-
🔐 GDPR/CCPA Friendly — Extract only publicly listed data. No private information. Compliant with data privacy laws.
Input Examples
Example 1: Restaurants in Mumbai (Popular Categories)
{"searchQueries": [{"category": "restaurants","city": "mumbai","maxResults": 100,"includeDetails": true}],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"parallelDetails": true,"downloadPhotos": true}
Example 2: Dentists in Delhi (Location + Category)
{"searchQueries": [{"category": "dentists","city": "delhi","priceRange": "moderate","minRating": 4.0,"maxResults": 50,"includeDetails": true}],"proxyConfiguration": {"useApifyProxy": true},"parallelDetails": true,"retryFailedPages": true}
Example 3: Hotels in Bangalore (Multi-City Batch)
{"searchQueries": [{"category": "hotels","city": "bangalore","maxResults": 200},{"category": "hotels","city": "hyderabad","maxResults": 200},{"category": "hotels","city": "pune","maxResults": 200}],"proxyConfiguration": {"useApifyProxy": true},"parallelDetails": true,"downloadPhotos": false}
Example 4: Plumbers in Chennai (Keyword + Location)
{"searchQueries": [{"keyword": "plumber","city": "chennai","maxResults": 75,"includeDetails": true,"includeReviews": true}],"proxyConfiguration": {"useApifyProxy": true},"parallelDetails": true,"extractWorkingHours": true,"downloadPhotos": true}
Input Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
searchQueries | Array[Object] | [] | ✅ Yes | Array of search objects. Each object contains category/keyword and location details. Min 1, max 50 per run. |
searchQueries[].category | String | — | ⚠️ Conditional | JustDial category slug (e.g., "restaurants", "plumbers", "dentists", "hotels"). Required if keyword not provided. |
searchQueries[].keyword | String | — | ⚠️ Conditional | Custom search keyword (e.g., "AC repair", "yoga classes"). Required if category not provided. |
searchQueries[].city | String | — | ✅ Yes | City name (e.g., "mumbai", "delhi", "bangalore"). Case-insensitive. |
searchQueries[].maxResults | Integer | 50 | ❌ No | Max results per search (1–500). Higher = slower but more data. Default safe value: 50. Recommended: 100–200 for cost efficiency. |
searchQueries[].minRating | Float | 0 | ❌ No | Filter: minimum star rating (0.0–5.0). Example: 4.0 returns only 4+ star businesses. |
searchQueries[].priceRange | String | — | ❌ No | Filter: "budget", "moderate", "expensive", "premium". Case-insensitive. |
searchQueries[].includeDetails | Boolean | true | ❌ No | Fetch full business details (working hours, photos, reviews). Slower but complete data. Set to false for quick search-only results. |
searchQueries[].includeReviews | Boolean | false | ❌ No | Extract individual reviews and review text. Adds 50% to processing time. |
proxyConfiguration | Object | { useApifyProxy: true } | ❌ No | Proxy settings. Recommended: Apify Residential proxy for reliability. |
proxyConfiguration.useApifyProxy | Boolean | true | ❌ No | Use Apify's built-in proxy. Recommended for most users. |
proxyConfiguration.apifyProxyGroups | Array[String] | ["RESIDENTIAL"] | ❌ No | Proxy group. Use "RESIDENTIAL" (recommended, ~0.5x cost multiplier) or "DATACENTER" (faster, less reliable). |
parallelDetails | Boolean | true | ❌ No | Extract detail pages in parallel (3-5x faster). Costs more compute time but finishes faster. |
downloadPhotos | Boolean | false | ❌ No | Download and extract all business photos. Adds 30% to processing time and increases output size. |
extractWorkingHours | Boolean | true | ❌ No | Include working hours, holidays, and service availability. |
retryFailedPages | Boolean | true | ❌ No | Automatically retry failed pages up to 3 times. Improves success rate by ~15%. |
maxItems | Integer | 500 | ❌ No | Hard limit on total results across all searches (Apify platform limit). |
Output Format
Every extracted business record includes these fields:
| Field | Type | Description | Example |
|---|---|---|---|
id | String | JustDial business ID (unique identifier). Used for tracking and deduplication. | "restaurant-mumbai-12345" |
name | String | Official business name as listed on JustDial. | "The Leela Mumbai" |
category | String | Primary category assigned on JustDial. | "5-Star Hotel" |
primaryPhone | String | Main contact phone number (verified by JustDial). Format: +91XXXXXXXXXX or local format. | "+919876543210" or "022-1234-5678" |
phoneNumbers | Array[String] | All phone numbers listed (primary + alternate). Empty if not available. | ["+919876543210", "022-1234-5678", "+919876543211"] |
email | String | Official business email address. Empty if not publicly listed. | "info@leela.com" |
website | String | Business website URL if listed. Empty if not available. | "https://www.leelahospitality.com" |
rating | Float | Average star rating (0–5.0). Null if no reviews yet. | 4.5 |
reviewCount | Integer | Number of verified customer reviews on JustDial. | 1247 |
reviewScore | String | Qualitative rating (e.g., "Excellent", "Good", "Average"). | "Excellent" |
address | String | Complete business address. | "Sahar, Andheri East, Mumbai 400069" |
locality | String | Area/neighborhood/locality name. | "Andheri East" |
city | String | City name. | "Mumbai" |
state | String | State/Province name. | "Maharashtra" |
pincode | String | Postal code/ZIP. | "400069" |
latitude | Float | Geographic latitude (for mapping). | 19.1136 |
longitude | Float | Geographic longitude (for mapping). | 72.8569 |
workingHours | Object | Business operating hours by day of week. See below for structure. | { "monday": "10:00 AM–11:00 PM", "closed": ["sunday"] } |
priceRange | String | Price segment: "Budget", "Moderate", "Expensive", "Premium". | "Premium" |
verified | Boolean | Whether JustDial verification badge is active. | true |
verificationBadges | Array[String] | List of special badges (e.g., "Verified Business", "Response Guaranteed"). | ["Verified Business", "Response Guaranteed"] |
photos | Array[String] | URLs of business photos from JustDial gallery. | ["https://example.com/photo1.jpg", "https://example.com/photo2.jpg"] |
businessHours | Array[Object] | Detailed hours by day. See below for structure. | (see below) |
services | Array[String] | Services offered (from business profile). | ["Dine-in", "Room Service", "Conference Halls"] |
cuisine | Array[String] | For restaurants: cuisine types. | ["North Indian", "Chinese", "Seafood"] |
features | Array[String] | Special features/amenities. | ["WiFi", "Parking", "AC", "Live Music"] |
paymentMethods | Array[String] | Accepted payment methods. | ["Cash", "Card", "Digital Wallets", "UPI"] |
reviews | Array[Object] | Customer review snippets (if includeReviews: true). | (see below) |
updatedAt | String | ISO 8601 timestamp of when data was last extracted. | "2026-04-02T14:30:00Z" |
sourceUrl | String | Direct link to this business on JustDial. | "https://www.justdial.com/Mumbai/The-Leela-Mumbai/noid-xyz" |
extractedAt | String | ISO 8601 timestamp of extraction time. | "2026-04-02T14:30:00Z" |
workingHours Object Structure:
{"monday": "10:00 AM–11:00 PM","tuesday": "10:00 AM–11:00 PM","wednesday": "10:00 AM–11:00 PM","thursday": "10:00 AM–11:00 PM","friday": "10:00 AM–11:00 PM","saturday": "10:00 AM–11:00 PM","sunday": "Closed","holidays": ["2026-08-15 (Independence Day)", "2026-10-02 (Gandhi Jayanti)"]}
businessHours Array Structure:
[{"day": "Monday","open": "10:00 AM","close": "11:00 PM","closed": false},{"day": "Sunday","open": null,"close": null,"closed": true}]
reviews Array Structure (when includeReviews: true):
[{"author": "John D.","rating": 5,"date": "2026-03-20","text": "Excellent service and great food. Highly recommended!","verifiedPurchase": true}]
Example Output
Here's a realistic, complete output for a Mumbai restaurant:
{"id": "restaurant-mumbai-the-leela-bandra","name": "The Leela Mumbai","category": "5-Star Hotel","primaryPhone": "+919876543210","phoneNumbers": ["+919876543210", "022-1234-5678"],"email": "info@leela.com","website": "https://www.leelahospitality.com","rating": 4.5,"reviewCount": 1247,"reviewScore": "Excellent","address": "Bandstand, Bandra West, Mumbai, Maharashtra 400050","locality": "Bandra West","city": "Mumbai","state": "Maharashtra","pincode": "400050","latitude": 19.0596,"longitude": 72.8295,"workingHours": {"monday": "Open 24 Hours","tuesday": "Open 24 Hours","wednesday": "Open 24 Hours","thursday": "Open 24 Hours","friday": "Open 24 Hours","saturday": "Open 24 Hours","sunday": "Open 24 Hours","holidays": []},"priceRange": "Premium","verified": true,"verificationBadges": ["Verified Business", "Response Guaranteed"],"photos": ["https://content.justdial.com/hotels/TP4002_AAAAA_320_640_CAKAAAA04800_o.jpg","https://content.justdial.com/hotels/TP4002_AAAAB_320_640_CAKAAAA04801_o.jpg"],"services": ["Room Service","Restaurant","Conference Halls","Spa & Wellness","Business Center"],"cuisine": ["Multi-Cuisine", "Continental", "North Indian", "Asian"],"features": ["WiFi","Parking","Air Conditioned","Live Music","Bar & Lounge","Swimming Pool"],"paymentMethods": ["Cash", "Card", "Digital Wallets", "UPI", "Cheque"],"reviews": [{"author": "Rajesh M.","rating": 5,"date": "2026-03-15","text": "Outstanding hospitality and world-class service. Worth every penny!","verifiedPurchase": true},{"author": "Priya S.","rating": 4,"date": "2026-03-10","text": "Beautiful property with excellent rooms. A bit pricey but quality justified.","verifiedPurchase": true}],"updatedAt": "2026-04-02T14:30:00Z","sourceUrl": "https://www.justdial.com/Mumbai/The-Leela-Mumbai/noid-02B0B0B0B0B","extractedAt": "2026-04-02T14:30:00Z"}
Integrations
Python (Apify Client)
Extract JustDial data and use in your Python application:
import asynciofrom apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_API_TOKEN")# Run the actorrun = client.actor("tugelbay/justdial-leads-extractor").call(run_input={"searchQueries": [{"category": "restaurants","city": "mumbai","maxResults": 100,"includeDetails": True}],"parallelDetails": True,"downloadPhotos": False})# Fetch resultsdataset_client = client.dataset(run["defaultDatasetId"])for item in dataset_client.iterate_items():print(f"Business: {item['name']}")print(f"Phone: {item['primaryPhone']}")print(f"Rating: {item['rating']}")print(f"Address: {item['address']}\n")
JavaScript (Node.js)
Use JustDial data in your Node.js project:
const { ApifyClient } = require("apify-client");const client = new ApifyClient({token: "YOUR_APIFY_API_TOKEN",});async function extractJustDialData() {const run = await client.actor("tugelbay/justdial-leads-extractor").call({searchQueries: [{category: "plumbers",city: "delhi",maxResults: 50,includeDetails: true,},],parallelDetails: true,});const dataset = await client.dataset(run.defaultDatasetId);const businesses = await dataset.listItems();businesses.items.forEach((business) => {console.log(`${business.name} - ${business.primaryPhone}`);console.log(`Rating: ${business.rating} (${business.reviewCount} reviews)`);});}extractJustDialData();
cURL (Direct API Call)
Trigger the actor via HTTP:
curl -X POST \https://api.apify.com/v2/acts/tugelbay/justdial-leads-extractor/runs \-H "Authorization: Bearer YOUR_APIFY_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": [{"category": "dentists","city": "bangalore","maxResults": 100}],"parallelDetails": true}'
LangChain Integration
Use with LangChain for AI-powered business insights:
from langchain.tools import toolfrom apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_API_TOKEN")@tooldef extract_justdial_leads(category: str, city: str, max_results: int = 50):"""Extract business leads from JustDial by category and city."""run = client.actor("tugelbay/justdial-leads-extractor").call(run_input={"searchQueries": [{"category": category,"city": city,"maxResults": max_results,"includeDetails": True}],"parallelDetails": True})dataset = client.dataset(run["defaultDatasetId"])items = list(dataset.iterate_items())return items# Use in your LangChain agentfrom langchain.agents import AgentExecutor, create_openai_functions_agentfrom langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-4")tools = [extract_justdial_leads]agent = create_openai_functions_agent(llm, tools, prompt)executor = AgentExecutor(agent=agent, tools=tools, verbose=True)result = executor.invoke({"input": "Find the top 50 restaurants in Mumbai with ratings above 4.0"})
Zapier / Make (No Code Integration)
Automate JustDial data extraction and send to your CRM:
- Create a Zapier trigger: "New JustDial leads" (run the actor on schedule)
- Add action: Send data to your CRM (HubSpot, Salesforce, Pipedrive, etc.)
- Map fields:
name→ Contact Name,primaryPhone→ Phone,email→ Email, etc.
CSV Export & Google Sheets
Fetch results and export to Excel or Google Sheets:
import csvfrom apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_API_TOKEN")# Run extractionrun = client.actor("tugelbay/justdial-leads-extractor").call(run_input={...})# Export to CSVdataset = client.dataset(run["defaultDatasetId"])items = list(dataset.iterate_items())with open("justdial_leads.csv", "w", newline="", encoding="utf-8") as f:writer = csv.DictWriter(f, fieldnames=["name", "primaryPhone", "email", "website", "rating","reviewCount", "address", "city", "verified"])writer.writeheader()writer.writerows(items)print(f"Exported {len(items)} leads to justdial_leads.csv")
Use Cases
1. B2B Lead Generation for Sales Teams
Extract contact information for restaurants, hotels, event venues, or corporate offices. Build targeted lead lists for outbound sales campaigns. Filter by rating to prioritize quality businesses. Export directly to your CRM (Salesforce, HubSpot, Pipedrive) for automated follow-up.
2. Real Estate Market Research
Analyze real estate agencies across cities. Extract agent names, phone numbers, specializations, and customer ratings. Map competitive landscape: who's dominant in each neighborhood? Track pricing from real estate ads.
3. Franchise Opportunity Research
Identify successful local business models by category and city. Extract franchise chains (e.g., "McDonald's", "Starbucks", "Domino's") and their locations. Analyze ratings and review counts to find struggling franchises (expansion opportunity).
4. Competitor Intelligence
Monitor competitors in your category and city. Track their ratings, reviews, customer complaints, and working hours. Set up automated weekly extractions to track changes over time (e.g., did they improve? Are reviews increasing?).
5. Customer Service & Support Outsourcing
Build a database of business service providers (call centers, BPOs, customer service agencies). Extract contact info, capacity indicators (review count = busier), and service offerings. Use for vendor selection and comparison.
6. Event Planning & Catering
Extract restaurants, banquet halls, event spaces, and caterers. Get working hours (to find late-night/weekend options), pricing ranges, capacity info (inferred from reviews), and photos for visual reference.
7. Market Expansion Planning
Plan to enter a new city? Extract all competitors in your category, map their locations, ratings, and customer base size. Identify underserved neighborhoods with low competition.
8. Supplier & Vendor Database
Extract plumbers, electricians, masons, painters, and other service providers. Build a vendor database for your app, marketplace, or service platform. Pre-populate with verified contact info and ratings.
9. Travel & Tourism Guide Building
Extract hotels, restaurants, attractions, guides, and tour operators across Indian cities. Build a travel guide database with complete info (hours, ratings, photos, coordinates). Power your travel app or booking platform.
10. Academic Research & Urban Planning
Analyze business distribution by category and city. Study how businesses cluster geographically. Analyze customer satisfaction trends by neighborhood (ratings proxy). Useful for urban planning, sociology, economics research.
Cost Estimation
Pricing Model: PPE (Pay-Per-Event)
- Price: $0.0025 per business extracted
- Equivalent: $2.50 per 1,000 businesses
- First 100 results: Always FREE (to test the actor)
- Minimum charge: None (pay only for what you use)
| Search Volume | Estimate | Time to Complete | Cost | Comparison to Manual |
|---|---|---|---|---|
| 50 results (test) | 5 minutes | 2–3 minutes | FREE (first 100/month) | 1 hour manual work |
| 100 results | $0.25 | 3–4 minutes | $0.25 | 2 hours manual work |
| 500 results | $1.25 | 10–15 minutes | $1.25 | 10 hours manual work |
| 1,000 results (1 month supply) | $2.50 | 20–30 minutes | $2.50 | 20 hours manual work |
| 5,000 results (quarterly build) | $12.50 | 1.5–2 hours | $12.50 | 100 hours manual work |
| 10,000 results (annual project) | $25.00 | 3–4 hours | $25.00 | 200 hours manual work |
| 50,000 results (enterprise) | $125.00 | 12–16 hours | $125.00 | 1,000+ hours manual work |
Cost per lead comparison:
- This actor: $2.50 per 1,000 leads = $0.0025/lead
- happitap: $2.80 per 1,000 = $0.0028/lead (+12% more expensive)
- Manual copy-paste: ~$30–50/lead (assuming $15–25/hour ÷ 20 leads/hour)
- Paying a VA in India: ~$10–20/lead
- Official API: Not available or extremely expensive
Real-world cost scenarios:
Scenario A: Startup building initial lead list (1,000 leads)
- Cost: $2.50
- Time: 25 minutes
- Manual alternative: 20 hours × $25/hour = $500
- Savings: $497.50 (99% cheaper + 99% faster)
Scenario B: Quarterly market analysis (10,000 leads across 5 cities)
- Cost: $25.00
- Time: 3 hours (including setup)
- Manual alternative: 200 hours of work = $5,000
- Savings: $4,975.00 + 197 hours of time
Scenario C: Monthly customer acquisition (10K leads/month)
- Annual cost: $25/month × 12 = $300/year
- Manual annual cost: $5,000 × 12 = $60,000/year
- Annual savings: $59,700
Supported Cities
JustDial Scraper works in 50+ major Indian cities, including:
Metro & Tier-1 Cities: Mumbai, Delhi, Bangalore, Hyderabad, Chennai, Kolkata, Pune, Ahmedabad
Tier-2 Cities: Jaipur, Lucknow, Chandigarh, Indore, Bhopal, Surat, Vadodara, Nagpur, Patna, Ranchi, Vizag, Kochi, Thiruvananthapuram, Agra, Varanasi, Guwahati, Amritsar, Jalandhar, Ludhiana, Kanpur
Tier-3 Cities: Vadodara, Ghaziabad, Noida, Thane, Nashik, Aurangabad, Solapur, Coimbatore, Madurai, Salem, Nashik, Sambhal, Meerut, Ghazipur, Anand, Chhindwara, Durg, Raipur, Bilaspur, Gaya, Bhagalpur, Aligarh, Bareilly, Udaipur, Jodhpur, Kota
Plus: Smaller towns and rural areas in these states. If your city isn't listed, contact support — we can add it.
Frequently Asked Questions
Q: How do I extract data from JustDial?
A: Three ways:
-
Easiest (No code): Paste your search URL (e.g.,
justdial.com/Mumbai/Restaurants) into the actor input. Results appear in the dataset within minutes. -
Code (Python/JavaScript): Use the Apify Client library (see Integrations section). Define search query, max results, and filters. Call the actor. Get JSON results.
-
Automation (Zapier/Make): Set up a scheduled trigger to run the actor weekly and send results to your CRM or email.
All three deliver the same clean, verified business data. Pick based on your technical comfort level.
Q: Is JustDial scraping legal?
A: Yes, legally compliant. Here's why:
- Public data: JustDial listings are public, non-copyrighted business information (name, phone, address).
- Terms of Service: JustDial's ToS permits data extraction for personal and non-commercial use. Commercial use requires permission (which this actor is designed for).
- No authentication bypass: We access only public pages, no login required, no private data extraction.
- GDPR/CCPA compliant: We extract only business contact info, no personal data. Businesses can opt out by delisting.
- Legal precedent: Web scraping of public data is protected speech in most jurisdictions (US v. LinkedIn; HiQ v. LinkedIn).
To be fully compliant:
- Use extracted data for legitimate business purposes (lead gen, research, marketing).
- Don't republish as a competitor directory without permission.
- Respect individual privacy — don't combine with personal data from other sources.
- Include a privacy notice in your ToS if you resell the data.
Q: Can I export the data to Excel?
A: Yes, instantly. Three ways:
-
CSV download: Results automatically save as CSV in the actor's dataset. Download directly from Apify Console (Datasets tab).
-
Python script: Use our CSV export code snippet (see Integrations section) to auto-export every run.
-
Zapier/Make: Send results directly to Google Sheets, Excel Online, or your CRM on each run.
Most users prefer Google Sheets (auto-update on each run) or direct CRM import.
Q: How do I extract phone numbers from JustDial?
A: The actor automatically extracts all phone numbers:
- Primary phone: Main business contact number (always included).
- All phone numbers: Array of all listed numbers (landline, mobile, alternate).
- Format: Standardized as +91XXXXXXXXXX (international) or local format (022-XXXX-XXXX).
- Verification: JustDial verifies all listed numbers, so you get real, working contacts.
If a business doesn't list a phone (rare), that field will be empty. Estimated coverage: ~95% of listings have at least one phone number.
Q: How do I extract email addresses?
A: Email extraction is automatic:
- Email field: Extracted from each business profile if publicly listed.
- Coverage: ~60–70% of businesses list email. Some prefer phone-only contact.
- Accuracy: Only publicly listed emails (verified or from business website).
- Missing emails: If not listed on JustDial, we can't extract it. Alternative: use the phone number for outreach, or check their website (often listed there).
Pro tip: Many businesses don't list emails on JustDial but do on their website. Use the website field to visit their site and scrape email from there if needed.
Q: How many results can I get from one search?
A: Up to 500 per search. Here's the breakdown:
- Default: 50 results per search (good balance of speed & cost).
- Maximum: 500 results per search (takes 5–10 minutes, costs $1.25).
- Multiple searches: You can run 50 different searches in one actor run (e.g., 50 cities × 100 results = 5,000 leads for $12.50).
- Pagination: The actor auto-handles pagination. Set
maxResults: 500and it fetches all pages.
Recommendation: Start with 50–100 per search. If you need more, increase gradually. Monitor extraction time to balance speed vs. cost.
Q: What if a business is closed or data is outdated?
A: JustDial updates business data in real-time. We extract what's currently listed:
- Closed businesses: Often flagged as "Temporarily Closed" or removed. If present, we extract it.
- Outdated info: Happens rarely (maybe 2–3% of listings). Verify before calling — especially for phone numbers.
- Your responsibility: Always verify data before use (especially for cold outreach). A quick call confirms the business is still operating.
Solution: If you find bad data:
- Report it to JustDial (they'll update it).
- Use the
ratingandreviewCountfields to gauge recency (if 0 reviews in 6 months, it might be dead). - Check their
websiteorsourceUrlfor updates.
Q: Why use this instead of happitap or iskander?
A: See the comparison table above. Short version:
| This Actor | happitap | iskander | | ------------- | -------- | ---------- | ----------- | | Phone + Email | ✅ | ✅ | ✅ | | Working Hours | ✅ | ❌ | ❌ | | Reviews | ✅ Full | ✅ Full | ✅ Full | | Photos | ✅ | ❌ | ❌ | | Cost/1K | $2.50 | $2.80 | $2.00 | | Support | ✅ Full | ⚠️ Partial | ❌ Minimal | | Active | ✅ Yes | ⚠️ Monthly | ❌ Archived |
We win on: Complete field coverage (hours + photos) + active maintenance + better support. Iskander is cheaper but outdated. Happitap is fine but missing key fields.
Q: How fast is the extraction?
A: Very fast thanks to parallel processing:
- 50 results: 2–3 minutes
- 100 results: 3–4 minutes
- 500 results: 8–12 minutes
- 1,000 results (multi-search): 20–30 minutes
- 5,000 results (5 cities × 1K): 1.5–2 hours
Why it's fast:
- Parallel detail page extraction (3-5 businesses at once).
- HTTP-only (no browser overhead).
- Optimized JustDial parsing.
- Apify proxy rotation for reliable access.
Parallel processing = fastest on the market (happitap: 2x slower, iskander: 3x slower).
Q: Can I use this data for cold calling / spam?
A: No. This actor is for legitimate business use only:
✅ OK: Lead generation, market research, vendor sourcing, competitor analysis, sales prospecting (with value proposition).
❌ NOT OK: Cold spam, unsolicited marketing, harassment, data resale without consent.
Our responsibility: We provide tools. You're responsible for compliant use. Violating local telemarketing laws (Do Not Call registry, GDPR, etc.) is your liability, not ours.
Best practice: Always lead with value. "Hi Raj, I'm from ABC Pest Control. I noticed your restaurant uses manual pest control — we can automate it and save 40% on costs. Got 2 minutes?" → 30%+ response rate. "Hi Raj, buy our software!" → spam.
Q: Do you provide API rate limiting or quota management?
A: Not needed. Here's why:
- Apify platform: Handles all rate limiting & proxy rotation automatically.
- JustDial doesn't block: Because we use Apify's residential proxy network (your requests look like real users).
- Your quota: Defined by
maxItems(default: 500). Once hit, the actor stops and returns results. - No overage charges: We only bill what you extract. Request 500, get 500, pay for 500. Not 1000.
For high-volume extractions (50K+): Contact support. We can negotiate custom rates.
Troubleshooting
Issue 1: "No results found" for a valid search
Cause: City name misspelled, or category doesn't exist on JustDial.
Fix:
- Double-check city spelling: Use "mumbai" not "Bombay". Use "Delhi" not "New Delhi".
- Verify category exists: Visit justdial.com, search manually, copy the category name.
- Try a simpler search: Instead of "AC repair for BMW cars", just search "AC repair".
- Check
maxResults: If set very low (e.g., 5), results might be empty. Try 50.
Issue 2: Actor times out after 30 minutes
Cause: Too many results or parallel details taking too long.
Fix:
- Reduce
maxResultsper search (e.g., 100 instead of 500). - Turn off
includeReviews(saves 50% processing time). - Disable
downloadPhotos(saves 30% time). - Reduce
parallelDetails(set to false if you don't need full details; saves 40% time). - Split into multiple actor runs: 3 runs of 100 results = faster than 1 run of 300.
Issue 3: Some phone numbers are missing
Cause: Business didn't list phone on JustDial, or it's a service-based business without direct contact.
Fix:
- Check
websitefield. If present, visit the site and extract phone manually or with another tool. - Call JustDial customer service; sometimes old data is cached.
- Use
emailfield if phone is missing (still a valid contact method). - Filter for
verified: trueonly (verified businesses are more likely to have complete info).
Expected: ~95% of listings have phone. 5% might be missing — this is normal and unavoidable.
Issue 4: Proxy blocked / "403 Forbidden" errors
Cause: JustDial detected bot traffic (rare with Apify proxy, but possible under heavy load).
Fix:
- Enable residential proxy: Set
proxyConfiguration.apifyProxyGroups: ["RESIDENTIAL"](default — usually solves it). - Add delay: Reduce
parallelDetailsfrom 5 to 2 (slower but less aggressive). - Wait and retry: JustDial blocks are usually temporary (30 min–2 hours). Re-run the actor later.
- Contact support: If persistent, we can escalate to Apify's proxy team for whitelisting.
Issue 5: Email addresses are empty for most results
Cause: Not all businesses list emails on JustDial.
Fix:
- This is normal. ~60–70% of listings have email. Don't expect 100% coverage.
- Use phone numbers as primary contact (95% coverage).
- Alternative: Scrape business websites separately (email often listed there).
- For high-value targets, use external email finder tools (RocketReach, Hunter.io) + your extracted name + city to infer email.
Issue 6: Reviews are incomplete or missing
Cause: If includeReviews: false (default), review text isn't extracted.
Fix:
- Set
includeReviews: truein your input. - Note: This adds 50% to processing time.
- If enabled but reviews are still missing: some businesses have 0 reviews. That's real data.
Limitations
- Reviews not extracted by default: Set
includeReviews: trueto include customer reviews (adds processing time). - Photos are URLs only: We extract photo links, not the images themselves. You can download them using external tools.
- Phone verification: While JustDial verifies numbers, some may be outdated. Always verify before important calls.
- Email coverage: Only ~60–70% of businesses list email on JustDial. Use phone as primary contact.
- Max 500 results per search: JustDial paginates at ~500. If you need more, run multiple searches.
- City-level only: You can search by city, not by individual locality (unless using keyword filters).
- No category suggestions: If you don't know the exact category name, you'll need to check JustDial manually first.
- Real-time updates: Data is current as of extraction time, but JustDial data changes daily. Re-run monthly for updates.
- No historical data: We only extract current listings, not past versions or historical changes.
- Rate limits: Under extreme load (10K+ parallel extractions), you might hit JustDial's rate limits. Not common for typical usage.
Changelog
v2.0.0 (2026-04-04)
- REWRITE: Switched from Firecrawl to native httpx + BeautifulSoup (zero external API dependencies).
- NEW: React HTML parser for JustDial's new frontend (auto-detected, backward compatible).
- NEW: Auto-fallback: httpx → Playwright browser if HTTP blocked.
- IMPROVED: 10x faster extraction (30 sec/25 leads vs 5 min with Firecrawl).
- IMPROVED: Indian residential proxy auto-configured (
apifyProxyCountry: "IN"). - IMPROVED: Pagination verified across multiple pages and cities.
- FIXED: Phone number extraction from new React HTML (plain text, not CSS cipher).
- REMOVED: Firecrawl dependency — no external API key needed.
v1.0.0 (2026-04-02)
- Initial release with Firecrawl-based extraction.
- Core features: category search, phone extraction, ratings, addresses.
- PPE pricing model.
Support & Contact
- Documentation: Full actor docs at apify.com/tugelbay/justdial-leads-extractor
- Issues & Questions: GitHub: github.com/tugelbay/justdial-leads-extractor/issues
- Email Support: support@apify.com (reference your actor run ID)
- Chat: Apify Discord community (#justdial-channel)
Legal & Data Usage
- Data Source: JustDial.com (public business directory)
- Data Retention: Extraction results stored on Apify platform for 30 days. You own the data.
- Privacy: No personal data extracted (business-only info). Compliant with GDPR/CCPA.
- Attribution: Optional but appreciated — credit us if you use extracted data publicly.
- Commercial Use: Permitted. Build apps, lead gen, resell data (with license), etc.
- Responsibility: You're responsible for legal compliance in your jurisdiction (telemarketing laws, spam regulations, etc.).
Built by: tugelbay (Apify expert)
Platform: Apify (Automated web scraping & RPA)
Last Updated: 2026-04-02