ActorStack.dev
Nextdoor dataReference

Every field in a Nextdoor business record, with measured fill rates

A field-by-field reference for the 34 attributes in a public Nextdoor business record, each with the percentage of 741 real businesses that had it filled in.

By Oswaldo Carabano7 min read

Short answer

A public Nextdoor business record carries 34 fields: identity, categories, contact details, address, coordinates, opening hours, verification status, gallery, Nextdoor's own summary of neighbor sentiment, and cache metadata. Measured over 741 businesses across 5 cities and 12 categories, phone numbers were filled on 93.9%, websites on 77.2%, emails on 62.6% and opening hours on 57.4%.

Key points

  • Fill rates were counted over 741 distinct businesses across 5 cities and 12 categories, not estimated from a sample of a few.
  • An earlier measurement on 30 businesses put opening hours at 77%; at n=741 it came out at 57.4%. The lower number is the published one.
  • `address_postal_code` is derived rather than read: Nextdoor exposes no ZIP field anywhere in its schema.
  • Every key is always present. An empty field is explicit `null`, so a parser never has to guess whether a key was dropped.
  • Three fields — `from_cache`, `fetched_at`, `data_age_hours` — describe the row's own freshness rather than the business.
On this page8 sections

This is the reference for what a public Nextdoor business record contains. Every percentage is a count over 741 distinct businesses across 5 cities and 12 categories, so the numbers describe real coverage rather than what the schema permits.

How to read this reference

A field with no percentage is always present. A field with one is present that often — and the rest of the time it is explicit null, never a missing key. That distinction is deliberate: a parser should never have to decide whether an absent key means empty, unsupported or broken.

Anything not listed here is not promised. That is a stronger statement than omitting it, and it is the honest position for a source that can change its markup without telling anybody.

Identity and categories

FieldFilledNotes
namealwaysAs published by the business.
slugalwaysNextdoor's own identifier in the URL.
categories84.2%Array. Businesses often sit in several of the 54 categories.
description46.6%Business self-description. Free text, length varies wildly.
is_verifiedalwaysNextdoor's verification status. Boolean, never null.

categories is the field to key on if you are building a directory, and the reason the 84.2% matters: one business in six arrives with no category at all, so a strictly category-partitioned dataset silently drops them.

Contact details

FieldFilledNotes
phone_number93.9%E.164 format. The best-covered contact channel by a wide margin.
website_url77.2%Often a Facebook or Instagram page rather than a domain.
email62.6%The binding constraint on any email-first campaign.

Coverage compounds when you require two channels at once, which is the arithmetic behind sizing a lead list: a row set filtered to “has both phone and email” is around 60% of the rows you paid for.

Location

FieldFilledNotes
address_fullconditionalNull across every address field when the business hid its address.
address_cityalwaysPresent even for hidden addresses. Use it to split city from trade area.
address_postal_codederivedDerived by the Actor: Nextdoor exposes no ZIP field in its schema.
hide_addressalwaysTrue when the business chose privacy. Common for sole traders.
source_city_slugalwaysThe city the row was discovered under, which is not always where it is.

Trust and engagement signals

Four fields do the qualification work: is_verified, recommendations_count, neighbors_talking_count and recommendations_summary. The last of those is Nextdoor's own one-line synthesis of neighbor commentary, present on 47.4% of businesses, and it is the cheapest available proxy for reputation because it needs no recommendation rows at all.

hours_open_status sits here too at 57.4%, which is the field whose measured coverage fell furthest when the sample grew from 30 to 741.

Freshness metadata

Three fields describe the row rather than the business: from_cache says whether it was fetched or reused, fetched_at says when the data actually came off Nextdoor, and data_age_hours saves you the subtraction. Set maxCacheAgeDays: 0 to force a fresh read of everything.

Business contact details age slowly, so a week-old cached row is usually fine. The judgement is yours to make, which requires the data to tell you what it is — why that matters.

Nested recommendations

Each business row carries its recommendations inside it, and each of those carries kind, kind_confidence and kind_signals — because half the feed is not reviews at all. The nested rows deliberately omit scraped_at, _type, _warnings and business_id: the parent row already has all four, and the Recommendations view lifts nested keys to the top level, where two keys with the same name would silently overwrite each other.

What is not promised

  • Star ratings. Nextdoor does not have them.
  • Author identities beyond what Nextdoor publishes — a first name and last initial.
  • Anything behind the login: private groups, member feeds, direct messages, keyword search.
  • Any field not in the tables above. If it is not measured, it is not documented, and if it is not documented it should not be in your pipeline.

Frequently asked questions

Does the Nextdoor data include ZIP codes?
Yes, as `address_postal_code`, but it is derived by the Actor rather than read from Nextdoor: there is no ZIP field anywhere in Nextdoor's own schema.
How often is a business phone number available?
On 93.9% of 741 measured businesses. It is the best-filled contact field, ahead of website at 77.2% and email at 62.6%.
Why is a field null instead of missing?
Because keys are never dropped. Every field is always present in the row, and an empty one is explicit `null`, which means a downstream parser never has to distinguish "absent" from "empty".

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 18 Aug 2026
    Nextdoor Business & Reviews Scraper — Actor README and input schemaActorStack / Apify Store
  2. Platform docschecked 18 Aug 2026
    Dataset storageApify
  3. Platform docschecked 18 Aug 2026
    Actor input schemaApify
A row of residential mailboxes on posts in front of a wooden fence and trees.
NextdoorReference

Nextdoor city slugs

Nextdoor identifies a city as `city-name--state`. The rule sounds trivial and breaks on saints, hyphens and states that share a city name — here is the exact format and how to confirm a slug before spending a run on it.

5 min
Overhead view of a suburban neighbourhood, showing house plots and the street grid between them.
NextdoorMeasured

Trade area vs city

Asking Nextdoor for 200 dentists in one city returns the surrounding four towns too. We counted where the switch happens: results 1-75 were 96-100% local, everything past 76 was 0%.

6 min
A suburban residential street of detached houses with cars parked along the kerb.
NextdoorGuide

Scrape Nextdoor business listings

A complete walkthrough: how Nextdoor exposes business data to signed-out visitors, how to select cities and categories, what a first run costs, and how to read the 34 fields you get back.

9 min