JustDial Scraper & Leads Extractor — Phones, Reviews avatar

JustDial Scraper & Leads Extractor — Phones, Reviews

Pricing

Pay per usage

Go to Apify Store
JustDial Scraper & Leads Extractor — Phones, Reviews

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

Tugelbay Konabayev

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

6 hours ago

Last modified

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 FactorJustDial Scraper (This)happitapiskander botcodingfrontendManual Copy-PasteChrome ExtensionOfficial API
Cost per 1,000 results$2.50 (PPE)$2.80$2.00$5–10Free (but 40+ hours/month)Free (limited)$$$$ per month
Setup time2 minutes5 minutes10 minutes30 minutesOngoingInstantDays (approval needed)
Data freshnessReal-timeDailyWeeklyMonthlyManualManualNot public
Number of fields extracted20+12108VariableLimitedLimited
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 formatsJSON, CSV, APIJSON onlyCSV onlyJSONCopy-pasteManualJSON 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 baseGrowing454 users88 usersUnknownN/AUnknownInternal
Parallel detail pages✅ Yes (3-5x faster)⚠️ Limited❌ No⚠️ Sometimes❌ No❌ NoN/A
Error recovery✅ Auto-retry⚠️ Manual retry⚠️ Often fails⚠️ UnreliableN/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

{
"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

ParameterTypeDefaultRequiredDescription
searchQueriesArray[Object][]✅ YesArray of search objects. Each object contains category/keyword and location details. Min 1, max 50 per run.
searchQueries[].categoryString⚠️ ConditionalJustDial category slug (e.g., "restaurants", "plumbers", "dentists", "hotels"). Required if keyword not provided.
searchQueries[].keywordString⚠️ ConditionalCustom search keyword (e.g., "AC repair", "yoga classes"). Required if category not provided.
searchQueries[].cityString✅ YesCity name (e.g., "mumbai", "delhi", "bangalore"). Case-insensitive.
searchQueries[].maxResultsInteger50❌ NoMax results per search (1–500). Higher = slower but more data. Default safe value: 50. Recommended: 100–200 for cost efficiency.
searchQueries[].minRatingFloat0❌ NoFilter: minimum star rating (0.0–5.0). Example: 4.0 returns only 4+ star businesses.
searchQueries[].priceRangeString❌ NoFilter: "budget", "moderate", "expensive", "premium". Case-insensitive.
searchQueries[].includeDetailsBooleantrue❌ NoFetch full business details (working hours, photos, reviews). Slower but complete data. Set to false for quick search-only results.
searchQueries[].includeReviewsBooleanfalse❌ NoExtract individual reviews and review text. Adds 50% to processing time.
proxyConfigurationObject{ useApifyProxy: true }❌ NoProxy settings. Recommended: Apify Residential proxy for reliability.
proxyConfiguration.useApifyProxyBooleantrue❌ NoUse Apify's built-in proxy. Recommended for most users.
proxyConfiguration.apifyProxyGroupsArray[String]["RESIDENTIAL"]❌ NoProxy group. Use "RESIDENTIAL" (recommended, ~0.5x cost multiplier) or "DATACENTER" (faster, less reliable).
parallelDetailsBooleantrue❌ NoExtract detail pages in parallel (3-5x faster). Costs more compute time but finishes faster.
downloadPhotosBooleanfalse❌ NoDownload and extract all business photos. Adds 30% to processing time and increases output size.
extractWorkingHoursBooleantrue❌ NoInclude working hours, holidays, and service availability.
retryFailedPagesBooleantrue❌ NoAutomatically retry failed pages up to 3 times. Improves success rate by ~15%.
maxItemsInteger500❌ NoHard limit on total results across all searches (Apify platform limit).

Output Format

Every extracted business record includes these fields:

FieldTypeDescriptionExample
idStringJustDial business ID (unique identifier). Used for tracking and deduplication."restaurant-mumbai-12345"
nameStringOfficial business name as listed on JustDial."The Leela Mumbai"
categoryStringPrimary category assigned on JustDial."5-Star Hotel"
primaryPhoneStringMain contact phone number (verified by JustDial). Format: +91XXXXXXXXXX or local format."+919876543210" or "022-1234-5678"
phoneNumbersArray[String]All phone numbers listed (primary + alternate). Empty if not available.["+919876543210", "022-1234-5678", "+919876543211"]
emailStringOfficial business email address. Empty if not publicly listed."info@leela.com"
websiteStringBusiness website URL if listed. Empty if not available."https://www.leelahospitality.com"
ratingFloatAverage star rating (0–5.0). Null if no reviews yet.4.5
reviewCountIntegerNumber of verified customer reviews on JustDial.1247
reviewScoreStringQualitative rating (e.g., "Excellent", "Good", "Average")."Excellent"
addressStringComplete business address."Sahar, Andheri East, Mumbai 400069"
localityStringArea/neighborhood/locality name."Andheri East"
cityStringCity name."Mumbai"
stateStringState/Province name."Maharashtra"
pincodeStringPostal code/ZIP."400069"
latitudeFloatGeographic latitude (for mapping).19.1136
longitudeFloatGeographic longitude (for mapping).72.8569
workingHoursObjectBusiness operating hours by day of week. See below for structure.{ "monday": "10:00 AM–11:00 PM", "closed": ["sunday"] }
priceRangeStringPrice segment: "Budget", "Moderate", "Expensive", "Premium"."Premium"
verifiedBooleanWhether JustDial verification badge is active.true
verificationBadgesArray[String]List of special badges (e.g., "Verified Business", "Response Guaranteed").["Verified Business", "Response Guaranteed"]
photosArray[String]URLs of business photos from JustDial gallery.["https://example.com/photo1.jpg", "https://example.com/photo2.jpg"]
businessHoursArray[Object]Detailed hours by day. See below for structure.(see below)
servicesArray[String]Services offered (from business profile).["Dine-in", "Room Service", "Conference Halls"]
cuisineArray[String]For restaurants: cuisine types.["North Indian", "Chinese", "Seafood"]
featuresArray[String]Special features/amenities.["WiFi", "Parking", "AC", "Live Music"]
paymentMethodsArray[String]Accepted payment methods.["Cash", "Card", "Digital Wallets", "UPI"]
reviewsArray[Object]Customer review snippets (if includeReviews: true).(see below)
updatedAtStringISO 8601 timestamp of when data was last extracted."2026-04-02T14:30:00Z"
sourceUrlStringDirect link to this business on JustDial."https://www.justdial.com/Mumbai/The-Leela-Mumbai/noid-xyz"
extractedAtStringISO 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 asyncio
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
# Run the actor
run = client.actor("tugelbay/justdial-leads-extractor").call(
run_input={
"searchQueries": [
{
"category": "restaurants",
"city": "mumbai",
"maxResults": 100,
"includeDetails": True
}
],
"parallelDetails": True,
"downloadPhotos": False
}
)
# Fetch results
dataset_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 tool
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
@tool
def 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 agent
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain_openai import ChatOpenAI
llm = 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:

  1. Create a Zapier trigger: "New JustDial leads" (run the actor on schedule)
  2. Add action: Send data to your CRM (HubSpot, Salesforce, Pipedrive, etc.)
  3. Map fields: name → Contact Name, primaryPhone → Phone, email → Email, etc.

CSV Export & Google Sheets

Fetch results and export to Excel or Google Sheets:

import csv
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
# Run extraction
run = client.actor("tugelbay/justdial-leads-extractor").call(run_input={...})
# Export to CSV
dataset = 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 VolumeEstimateTime to CompleteCostComparison to Manual
50 results (test)5 minutes2–3 minutesFREE (first 100/month)1 hour manual work
100 results$0.253–4 minutes$0.252 hours manual work
500 results$1.2510–15 minutes$1.2510 hours manual work
1,000 results (1 month supply)$2.5020–30 minutes$2.5020 hours manual work
5,000 results (quarterly build)$12.501.5–2 hours$12.50100 hours manual work
10,000 results (annual project)$25.003–4 hours$25.00200 hours manual work
50,000 results (enterprise)$125.0012–16 hours$125.001,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:

  1. Easiest (No code): Paste your search URL (e.g., justdial.com/Mumbai/Restaurants) into the actor input. Results appear in the dataset within minutes.

  2. Code (Python/JavaScript): Use the Apify Client library (see Integrations section). Define search query, max results, and filters. Call the actor. Get JSON results.

  3. 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.

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:

  1. CSV download: Results automatically save as CSV in the actor's dataset. Download directly from Apify Console (Datasets tab).

  2. Python script: Use our CSV export code snippet (see Integrations section) to auto-export every run.

  3. 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.

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: 500 and 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:

  1. Report it to JustDial (they'll update it).
  2. Use the rating and reviewCount fields to gauge recency (if 0 reviews in 6 months, it might be dead).
  3. Check their website or sourceUrl for 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

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 maxResults per 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 website field. If present, visit the site and extract phone manually or with another tool.
  • Call JustDial customer service; sometimes old data is cached.
  • Use email field if phone is missing (still a valid contact method).
  • Filter for verified: true only (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 parallelDetails from 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: true in 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: true to 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)

  • 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