ActorStack.dev
Nextdoor dataReference

Nextdoor city slugs: the format, how to find one, and what goes wrong

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.

By Oswaldo Carabano5 min read

Short answer

A Nextdoor city slug is `city-name--state`: all lowercase, spaces replaced by single hyphens, then a double hyphen, then the two-letter US state code. San Clemente, California is `san-clemente--ca`; St. Louis, Missouri drops the period. The double hyphen is the separator, so a single hyphen before the state code is the most common cause of a run that returns nothing.

Key points

  • The format is `city-name--state`, lowercase, two-letter state code, double hyphen as the separator.
  • Punctuation inside the city name is dropped, not encoded: periods, apostrophes and accents disappear rather than becoming escapes.
  • City names repeat across states, so the state code is not optional even when the name feels unambiguous.
  • The cheapest way to confirm a slug is to open the public city page in a browser before committing a run to it.
On this page6 sections

Almost every empty Nextdoor run traces back to this one string. The format is simple enough to describe in a sentence and has four transformation rules underneath it, three of which only matter for cities whose names contain something other than letters.

The format

the pattern
city-name--state

san-clemente--ca      San Clemente, California
dana-point--ca        Dana Point, California
saint-louis--mo       St. Louis, Missouri
fort-worth--tx        Fort Worth, Texas

Lowercase throughout, single hyphens between words in the city name, a double hyphen as the separator, then the two-letter state code. The double hyphen is what makes the format unambiguous: without it, a city called Fort Worth in a hypothetical state “TX Fort” would be unparseable.

The four transformation rules

  1. Lowercase everything. No capitals survive.
  2. Spaces become single hyphens. san juan capistrano san-juan-capistrano.
  3. Punctuation is dropped, not encoded. Periods, apostrophes and accents disappear rather than becoming escapes: “St. Louis” loses the period, and the abbreviation is normally spelled out.
  4. The state code is mandatory. City names repeat across states — there are Springfields in more than thirty of them — so the code is not optional even when the name feels unique.

Finding a slug you are unsure about

Do not guess, and especially do not guess in a loop. Open the city page on Nextdoor in a browser and read the slug out of the URL: it costs ten seconds and removes the entire class of failure. For cities with a saint, a compass direction or an accent in the name, this is the only reliable method.

If you are working from a list of cities in a spreadsheet, verify the first three by hand and the rest will usually follow the same pattern — but verify the odd-looking ones individually rather than trusting the transformation.

What a wrong slug looks like

It does not throw. The run completes, the dataset is empty or nearly so, and the errors dataset explains why — which is exactly why failures go somewhere visible instead of being swallowed. You are not charged for rows that were never produced, so a wrong slug costs the start event and nothing else.

The three failures in order of frequency:

  1. Single hyphen before the state code.
  2. Punctuation left in the city name.
  3. A correct slug for a city that genuinely has no businesses in the category you asked for — which is not an error at all, and is worth checking before you assume it is.

Running several cities at once

cities is an array and maxBusinessesPerCity applies per city, so ten slugs at 50 each is 500 businesses. That is the right shape for covering a metropolitan area: name the municipalities explicitly and set onlyRequestedCity: true, and you get a clean union of those cities rather than a distance-ordered blur across the region.

a metro sweep
{
  "cities": [
    "san-clemente--ca",
    "san-juan-capistrano--ca",
    "dana-point--ca",
    "laguna-niguel--ca"
  ],
  "categories": ["Plumber", "Electrician"],
  "maxBusinessesPerCity": 60,
  "onlyRequestedCity": true
}

Letting Nextdoor pick the neighbours

If you do not know which cities surround your target, expandNearbyCities discovers them through Nextdoor's own cross-links. maxExpandedCities caps it, and that cap is not optional: Nextdoor's city graph connects the whole of the United States, so an uncapped expansion has no natural stopping point.

Expansion and onlyRequestedCity pull in opposite directions by design. Use the first when you want a trade area and the second when you want a municipality — the difference is measured here.

Frequently asked questions

What is the Nextdoor city slug format?
`city-name--state`: lowercase, single hyphens inside the city name, a double hyphen, then the two-letter state code. For example `san-clemente--ca`.
Why does my Nextdoor city return no businesses?
Most often the separator: a single hyphen before the state code instead of a double one. After that, punctuation left inside the name, or a city whose public directory genuinely has no businesses in the category you asked for.
Can I scrape several Nextdoor cities in one run?
Yes. `cities` is an array and `maxBusinessesPerCity` applies per city, so ten cities at 50 each is 500 businesses. You can also let the Actor discover neighbouring cities through Nextdoor's own cross-links, capped by `maxExpandedCities`.

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. Operator claimchecked 18 Aug 2026
    About NextdoorNextdoor
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
The glass shopfront of a small independent business on a sunlit street.
NextdoorReference

Nextdoor data fields

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.

7 min
Close-up of a plumber's hands fitting a radiator pipe with a wrench.
NextdoorGuide

Local lead generation

Which Nextdoor fields are usable for outreach, what the fill rates mean for a target list of a given size, and how to avoid building a list that is 40% dead ends.

8 min