Car wash location data & API

The dataset behind this directory — 13,779 self-service car washes across 36 European countries, from 251 chains and independents — is available under licence as a JSON API or bulk export. It powers this site and the Self Car Washes mobile, CarPlay and Android Auto apps, and is verified weekly against operator sources.

Aggregate figures are free to cite — see the statistics page. The per-location dataset itself is a protected database (EU Directive 96/9/EC) under the terms of use.

What’s in the dataset

One record per self-service car wash. Every entry is curated: only genuine self-service (jet-wash / lance-bay) facilities are included — automatic roll-overs and staffed hand washes are excluded by policy — and coordinates point at the wash itself, not the forecourt or the operator’s head office.

FieldTypeNotes
idstringStable unique slug; also the key of the location's page on this site.
namestringDisplay name of the wash.
providerstringOperator display name.
providerIdstringStable operator id — joins the providers array in the same response.
addressstringStreet address as the operator publishes it.
citystringLocality, sometimes with a district in parentheses.
countrystringISO 3166-1 alpha-2 country code, uppercase.
latnumberWGS84 latitude, 5 decimal places (≈1 m).
lngnumberWGS84 longitude, 5 decimal places (≈1 m).
baysnumber | nullWash-bay count when the operator publishes it.
hoursstring | null"24h" or a daily "HH:MM–HH:MM" range; null when unpublished.
streetViewUrlstring | nullCurated Google Street View link showing the actual bays.
verified{ source, date } | nullVerification badge: source is "operator" (the operator confirmed the data), "curator" (checked by our team) or "streetview" (vision-confirmed from Street View imagery); date is YYYY-MM-DD.
amenitiesstring[] | nullOperator-reported facilities on site, currently "vacuum"; null when nothing is reported.

The response also carries a providers array (operator id, name, brand colour, website and contact where published) and dataset metadata (count, builtAt, license).

Try it — the public sample

GET https://selfcarwashes.com/api/locations answers anonymously with every operator plus a spread sample of location records; a licence key (sent as Authorization: Bearer …) unlocks the full 13,779-record feed. Three records from the live sample:

[
  {
    "id": "mundipesula-karberi-20",
    "name": "Mündipesula Kärberi 20",
    "provider": "Mündipesula",
    "providerId": "mundipesula",
    "address": "Kärberi 20",
    "city": "Tallinn (Lasnamäe)",
    "country": "EE",
    "lat": 59.44518,
    "lng": 24.88295,
    "bays": 2,
    "hours": "24h",
    "streetViewUrl": "https://www.google.com/maps/@59.4452376,24.8816889,3a,75y,147.22h,85.21t/data=!3m7!1e1!3m5!1s3RfdyVaEMPN_D31P8lADYw!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D4.788099204104967%26panoid%3D3RfdyVaEMPN_D31P8lADYw%26yaw%3D147.21504261013226!7i16384!8i8192?entry=ttu&g_ep=EgoyMDI2MDQyOS4wIKXMDSoASAFQAw%3D%3D",
    "verified": null,
    "amenities": null
  },
  {
    "id": "st1no-klett",
    "name": "St1 Klett",
    "provider": "St1 Norge",
    "providerId": "st1no",
    "address": "Heimdalsvegen 222",
    "city": "Leinstrand",
    "country": "NO",
    "lat": 63.32134,
    "lng": 10.30404,
    "bays": null,
    "hours": "24h",
    "streetViewUrl": null,
    "verified": null,
    "amenities": null
  },
  {
    "id": "mfg-redditch",
    "name": "MFG Redditch",
    "provider": "Motor Fuel Group",
    "providerId": "mfg",
    "address": "Clearwell Road",
    "city": "Redditch",
    "country": "GB",
    "lat": 52.3011,
    "lng": -1.90511,
    "bays": null,
    "hours": null,
    "streetViewUrl": null,
    "verified": null,
    "amenities": null
  }
]

Coverage — 36 countries

Full breakdown — per-capita density, 24/7 share, bay totals and the chain league table — on the statistics page.

How the data stays fresh

Automated weekly checks compare every multi-location operator’s own published location list against the directory and flag additions and closures; changes are verified manually before they land. Addresses are geocoded against official address registers where available, and most locations carry a manually-reviewed Street View link showing the actual wash bays. Latest data update: 2026-07-28.

Licensing

The dataset is licensed for navigation and mapping products, fleet and fuel-card services, equipment vendors, and market research. Three usual shapes:

Pricing depends on scope — markets, refresh cadence and redistribution rights — so tell us your use case and we’ll quote. The dataset is fingerprinted and monitored for unlicensed copying; bulk extraction without a licence is prohibited under the terms of use.

Request API & data access

Building navigation, fleet, or mapping software, or comparing markets? The full self-service car wash dataset is available under licence — tell us your use case and we'll send access details and terms.

Open the interactive map