Runolution

Where the data comes from

There is no single register of running stores and clubs, so the directory combines several public datasets and scores each candidate for relevance instead of trusting any one of them.

Curated seed listnationwide

A hand-checked list of US governing bodies, major race organisers, notable clubs and running retail chains. Always available, no API key needed.

Maintained in this repository

RRCA race directorynationwide

Community races from the Road Runners Club of America member event directory, with the contact published on each race's own website.

Road Runners Club of America (rrca.org)

OpenStreetMap (Overpass)area search

Searches OpenStreetMap for sports and shoe shops, sports clubs and athletics associations inside the selected area.

© OpenStreetMap contributors, ODbL

Wikidatanationwide

Queries Wikidata for US running clubs, athletics clubs and athletics governing bodies. Adds national federations and professional teams that map data does not cover.

Wikidata, CC0

Google Placesarea search

Runs text searches for running stores and clubs inside the selected area. Highest data quality, but billed per request and subject to Google's caching terms.

Google Places API · set GOOGLE_PLACES_API_KEY to enable

Web searcharea search

Searches the open web for running stores and clubs in the selected area, filtering out directories and listicles. Catches independents that map data misses; results always need review.

Tavily, Serper or Brave Search · set TAVILY_API_KEY or SERPER_API_KEY or BRAVE_SEARCH_API_KEY to enable

How candidates are judged

Map data is tagged for sport in general, not running specifically: OpenStreetMap's shop=sports covers dive centres, ski bootfitters and yoga studios, and shop=shoes is mostly fashion retail. Every candidate is therefore scored against a set of signals rather than accepted because it appeared in a query.

Positive signals include an explicit sport=runningtag, a recognised running retailer or federation name, and running-specific words in the name. Signals for a different sport — golf, tennis, diving, cycling — disqualify a candidate unless something explicitly running-related also matched, which is what keeps “Boulder Running Company” while dropping “Boulder Nordic Sport”.

Anything scoring below 0.35 is discarded outright. Between 0.35 and 0.7 it is kept but held for review, so big-box chains and ambiguous names do not land in the directory unchecked. At or above 0.7 it is published, and the reasons the classifier matched are shown on every listing.

The same shop often appears in several sources. Records are matched on source identifier first, then on name combined with proximity, city or shared domain, so re-running discovery updates listings instead of duplicating them — while still keeping the dozen separate “Fleet Feet” branches apart.

Storage

This instance stores the directory in Supabase Postgres.

Preset areas

These are shortcuts, not limits — the console geocodes any US place name.

Boulder & Denver, CONew York City, NYBoston, MAPortland, ORSan Francisco Bay Area, CAChicago, ILAustin, TX