DuckDuckGo Local Places Scraper
Pricing
Pay per event
DuckDuckGo Local Places Scraper
Extract DuckDuckGo local business results with names, addresses, phones, websites, ratings, coordinates, provider links, and query ranks.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape DuckDuckGo local places results for business names, categories, addresses, phones, websites, ratings, coordinates, and search metadata.
What does DuckDuckGo Local Places Scraper do?
DuckDuckGo Local Places Scraper turns DuckDuckGo local search pages into a clean dataset of business/place records.
It accepts search phrases such as dentists near Austin, coffee shops near Seattle, or plumbers in London.
For every returned local place, it saves contact and location details that are useful for lead generation, local SEO, market research, and enrichment workflows.
Who is it for?
- 🧭 Local lead generation agencies building prospect lists.
- 📍 SEO teams comparing local visibility across cities.
- 🧪 Market researchers checking business density by category.
- 🧰 Sales teams looking for websites, phones, and addresses.
- 🏢 Operations teams validating local branch data.
Why use this actor?
DuckDuckGo aggregates local data from public providers and exposes useful business facts without requiring a user login.
This actor focuses on the local places vertical instead of general web results.
It is a lightweight HTTP actor, so runs are fast and inexpensive compared with browser-based scraping.
What data can you extract?
| Field | Description |
|---|---|
| query | Search phrase used for the result |
| rank | Result position for that query |
| name | Business or place name |
| category | DuckDuckGo category when available |
| address | Full address |
| phone | Normalized phone number |
| displayPhone | Human-readable phone |
| website | Business website |
| sourceUrl | Provider listing URL, often Yelp |
| rating | Rating value |
| reviewCount | Review count |
| latitude / longitude | Coordinates |
| hours | Opening-hours object |
| imageUrl | Place image URL |
| sourceEngine | Source shown by DuckDuckGo |
| scrapedAt | Timestamp |
How much does it cost to scrape DuckDuckGo local places?
The actor uses pay-per-event pricing: a small start charge per run plus a per-place charge for each saved result.
| Charge | Free tier | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
| Run start | $0.005 | $0.005 | $0.005 | $0.005 | $0.005 | $0.005 |
| Saved place | $0.000207 | $0.000180 | $0.0001404 | $0.000108 | $0.000072 | $0.0000504 |
Example costs on the Free tier:
- 20 saved places: about $0.0091 (
$0.005start + 20 ×$0.000207). - 50 saved places: about $0.0154.
- 100 saved places: about $0.0257.
For the first test run, keep the default two queries and 20 places per query. You only pay per saved result, so a query with fewer available DuckDuckGo local places costs less.
Input
The main input is queries.
Use natural DuckDuckGo local phrases.
Good examples:
dentists near Austincoffee shops near Seattleroofers in Phoenixvegan restaurants in Berlinhotels near Prague old town
Input options
| Option | Type | Default | Notes |
|---|---|---|---|
| queries | array | required | Local search phrases |
| maxResultsPerQuery | integer | 20 | DuckDuckGo commonly returns about 20 places |
| region | string | us-en | DuckDuckGo locale hint |
| requestDelayMs | integer | 750 | Polite delay between queries |
Output example
{"query": "dentists near Austin","rank": 1,"name": "Northland Dental Studio","category": "General dentistry","address": "3307 Northland Dr, Ste 230, Austin, TX 78731","phone": "+15123882220","displayPhone": "+1 512 388 2220","website": "https://www.northlanddentalstudio.com","sourceUrl": "https://www.yelp.com/biz/northland-dental-studio-austin-2","rating": 5,"reviewCount": 62,"latitude": 30.3347952,"longitude": -97.7575592,"sourceEngine": "Yelp","scrapedAt": "2026-05-30T00:00:00.000Z"}
How to run
- Open the actor on Apify.
- Add one or more local search queries.
- Keep the default result limit for a quick first run.
- Start the actor.
- Download results as JSON, CSV, Excel, or via API.
Tips for better results
- Include both category and location in each query.
- Use city names, neighborhoods, or landmarks.
- Use multiple queries for larger lead lists.
- Keep phrases concise.
- Compare related terms such as
dentists,orthodontists, anddental clinic.
Integrations
Use the dataset with:
- CRM enrichment workflows.
- Local SEO dashboards.
- Google Sheets exports.
- Data warehouses.
- Apify webhooks.
- Clay, Make, Zapier, or n8n automations.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/duckduckgo-local-places-scraper').call({queries: ['dentists near Austin'],maxResultsPerQuery: 20});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/duckduckgo-local-places-scraper').call(run_input={'queries': ['coffee shops near Seattle'],'maxResultsPerQuery': 20,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~duckduckgo-local-places-scraper/runs?token=MY-APIFY-TOKEN' \-H 'Content-Type: application/json' \-d '{"queries":["plumbers in Phoenix"],"maxResultsPerQuery":20}'
MCP usage
Use Apify MCP with Claude Desktop or Claude Code.
MCP URL:
https://mcp.apify.com/?tools=automation-lab/duckduckgo-local-places-scraper
Claude Code setup:
$claude mcp add apify-duckduckgo-local --transport http https://mcp.apify.com/?tools=automation-lab/duckduckgo-local-places-scraper
Claude Desktop JSON config:
{"mcpServers": {"apify-duckduckgo-local": {"url": "https://mcp.apify.com/?tools=automation-lab/duckduckgo-local-places-scraper"}}}
Example prompts:
- "Run the DuckDuckGo Local Places Scraper for dentists near Austin."
- "Find coffee shops near Seattle and summarize which have websites."
- "Export local roofers in Phoenix to a CSV-ready table."
Legality
This actor collects publicly available local-search data.
You are responsible for using the data in compliance with applicable privacy, marketing, and database laws.
Do not use scraped contact data for unlawful spam or prohibited outreach.
Limitations
DuckDuckGo may return fewer than the requested maximum.
DuckDuckGo local results are not available for every query or country.
Some records may miss websites, phones, ratings, or coordinates depending on upstream data.
FAQ
Why did I get no results?
Try a more explicit local query such as dentists near Austin instead of just dentists.
Why are there only about 20 results per query?
DuckDuckGo's local endpoint commonly exposes a compact set of local places. Use multiple queries or locations for larger coverage.
Why is a website missing?
DuckDuckGo may know the provider listing but not the business website for every place.
Related scrapers
- https://apify.com/automation-lab/google-maps-scraper
- https://apify.com/automation-lab/google-search-scraper
- https://apify.com/automation-lab/bing-search-scraper
- https://apify.com/automation-lab/yelp-scraper
Changelog
Initial version extracts DuckDuckGo local place records from the public local endpoint.
Data quality notes
The actor keeps provider IDs when DuckDuckGo exposes them.
It keeps the original provider URL separately from the business website.
It stores coordinates as numbers for easier map usage.
It stores hours as an object because the available day keys can vary.
Performance
The actor uses HTTP requests, not a browser.
Default memory is 256 MB.
The default delay is conservative for polite repeated queries.
Best practices
Start with 2-5 queries.
Review a sample dataset before scaling up.
Use exact locations when possible.
Deduplicate downstream by website, phone, or provider ID.
Example query sets
dentists near Austinorthodontists near Austinemergency dentist Austincoffee shops near Seattlecoffee roasters Seattleplumbers in Phoenixroofers in Phoenixvegan restaurants Berlin
Support
If a query returns fewer results than expected, include the exact input when requesting support.
This helps reproduce the source response and separate actor issues from DuckDuckGo coverage limits.
Summary
DuckDuckGo Local Places Scraper is a focused local-business extraction tool for teams that need alternative local search data.
It is designed to be simple, fast, and API-friendly.
Use it when you need business names, contact fields, source links, ratings, and coordinates from DuckDuckGo local results.