Nextdoor Scraper - Public Businesses & Neighborhoods avatar

Nextdoor Scraper - Public Businesses & Neighborhoods

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Nextdoor Scraper - Public Businesses & Neighborhoods

Nextdoor Scraper - Public Businesses & Neighborhoods

Extract public Nextdoor business profiles and neighborhood directories in the US, UK, and Canada, including published phones, emails, websites, and addresses. Pay per delivered row plus a start fee.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

30

Total users

10

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

Nextdoor Scraper

Extract public Nextdoor business and neighborhood data in the United States, United Kingdom, and Canada as rows you can export.

  • Business names, published phones, emails, websites, addresses, and license IDs.
  • City and neighborhood directories, topic catalogs, and limited free-finds data.
  • Batch public URLs or choose a city and business category.
  • Pay $3.00 per 1,000 rows on the Free plan, plus a start fee.

What does Nextdoor Scraper do?

Nextdoor Scraper collects public business profiles and directories for local research, business catalogs, and coverage comparisons. It does not log in, read private feeds, or send messages. This is an unofficial tool, not affiliated with Nextdoor.

  • Business discovery: topics or its alias business-search finds categories; neighborhood finds linked businesses.
  • Profiles: pages reads a business slug; detailUrls accepts several public URLs.
  • Location discovery: city explores a city; find-neighborhood lists cities in a state or region.
  • Catalogs: taxonomy lists topics; cities lists the US city catalog; free-finds returns limited classified identifiers.
  • Organization contacts: about reads Nextdoor's public organization contact pages, not local merchant leads.

enrichDetails is on by default. It adds available business details to discovery results, not a separate set of comment rows. Check kind: a business profile, directory card, neighborhood, or catalog entry each counts as one row.

What data can you extract from Nextdoor?

Fields vary by row type. Missing contact details stay empty; a row is not a promise of a phone number or email.

Common fields

FieldDescriptionExample
idBusiness, topic, classified, or other row identifierbusiness_123
kindRow typepages
nameSource display name, when suppliedExample Business
urlSource page URLhttps://nextdoor.com/pages/example-business/
marketSelected marketus
scrapedAtCollection time in UTC2026-10-24T00:00:00+00:00

Business profiles: pages

FieldDescriptionExample
phonesPublished phone entries[{"value":"+1 555 0100","type":"phone","e164":null}]
emailsPublished email entries[{"value":"name@example.com","type":"email"}]
web.websitePublished websitehttps://example.com
addressStreet and locality, subject to privacy flags{"locality":"Oakland","country":"US"}
licenseIdLicense identifier, when suppliedEXAMPLE-123
openingHoursWeekly operating hours[{"dayOfWeek":"Monday","opens":"09:00","closes":"17:00"}]
claimedClaim indicator: true, false, or unknownnull
hasContactContact presence indicator, not proof of ownershiptrue
hideAddressWhether precise location must be withheldtrue
leadAbsencesReasons fields are missing; messages may be Chinese{}

Directory cards: directory

FieldDescriptionExample
topicRequested categoryplumber
phonesPhone shown on the directory card[]

Linked business cards: pages-card

FieldDescriptionExample
slugPublic business page slug; name may be absentexample-business

Neighborhood rows: neighborhood

FieldDescriptionExample
slugNeighborhood identifierrockridge--oakland--ca
cityCity associated with the neighborhood, when suppliedoakland--ca

City rows: city

FieldDescriptionExample
stateState or regionCA
neighborhoodCountNeighborhood count, when supplied12

Topic rows: topic

FieldDescriptionExample
topicIdsTopic identifiers[123]
namePluralPlural topic label, when suppliedPlumbers
parentIdParent topic identifier10

Free-finds rows: classified

FieldDescriptionExample
legacyClassifiedIdClassified identifier123456
isSoldSource sold flagfalse
neighborhoodOrigin neighborhood reference{"id":"123","city":"Oakland","state":"CA"}

Organization contacts: about

FieldDescriptionExample
emailsPublished organization contact entries, not merchant contacts[{"value":"name@example.com","type":"email"}]

How to scrape Nextdoor

  1. Open Nextdoor Scraper in Apify Console.
  2. Select auto for searchType, then fill a target such as query and a city.
  3. Set maxResults to 3 for a small first run.
  4. Click Start and wait for completion.
  5. Open the dataset and download the rows.

Empty {} starts the Oakland (oakland--ca) example with at most 3 rows and enrichment enabled. It is a billed example, not a free preview. The form also starts with 3 rows. With auto, a target field selects the mode; explicitly chosen catalog modes need no target.

Fill query with a category such as plumber and city with a city slug. Without query, this mode lists the city's topic index rather than businesses. business-search means the same directory, not generic search.

Neighborhood: neighborhood

Fill neighborhood, or select this mode with a city to use its first neighborhood. Keep enrichment enabled for available business profiles; otherwise results may be link cards.

Business profiles: pages

Use pageSlug or paste public /pages/ URLs into detailUrls. Replace the example slug below with an actual page slug. URLs take precedence over other targets even when the selected mode is city.

City discovery: city

Fill city. With enrichDetails: false, get neighborhood identity rows. With the default true, the Actor looks for linked business profiles; it falls back to neighborhood rows if none are collected.

State or region: find-neighborhood

Fill state, for example wa or england, and select the matching market. Results are city rows, not merchant contact lists.

Topic catalog: taxonomy

Select this mode to list topic names and identifiers. No business query is required.

City catalog: cities

Select this mode for the US city catalog. Other markets can return no rows.

Free classifieds: free-finds

Select this mode for public free-finds identifiers and sold flags. Titles, prices, and seller contacts are not available from this mode.

Organization contacts: about

Select this mode for Nextdoor's public organization contacts. These are not customer-support promises or local business leads.

What to fill in

FieldWhat to enterDefault
searchTypeauto or a mode described aboveauto; form prefills city
cityCity slug, such as oakland--caoakland--ca when needed and omitted
stateState or region for find-neighborhoodor when omitted
neighborhoodNeighborhood slugFirst city neighborhood in that mode
pageSlugPublic business page slugEmpty
detailUrlsArray of public Nextdoor /pages/ or /city/ URLsEmpty
queryCategory such as plumber or bakeryEmpty
marketus, gb, ca; fr has limited coverage; au unavailableus
enrichDetailsAdd available business profile detailstrue
maxResultsMaximum rows per input, from 1 to 20070; form prefills 3
maxPagesDirectory pages for topics, from 1 to 501

Auto-selected category directory:

{"query":"plumber","city":"hillsboro--or","maxResults":3}

Topics:

{"searchType":"topics","query":"bakery","city":"oakland--ca","maxResults":3}

Business-search alias:

{"searchType":"business-search","query":"plumber","city":"hillsboro--or","maxResults":3}

Neighborhood:

{"searchType":"neighborhood","city":"ajax--on","market":"ca","maxResults":3}

Business profile:

{"searchType":"pages","pageSlug":"example-business","maxResults":1}

City:

{"searchType":"city","city":"oakland--ca","enrichDetails":false,"maxResults":3}

State index:

{"searchType":"find-neighborhood","state":"wa","maxResults":3}

Topic catalog:

{"searchType":"taxonomy","maxResults":3}

City catalog:

{"searchType":"cities","market":"us","maxResults":3}

Free finds:

{"searchType":"free-finds","market":"us","maxResults":3}

Organization contacts:

{"searchType":"about","maxResults":3}
  • maxItems and limit are aliases of maxResults.
  • Unknown fields alone do not fail input handling: close misspellings can be corrected; other names are ignored with a note.
  • Missing required targets stop collection with an error such as INVALID_INPUT: pageSlug — searchType pages needs pageSlug or detailUrls. No rows are charged; the start fee still applies. Some invalid optional values are ignored or adjusted instead.
  • INPUT_REPORT in the run's key-value store records filled, inferred, corrected, and ignored fields. Incompatible targets use this priority: detailUrls, pageSlug, query, neighborhood, city, state. Compatible pairs, such as category and city, stay together.

Output example

Illustrative profile row; names and contact details below are placeholders, not collected leads.

{
"id": "business_123",
"kind": "pages",
"name": "Example Business",
"slug": "example-business",
"url": "https://nextdoor.com/pages/example-business/",
"market": "us",
"phones": [{"value": "+1 555 0100", "type": "phone", "e164": null}],
"emails": [{"value": "name@example.com", "type": "email"}],
"web": {"website": "https://example.com", "socials": []},
"address": {"street": null, "locality": "Oakland", "region": "CA", "country": "US"},
"claimed": null,
"hasContact": true,
"leadAbsences": {}
}

Export the dataset as JSON, CSV, Excel, XML, RSS, or an HTML table. RUN_SUMMARY records the row count and warnings; ERROR_SUMMARY contains details for handled failures.

Why use this Nextdoor scraper?

  • Pay per delivered row. No row fee for a page that produces no dataset row.
  • Usable partial results. Available partial results can be delivered when collection ends early. Rows already written remain in the dataset; an abrupt stop does not guarantee delivery of unwritten rows.
  • Missing data stays visible. Empty contact fields and leadAbsences help distinguish a directory entry from a contact-rich profile.
  • Several URLs per run. Submit a list through detailUrls rather than starting each URL separately.
  • No account setup on Nextdoor. No Nextdoor login or cookies are required. You do not need to set up proxies.

How much does it cost to scrape Nextdoor?

Pricing is pay-per-event: $0.005 per start event, plus the price per delivered row. Platform usage is included in these prices.

Apify planPrice per rowPrice per 1,000 rows
Free$0.003$3.00
Starter$0.003$3.00
Scale$0.0026$2.60
Business$0.0022$2.20
Platinum$0.002$2.00
Diamond$0.0016$1.60

Start billing uses one event per GB of allocated memory, with a minimum of one. Default memory is 1024 MB, so a normal start costs $0.005.

  • maxResults applies to each detail URL or single search input. Default: 70; larger requests are collected in parts of 70, up to the input limit of 200. All row types count together.
  • The Free Apify plan is capped at 200 rows per run and 10 total runs of this Actor.
  • Maximum cost per run (maxTotalChargeUsd in the API) caps the whole run's charges. Set enough to cover the start and desired rows.

Example: one input delivering 3 rows on the Free plan at 1024 MB costs 3 × $0.003 + $0.005 = $0.014, assuming one start. A run delivering zero rows has no row charge, but still has the start fee.

What happens when the run timeout is too short

A short timeout can trigger an automatic pause rather than a failure. The status message says "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." The run temporarily appears as ABORTED.

When results are ready, the same run resumes and delivers to the same dataset, finishing as SUCCEEDED if collection succeeds. Previously delivered rows are skipped, not delivered or charged twice. Delivery may report "Resumed: delivering N rows." No manual restart is needed for this pause.

  • Automatic pauses are limited to 3 per run. Keep the default timeout of 3600 seconds to reduce the need for them.
  • Synchronous endpoints (run-sync, run-sync-get-dataset-items) wait at most 300 seconds and may return an empty dataset during a pause. For longer runs, start asynchronously and read the dataset after SUCCEEDED, or use a success webhook.

Use with AI agents and the API

Apify MCP server (Claude, ChatGPT, Cursor, VS Code)

Add this remote server to an MCP-capable client:

https://mcp.apify.com?tools=lentic_clockss/nextdoor-scraper

Sign in with Apify using OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; the agent reads rows with get-dataset-items. Ensure that dataset-reading tool is also available in your client.

For clients without remote-server support, use npx @apify/actors-mcp-server --tools lentic_clockss/nextdoor-scraper with APIFY_TOKEN set.

Example prompt: "Use Nextdoor Scraper to find up to 3 plumbers in Hillsboro, Oregon, using city hillsboro--or. Return published contacts and note missing fields."

Apify API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lentic_clockss/nextdoor-scraper").call(
run_input={"query": "plumber", "city": "hillsboro--or", "maxResults": 3}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lentic_clockss/nextdoor-scraper').call({
query: 'plumber', city: 'hillsboro--or', maxResults: 3
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

For HTTP, send the input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~nextdoor-scraper/runs with an Authorization: Bearer <YOUR_APIFY_TOKEN> header. Read results with GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json after completion.

Integrations

Use the Actor's Integrations tab for Google Sheets, Make, Zapier, n8n, Slack, Airtable, or webhooks. Use Apify Schedules for repeated runs.

FAQ

Public access is not blanket permission for every use. You are responsible for Nextdoor's terms, applicable data-protection law, and a lawful basis for processing personal data.

Why did my run end as ABORTED?

Check its status message. The automatic-pause message above means the run will resume when results are ready. A manual abort or unrelated failure is not that pause.

How many results can I get?

Request 1–200 rows per input, subject to source availability, directory pages, your cost cap, and Free-plan limits. maxResults is a ceiling, not a guaranteed count.

Why are some fields empty?

Neighborhood rows are not business contacts. A business may publish a phone but no email. With hideAddress: true, street, unit, full address, and precise coordinates are withheld. claimed can be unknown even when hasContact is true.

Does it work in the UK and Canada?

Both have city and neighborhood support. Directory availability varies; if a UK category returns no rows, try neighborhood with enrichment. Use gb for the UK and ca for Canada.

What about France and Australia?

France has limited profile and location support, not the same public category or state directories. Australia is unavailable. Do not assume all modes work in every market.

Can I scrape private feeds or send messages?

No. Generic search, feeds, login, maps, and contact-form actions are outside this Actor's scope. No Nextdoor account is needed.

What if I get zero rows?

Check the selected mode, market, and target. Inspect INPUT_REPORT and RUN_SUMMARY. No matches or an unsupported scope can finish successfully with zero rows; handled failures have ERROR_SUMMARY.

Limitations

  • Public data only; no private posts, messages, or authenticated feeds.
  • Enrichment can return sparse cards instead of complete profiles. No contact coverage percentage is guaranteed.
  • The city catalog is US-only. Free-finds exposes identifiers, not full listing content; other markets may return no rows.
  • jobHours describes recruiting shifts, not operating hours. Use openingHours where supplied.
  • Category searches have no date-window or automatic query-translation option.

More local services and lead generation scrapers from the same publisher:

Browse all of our scrapers at apify.com/lentic_clockss.

Support

Report a problem or request another field through the Issues tab of this Actor's page. Include the run ID and the input you used.