SAFEROUTE // CRIME-AWARE WALKING NAVIGATOR · UK·US·CA·MX

// LEGAL · PRIVACYPrivacy Policy

Effective
6 June 2026
Updated
4 November 2026 (US Eastern time)
Controller
Minhaj Khan
Contact
minhaj@safe-route.app

01Who we are

SafeRoute is a crime-aware walking navigation app for the United Kingdom, 26 US cities, two Canadian cities (Toronto and Vancouver), and Mexico City. It also publishes a website, safe-route.app, with neighbourhood safety pages and a map for checking any address. The data controller is Minhaj Khan (an individual based in the State of New York, United States), referred to throughout this policy as "we," "us," or "SafeRoute."

Contact: minhaj@safe-route.app

This policy explains what personal information SafeRoute collects, why we collect it, how we use it, and the rights you have under the UK General Data Protection Regulation (UK GDPR) and the UK Data Protection Act 2018, as amended by the Data (Use and Access) Act 2025.

02Scope

This policy applies to the SafeRoute iOS app, the optional SafeRoute Apple Watch companion, the SafeRoute website at safe-route.app (including its address-check map and neighbourhood safety pages), this policy page, and the SafeRoute backend service that supports them, including the page it shows to anyone who opens a link to a walk you share (section 03). It does not cover third-party services that the app or the website links out to (for example, the App Store, the police and open-data portals we credit, the OpenStreetMap or Open Government Licence pages, the Department for Education's school-information service, or, from version 1.4, the websites of the school and home-value publishers, and of their licences, that the app's Schools and Home values layers, its About screen and, in version 1.4, its home-values card link to), which have their own privacy policies.

03Information we collect

SafeRoute is designed to collect as little personal information as possible. We do not require accounts, sign-in, or registration. We do not ask for your name, postal address, phone number, or payment information; if you type an address into a search box, it is handled as described below, and if you share a walk, so is the name or address of its destination.

We process the following limited categories of data while you use the app or the website:

Location data (GPS coordinates)

When you actively use SafeRoute to plan or follow a route, the app reads your device's GPS location. Coordinates are sent to our backend to compute walking routes, to retrieve crime context for your area, to work out how much of each route we find runs along lit streets (from version 1.2.1, the app sends the routes back to our backend for this; section 05, and "Places that can help, and street lighting" below) and, if you use Share my walk, to show your walk to the people you send the link to (see "Share my walk" below). When you navigate, the app also sends your route, and in some cases your position, straight to Mapbox. To name the area you are in, the app also sends your location to Apple's map services. Both are described under "The app's map" below. From version 1.4.2, the large Home Screen widget also sends Mapbox, for a picture of its map, a point a fixed distance east of the centre of the area it shows, both rounded to about 100 m (see "Home Screen widget" and "The app's map" below). Coordinates are not stored against any persistent identifier on our servers; if you share a walk, its route and positions are held for a few hours under a random code, not under any identifier of yours. When the app checks your area, looks for help nearby, or ranks search results near you, your device's current location travels in the address of the request, and our request log keeps it only to about 1 km (see "Technical request data" below). Our cache of crime data keeps the box around the point of an area check, and around a route you plan, to about 10 m for up to a day, and can hold it in memory for about an hour more, or longer in Dallas (section 08).

Four features can send your location to our backend without you opening the app; since version 1.3.8, released on 1 October 2026, Area heads-up no longer does:

As with any other request, our request log keeps these locations only to about 1 km. You can stop them by removing the widget or by turning the alerts off in About; Find Help on Apple Watch sends nothing unless you open it.

Share my walk

This part is written for the person who shares a walk. If you opened a link to someone's walk, the last paragraph of this part says what your browser sends and to whom; section 05 gives our lawful basis, section 08 says how long we keep what it sends, and section 09 sets out your rights.

If you tap Share my walk on a route and then Create link & send, the app sends our backend the name of your destination (a place name or an address), the route you planned and your estimated walking time, and our backend makes a link to a page that shows them. The route is its full line of coordinates: it starts where you planned it from, which is often your current location, and passes through any stops you added. Nothing is sent until you tap Create link & send.

If you choose Live location, which is selected unless you change it, the app also sends your precise position, with the time, about every 15 seconds while you navigate, including while your screen is locked. If a send fails, the app tries again with the next position, up to about once a second. In versions before 1.4, if our backend no longer has the walk, for example after it restarts, every later attempt fails, whenever you navigate, until sharing stops in one of the ways below, and our backend rejects those positions without keeping them. From version 1.4, the app stops sending positions as soon as our backend answers that it no longer has the walk, or that sharing has already stopped, and, if you are navigating, tells you "Sharing ended — your link is no longer active. Share again to keep going." From 4 hours after the link was made until we delete the walk (section 08), our backend still acknowledges each position the app sends, but does not keep it, so the last position the page can show is the last one sent before the 4 hours were up; from version 1.4, the app stops sending them at 4 hours (see below). If you choose Route only, the app sends no position.

From version 1.4, sharing stops when the app detects that you have reached the destination of the navigation you are on (the last one, not a stop along the way), when you end navigation (other than by choosing Go in Find Help; see below), when you share another walk, when the link is 4 hours old, or when you tap Stop sharing on Apple Watch, which appears among the watch's safety options whenever you are sharing. In versions before 1.4, reaching your destination does not by itself stop sharing: it stops when you end navigation (including from the screen navigation shows when you arrive), when you share another walk, or when you tap Stop sharing on Apple Watch, which appears only while you navigate. With Live location, if you start navigating, even to somewhere else, before sharing has stopped and while SafeRoute has kept running since you made the link, your positions from that navigation are sent to it too. From version 1.4, with Live location or Route only, if that navigation reaches its destination, the app also tells our backend that you arrived, and the page says "Arrived" under the destination you shared, even if that navigation went somewhere else.

Arrival, from version 1.4. When the app detects that you have reached the destination of the navigation you are on, it stops sending positions and tells our backend that you arrived. The page then says "Arrived" and "Reached the destination", with how long ago. The app knows only that your phone reached the destination, and the page says nothing more than that. The app then shows a check-in screen, which offers a ready-made message saying that you arrived safely; the ready-made message names your destination when the app knows it. You send it yourself, if you want to, with whichever app you pick from iOS's share sheet, and we are not told whether you send it or to whom. If the app cannot reach our backend, it tries once more a few seconds later and then, until our backend has it, each time you bring SafeRoute back to the foreground, for up to about 5 hours after you arrived; until then the page goes on showing the walk as it last was, and once the arrival gets through, the page gives the time it got through, not the time you arrived. To send it again, the app keeps the link's code and its secret, and the time you arrived, on your phone (section 08). An arrival that reaches our backend more than 4 hours after the link was made is not recorded: the page goes on saying that the link is closing. Versions before 1.4 never tell our backend that you arrived (section 13).

The 4-hour limit, from version 1.4. 4 hours after you made the link, with Live location or Route only, the app stops sharing the walk: it sends no more positions, and nothing else about the walk, to our backend. If you are navigating, it tells you so in navigation, on its Live Activity and on Apple Watch: "Sharing ended — links last about 4 hours. Share again to keep going." The page says that the link is closing until we delete the walk, about 15 minutes later (section 08).

Find Help, from version 1.4. If you choose Go on a place in Find Help, on your phone or on Apple Watch, while you share a walk, sharing continues and the same link is pointed at that place; before you choose, Find Help says "Your contact will see you're heading here." The app ends navigation, finds a walking route from where you are to the place, as for any route you plan (see "Location data" above), and, if it finds one, starts navigating it straight away. If SafeRoute is not on screen, for example when you choose Go on your watch with your phone in your pocket, that walk starts when you next bring SafeRoute to the foreground, if you do so within about 10 minutes of the route being found. If the walk does not start, the route waits in the app for you to start it, and the link goes on saying that you are heading to that place until sharing stops in one of the ways above or the link expires (section 08). Until the walk to the place starts, the app sends no positions, so with Live location the page shows the last position it was sent before you chose Go. Our backend receives the place's name and location and, with Live location, once the walk to it starts, the new route, which starts where you are, and its estimated walking time. With Route only, the app sends, and our backend keeps, only the place's name and location, and the page stops showing your original route. The page then says that you are "Heading to" that place "(chosen in Find Help)" and marks it on the map, with Live location also the new route and, as you walk, your positions again. Because Find Help lists places near you, the place shows roughly where you are, even with Route only. Whether you are later than expected is then judged, with Live location, against the new walk's estimated time once that walk starts and, with Route only, against the original walk's. Pointing the link at a new place does not make it last longer (section 08), and sharing then stops in the ways above, for example when you arrive at the place. If the app cannot update the link, it says "Couldn't update your shared walk", with Try again and Stop sharing, and, until the walk to that place starts, your watch says so too; until the link is updated, the page goes on showing the walk as it last was. Without a shared walk, Go works in the same way, without the link.

In versions before 1.4, there is one exception to ending navigation: if you choose Go on a place in Find Help, on your phone or on Apple Watch, navigation ends but sharing does not. The link stays open, and the page keeps saying that you are walking and, later, that you are later than expected; Stop sharing disappears from your watch; and with Live location, your next navigation, for example to that place, sends its positions to the same link. Sharing then stops only when you end a later navigation in the usual way, tap Stop sharing on your watch during one, or share another walk; otherwise the link stays open until about 4 hours 15 minutes after it was made (section 08).

You send the link yourself, with whichever app you pick from iOS's share sheet, and that app handles the message under its own terms; the ready-made message names your destination. The link works as soon as it is made, even if you then close the share sheet without sending it, and we are not told who receives it.

The link holds a random 12-character code, not your name or phone number, but anyone who has it, including anyone it is passed on to, can open the page without a key (section 11). They see your destination, your planned route with its start and end marked, and whether you are still walking or are later than expected, or, from version 1.4, that you arrived, or that sharing has ended (the page then says "Sharing ended" and "The walker ended navigation or stopped sharing"), or, once the link is 4 hours old, that the link is closing and, with Live location, how long ago it last updated. In versions before 1.4, when our backend is told that sharing has stopped, even at your destination, the page says that sharing ended, not that you arrived: it can say that you arrived only if the app tells our backend so, which those versions never do (section 13). From version 1.4, it says that you arrived once the app has told our backend so, and, after you choose Go in Find Help, that you are heading to that place (see above). The page, or the data behind it, also gives your estimated walking time and when the link was made and last updated. With Live location they also see your latest position, and the data behind the page holds the positions our backend has kept for that link, each with its time, up to the last 200 (at least about 50 minutes of walking). Send the link only to people you want to see this.

We hold a shared walk in our backend's memory only and never write it to disk. We delete it about 30 minutes after sharing stops, and never later than about 4 hours 15 minutes after the link was made (section 08). Every shared walk is also lost if our server restarts. Until then the page keeps showing the route and, with Live location, your last position. The ways of stopping above work only while SafeRoute has kept running since you made the link: if it has been closed or restarted, or cannot reach our backend when sharing stops, the link receives no more positions but stays open until it expires; from version 1.4, an arrival the app has detected is the exception: if it does not get through, the app sends it again later, even if SafeRoute has been closed in the meantime (see "Arrival, from version 1.4" above). A link you make without then starting navigation can be stopped only by starting and ending navigation or by sharing another walk, or, from version 1.4, by tapping Stop sharing on Apple Watch. Deleting the app does not end a walk you have shared.

The page asks our backend for updates about every 5 seconds for the first 4 hours, until sharing stops, and every 30 seconds after that, and each request reaches our backend, through Cloudflare, with the viewer's IP address (section 06); our request log replaces the code in these links with a placeholder (see "Technical request data" below). The page draws its map from images that the viewer's browser downloads straight from Mapbox, so Mapbox receives the viewer's IP address and browser details and the area of map around your route (from version 1.4, after you choose Go in Find Help, the area around the place you chose, which is near you, any new route and, with Live location, your latest position), and any other area the viewer moves the map to; your route, your destination, your positions and the link's code are never sent to Mapbox. Since 17 October 2026 the page runs no code from Mapbox, stores nothing for Mapbox in the viewer's browser and sends Mapbox no usage events; until then, Mapbox's map library, which the page loaded, sent Mapbox usage events with a random identifier that it kept in that browser (sections 06 and 13). Since 30 September 2026 the page links to this section. Our usage analytics (below) record only that a walk was shared and whether you chose Live location, and nothing about it once you have turned them off.

Search queries

Text you type into the place-search box (for example, a destination name) is sent to our backend, which forwards it to Mapbox's geocoding service to turn it into a map location. If you have allowed location access, the app also sends your current location with each search so that nearby places rank first, and our backend passes it to Mapbox for the same purpose. We do not link your searches to you: we keep no account or identifier for you that they could be linked to. The App Store's privacy label nonetheless lists search history, like the other data the app collects, as “linked to you”, because Apple counts as linked anything that is personal data under privacy law, and a place you search for can be a precise location, which we treat as personal information (see also section 04). The text and any location travel in the address of each request, but our request log keeps only the length of the text and the location cut to about 1 km (see "Technical request data" below).

Places that can help, and street lighting

The places that Find Help, on your phone or on Apple Watch, and the Nearby tab list, and the street-lighting figures on route results, come from OpenStreetMap data. For places, the app sends our backend the point to look from (see "Location data" above); for street lighting, the candidate routes (section 05). Until the server update that switches on our own copy of this data (section 13), our server asks Overpass servers for it everywhere (section 06): for places, the fixed map squares, about 2 km across, around the point looked up; for street lighting, a box around the candidate routes, widened by about 300 m.

From that update, our server keeps its own copy of the OpenStreetMap data these features need, and answers from it as follows:

The app's map

The maps in the app — on the Nearby tab, including its full-screen crime map, on the Live and Plan tabs, and in turn-by-turn navigation — are drawn by Mapbox's software inside the app, which downloads map data directly from Mapbox (api.mapbox.com): the map's style, fonts, icons and map tiles and, while you navigate, terrain, 3D buildings and routing data for the area around you. So Mapbox receives your device's IP address, the app's name, version and build number, the versions of Mapbox's software, your iOS version and device model, and the areas of map you view, which, while you navigate, are the area around you. These requests also carry a billing token from Mapbox's software, part of which stays the same for as long as the app is installed. Searching for places, and finding the routes you compare before you start, do not go from your device to Mapbox: the app sends them to our backend (see "Search queries" above and section 06); only once you navigate does the app ask Mapbox for directions itself, as described below.

Each time a map or a navigation session starts, Mapbox's software also sends Mapbox a usage check-in (to events.mapbox.com), which Mapbox uses for billing, and from time to time it asks Mapbox for its settings (from config.mapbox.com). Both carry the identifier iOS assigns to SafeRoute on your device (Apple's "identifier for vendor"), unhashed, which stays the same until you delete the app; the analytics identifier described below is derived from it. The check-in also gives your device model, iOS version and the app's name and version, whether Location Services is on, and the location access you gave SafeRoute (While Using or Always, and precise or approximate).

When you start navigation, the app sends Mapbox the route you chose — up to 100 points along it, from its start, which is usually where you are, to your destination — with the names of the start and the destination (when you start from where you are, the start is named "Current Location"), your language and your units of distance, so that Mapbox can turn it into turn-by-turn directions. As you walk, the app fetches each spoken instruction from Mapbox by sending its text, which names the streets ahead, with your language. On that route, the app sends Mapbox no position while you walk, even if you leave the route. If Mapbox cannot use the route you chose, the app instead asks Mapbox for a walking route between your start, any stops and your destination, with their names; while you follow that route, it sends Mapbox your current position, at full precision, and your direction of travel whenever you leave the route, to get a new one, and your current position and direction of travel from time to time, to look for a better one. Versions before 1.2.1 always navigate this second way.

Every version of SafeRoute from 1.0.2 (June 2026) and before 1.4 switches off Mapbox's own usage telemetry each time it starts. From version 1.4, it is your choice: it is off when you first install the app, you can turn it on or off with the switch at About → Mapbox map data or in a map's ⓘ menu (below), which are the same setting, and SafeRoute no longer switches it off each time it starts, so it stays as you last set it. If you update from an earlier version, version 1.4 switches it off once, the first time it starts; from then on it stays as you set it. With it off, the Report button that Mapbox's software shows during navigation, and the "Rate your trip" screen it shows when you arrive, send nothing to Mapbox; we checked this with version 1.3.8. From version 1.4, the app does not show that button or that screen at all. Versions 1.0.0 and 1.0.1, from May 2026, do not switch it off, so with them Mapbox's software sends what the list below describes unless you switch it off as described there.

The ⓘ button on each map opens a menu from Mapbox. Its Improve this map item opens Mapbox's map-feedback page in your browser at the place the map shows; the page's address gives that place to about 1 m, and says that you came from SafeRoute. Its Mapbox Telemetry item asks whether you want to take part in Mapbox's telemetry, which Mapbox's dialog describes as "contributing anonymous usage data". It is not anonymous: it carries the identifier described above. If you choose Participate, or, from version 1.4, turn on About → Mapbox map data, Mapbox's software sends Mapbox the following: in versions from 1.0.2 and before 1.4, until SafeRoute next starts, when the app switches it off again; from version 1.4, and in versions 1.0.0 and 1.0.1, until you switch it off:

You can stop it at any time by choosing Stop Participating in the same menu or, from version 1.4, by turning off About → Mapbox map data.

From version 1.4.2, the map in the large Home Screen widget is a picture that Mapbox draws for the widget with its Static Images API, in the same map style as the app's maps; Mapbox's software in the app is not involved. When the widget refreshes and has no picture of the same map from the last 12 hours, it asks Mapbox (api.mapbox.com) for a light and a dark picture, sending the centre of the picture, rounded to about 100 m, which is a point a fixed distance east of the centre of the area it shows (that centre is rounded to about 100 m too: it is the point the widget sends our backend), so that the area sits toward the left of the picture (the shift is only for the widget's layout: Mapbox can work out the area's centre from the point sent); the zoom; the position, outline and shade of each crime cell drawn on the map; and the app's Mapbox access token, which is the same for every install. Mapbox receives these with your device's IP address, the widget's name and build number, the versions of iOS's network software, which show your iOS version, and your language setting. They carry no billing token and no identifier of your device, the widget sends Mapbox no usage check-in, and About → Mapbox map data does not change what it sends. The widget reuses each picture for up to 12 hours and keeps the latest two on your iPhone (section 08). Only the large widget shows a map; the other sizes, on the Home Screen and the Lock Screen, ask for none.

A few things in the app use Apple's own map services (Apple Maps), which iOS provides, rather than Mapbox. To show the name of your area on the Nearby tab, the app asks Apple to turn your current location into a place name. When an alert fires, it asks Apple for the name of the street and area at the alert's point and for a small picture of the map around that point; in versions before 1.4.2, the widget also asks Apple for a picture of the map of the area it shows. So Apple receives those locations and areas of map from your device, with its IP address.

Schools and home values in the app

School and home-value data is built into the app (from version 1.4). The Schools and Home values layers of the Nearby tab's full-screen map, the School data and Home values data sections in About and, in version 1.4, the home-value figures under an area's report all come from that data, and showing them sends nothing to us or to anyone else. Turning either layer on or off, filtering schools, using the Schools in view list, or opening a school or an area sends nothing either, except, if Usage analytics is on, the usage signal for that action, which says what kind of thing you did, never which school or area (see "Usage analytics" below). Moving the map works as it does without these layers: the map itself loads from Mapbox (see "The app's map" above), and while the crime shading is shown, with or without Schools, the app asks our backend for the crime data of the area you move to. While Home values is shown instead, the app does not ask our backend for crime data as you move the map; when you switch back to the crime shading, it asks for the area in view if you have moved the map away from the area it last looked up. In version 1.4, the home-value figures under an area's report are for the area the app has already looked up, and finding them sends nothing more. From version 1.4.1, the Nearby tab shows no home-value figures: its map of the area it has looked up has a Schools button, a Home values button or both, each where that layer has data, which open the full-screen map on that layer, and Home values also opens the details of the area at that same point, or says why it has no figure. The app finds that area in its built-in data, so this sends nothing more, other than the usage signal for switching the layer on described below; opening the area this way records nothing. Links marked ↗ open in your browser, which, as for any website, sends that website your IP address and browser details. A link to a school's own record or inspection report (for example the Department for Education's record in England, the NCES record in the US, the Ontario School Finder page, SEP's school finder in Mexico City, or the inspection report in Northern Ireland) puts the school's official ID, or its report's, in the address, so that publisher sees which school you opened. The other links, to a source, a rating's publisher or a licence, and every link in the home-value layer, in About and, in version 1.4, on the home-values card, open general pages and do not say which school or area you were looking at. The app keeps on your iPhone whether you have turned the Schools layer on (section 08).

Apple Watch

The SafeRoute Apple Watch companion reads no motion, health or other sensor data. While you navigate, your iPhone checks whether you have left the route you chose, by comparing the position it already uses for navigation with that route, and tells you so on your iPhone and on Apple Watch. This check runs on your iPhone and sends nothing to our servers.

Technical request data

For security and abuse prevention, our backend writes one line to its log for every request: the time, the address requested, the response code, the size of the response and how long it took to answer. Before the line is written, any search text in the address is replaced by its length, and any coordinates are cut to two decimal places (about 1 km); the code in a link to a shared walk is replaced by a placeholder, and the rest of the address is kept, such as a camera identifier. That line does not include your IP address. Our host, Render, keeps these logs for about 7 days, and they are not used to build a user profile. Separately, to enforce rate limits, our server counts requests in memory for one to two minutes, keyed on the IP address each request arrives from (see section 08).

Usage analytics

To understand which features are used and to catch performance problems, SafeRoute records a small number of usage signals through TelemetryDeck, a privacy-focused, GDPR-compliant analytics provider. These signals carry an event name (for example, that a screen was opened or a route was found; that you opened Find Help, or confirmed a call to the emergency number, during navigation; that the app gave you an Area heads-up or Fresh incident nearby alert, that you chose Quiet for today on one, or that the app offered you alerts; or, from version 1.4, that a walk reached its destination or that the app asked iOS to show Apple's rating request) and a small set of coarse values describing what happened, some of them exact counts — how many routes or search results were returned, or how many incidents are in a part of the heatmap you tap; whether the safest route, or the one you started, was low, moderate or high for reported incidents, or, from version 1.4, for the one you started, that it had no crime data; which tab you switched to, and which of the routes, by rank, you chose; whether the routes had crime data behind them (from version 1.4 with, if they had none, the kind of reason our backend gave: a crime-data source failed to answer, the trip covered too large an area for a source, no crime data is published there, or another or no reason), whether you started navigation from them (from version 1.4, whether you started a walk while they were open; in versions before 1.4, whether a walk was under way when you left them, which often said no after a walk, because the results usually reappear when a walk ends), and whether navigation followed the route you chose or one Mapbox made instead; whether an alert setting was switched on or off; that the app told you alerts could not reach you, or could reach you only while the app was open, and why (notifications were off, or location access was not set to Always), and whether you then opened Settings from that notice; when the app offered you alerts, whether you turned them on or chose Not now, and how many times it had offered them; a load-time band; a failure reason; how long the route results were open, to the nearest band; from version 1.4, which map layer (Schools, Home values or the crime shading) was switched on or off, and from where (the map's own controls or, on the Nearby tab, in version 1.4 the Show home values on the map button or the Show schools here button, and from version 1.4.1 the Schools or Home values button on its map, both recorded as the Show schools here button was, so the value for Show home values on the map is no longer sent); each time a school's details are shown, its sector (state or private) and stage (nursery, primary or secondary), or that it publishes none; which school filter you changed (sector, stage, gender, boarding or charter), not what you chose; that you used the Schools in view list, and whether you opened a school from it; and, when you open an area with Home values shown (from version 1.4.1, not when the Home values button on the Nearby tab opens it for you), the kind of figure it has (a sale price, an owners' estimate or none) and whether it is coloured on the map; and a coarse region label (for example US, UK, Canada, or Mexico). TelemetryDeck's software also adds to each signal details of your device and settings, including the device model, iOS version, screen size and orientation; your language, region, locale and time-zone settings, light or dark mode, and accessibility settings such as text size, bold text and reduced motion; the app's version and whether it came from the App Store or TestFlight; the date and hour, and the time the signal was recorded, to the second; a random identifier for the session, which changes each time SafeRoute starts afresh or you come back to it after more than 5 minutes away; and the date TelemetryDeck's software first recorded a session (or, after more than 90 days without one, the date it next recorded one), how many sessions the app has had and on how many days, and how long the last session and the average session lasted. It also sends signals of its own when a session starts and when it detects a new installation. These signals never include your search text, coordinates, addresses, routes, or contacts, or, from version 1.4, which school or area you opened. From version 1.4, the app checks each of its own signals against a fixed list of signal names and values before recording it, and drops any signal that does not match; every signal on that list that version 1.4, 1.4.1 or 1.4.2 can send is described in this section, and the details TelemetryDeck's software adds, above, are not part of that check.

They are not, however, wholly identifier-free, and we would rather say so than imply otherwise. TelemetryDeck assigns each installation a pseudonymous client identifier, derived from the vendor identifier iOS gives us by hashing it on your device, with SHA-256 and no secret salt, so anyone who holds the unhashed identifier, as Mapbox does, could compute it. It is stable across sessions on the same device, which is what lets us tell one returning user from ten new ones. It is not your name, it is not shared with anyone, it cannot be reversed into your identity, it is reset if you delete and reinstall the app, and it is never combined with data from other companies. The vendor identifier it is derived from also goes, unhashed, to Mapbox, whose map software in the app sends it each time a map starts (see "The app's map" above); TelemetryDeck receives only the hashed form, and the app never sends the hashed form to Mapbox. TelemetryDeck does not use advertising identifiers and does not track you across other apps or websites. You can turn this off at any time in the app under About → Usage analytics (called Anonymous analytics before version 1.4). The app then stops recording its own signals at once, and nothing is sent from the next time SafeRoute starts afresh, rather than returning from the background. Until then, TelemetryDeck's software can still send signals the app recorded before you turned it off. In versions before 1.4, it can also send its own signal that a session has started, with the identifier and device details described above, when you come back to the app after more than 5 minutes away; from version 1.4, turning the switch off also stops TelemetryDeck's software from recording signals of its own.

Beyond the usage analytics described above and the website analytics described below, SafeRoute uses no advertising identifiers and no cross-app trackers, and the app is configured with NSPrivacyTracking = false in its Privacy Manifest.

Where an install came from

We advertise SafeRoute on the App Store, and we need to know whether those ads work. On its first launch, and if it has no answer, on up to four later launches, the app asks iOS for an attribution token using Apple's own AdServices framework and sends it to api-adservices.apple.com, which answers whether this install followed one of our Apple Search Ads. We keep two things from that answer: a single label — appleSearchAds, organic, or unknown if it has asked on five launches without an answer — and, where Apple supplies one, the numeric campaign identifier. Everything else Apple returns is discarded on the device.

This is Apple's own measurement API, not a third-party one. It does not use the advertising identifier (IDFA), it requires no App Tracking Transparency prompt, and it describes the advert rather than the person — so it is not tracking as Apple defines it. The resulting label is recorded as one analytics event, which means it carries the same pseudonymous client identifier described above, and it is silenced entirely if you have turned analytics off.

What is in your ears

To decide whether open-ear audio hardware is worth supporting, the app checks which kind of output your audio is currently routed to and records it as one of five broad categories: built-in speaker, wired, other Bluetooth, open-ear glasses, or other. The device's own name for that output — which is free text you may have personalised — is matched on the phone and discarded immediately. It is never stored, never logged and never transmitted; only the category leaves the device, with whether it was read as navigation started or when the output changed. SafeRoute requests no microphone access and records no audio.

Visiting safe-route.app

The website is hosted by GitHub Pages. As with any website, each page your browser loads sends GitHub your IP address, your browser's identification string (which names your browser, operating system and type of device), your language setting, the address of the page, and the page or site you came from if your browser reports one. The same goes for the data files a page fetches as you use it. On the map at /check/, while its Schools or home-values (Prices) layer is switched on, the names of the files it fetches show which squares of the map you are viewing; and after each lookup in an area with home-value data, the page fetches the home-values file for the square, from a few kilometres to about 28 km across, that holds the place looked up. The website serves its own typefaces and code libraries, including the Leaflet map library its map pages use, so loading a page contacts no font or code-delivery service. This policy page is different: GitHub Pages serves it from minhajk21.github.io, and it loads its typefaces from Google Fonts (fonts.googleapis.com and fonts.gstatic.com), which receive your IP address, the same browser details and, normally, only that the request came from this page's site (section 06).

The website sets no cookies. It stores nothing in your browser beyond its ordinary cache of the pages, images and other files it has loaded — no database, no service worker — unless you opt out of its analytics (see "Website analytics" below), in which case it keeps one on/off flag in your browser's local storage. That flag is the same for everyone who opts out, so no stored identifier follows you from one page or visit to the next.

Links to the App Store carry a label naming where on the site the link sits (for example web-home), so that Apple's App Store Connect can tell our placements apart; Apple receives the label, and your IP address, only if you click. On iPhone and iPad, our pages also carry a tag that lets Safari show Apple's Smart App Banner for SafeRoute. The tag gives Safari only our app's ID; Safari gets everything else the banner shows from Apple, and may contact Apple's App Store when a page loads to do so. We receive nothing from the banner. What Apple receives, from a click or from the banner, is covered by Apple's privacy policy.

Website analytics

Unless your browser sends a Global Privacy Control signal or you have opted out (see below), every page on the website loads Cloudflare Web Analytics, a cookieless visit counter. When a page loads, and again when you leave it, the script sends Cloudflare:

As with any request, Cloudflare also receives your IP address, your browser's identification string and your language setting. The script does not send what you type into the website, and it sets no cookie and stores nothing on your device. Cloudflare states that this product uses no client-side state such as cookies or local storage, and that it does not fingerprint visitors for the purpose of displaying analytics. We look at the results only as totals, such as a daily summary of the most-visited pages, the sites visitors came from, and visitors' countries, with automated traffic excluded.

You can say no to this without contacting us, and nothing on the website depends on it:

Blocking cloudflareinsights.com in your browser or with a content blocker also stops it.

Checking an address on the website

The map at safe-route.app/check/ sends what you type in its search box to our backend as you type — after each short pause, once you have typed two characters — so unfinished text is sent, not only the search you settle on. With each search it normally also sends the point at the centre of the map, rounded to about 100 m, so that places near what you are viewing rank first: before your first lookup, that point is usually in the region the map opened on; after one, it is in the area you are looking at, which may be around your own location. Our backend passes the text and that point to Mapbox to find matching places; Mapbox receives them from our server, not from your browser, and does not get your IP address. A search typed on the home page is normally carried to /check/ after a # in the page address, a part that browsers do not send to any server; /check/ removes it as it opens and then sends it to our backend like any other search. If JavaScript is turned off in your browser, the home-page box instead sends your search to GitHub as part of the page address (/check/?q=…).

When you pick a place or one of the examples, the page rounds that point to about 100 m (three decimal places) and sends it to our backend to fetch the crime summary for the area. Choosing a city under Where it works, or its dot on the map, sends that city centre's fixed coordinates in the same way. After a lookup, moving the map sends the new map centre, rounded in the same way, for the same purpose and to name the area. Our backend handles these as it does for the app: for most cities, a box about 2 km across, centred on the point, goes to that city's crime-data source, and the map centre goes to Mapbox for a place name. A point outside the areas we cover goes to no crime-data source. In the UK, the area we cover is England, Wales and Northern Ireland, the area data.police.uk holds (section 06). For the recent 911 calls, the page then sends only a short key naming the city or area our backend matched (for example seattle), not a point. For the street cameras, it asks which cameras are near the point rounded to about 1 km, and then asks for each still or clip by camera and city alone. Our server sends nothing about you on to those sources, but for the street cameras of New York City's Department of Transportation (NYC DOT), your browser then fetches each picture from NYC DOT itself (see "Street cameras on the website" below).

Nothing is sent to our backend until you search, pick a place or a city, or press the location button. The neighbourhood search boxes on the home page and on the city pages under /safety/ work entirely in your browser and send what you type nowhere. /tonight/ asks our backend for recent 911 calls in seven fixed cities as it opens, which tells us nothing about you beyond what any request carries.

Your location on the website

/check/ asks your browser for your location only when you press its location button, never when the page loads, and no other page on the website asks for it. If you allow it, the page does not ask your browser for its high-accuracy mode, and it rounds the position your browser returns to about 100 m before sending it to our backend to look up that area, as above. If you decline, nothing is sent.

The website's map

The map pages draw their map from images that your browser downloads directly from Mapbox (api.mapbox.com). Each image covers a fixed square of the map, so Mapbox receives your IP address and browser details together with the areas you look at, and the set of squares fetched shows where your view is centred. After a lookup — including one of your own location — the squares range from a few kilometres down to a few hundred metres across, and are smaller still if you zoom in. /check/ opens on a region chosen from your device's time zone; the time zone itself is not sent anywhere.

Street cameras on the website

As in the app, camera stills and London clips on /check/ are fetched by our server, so the transport authority never sees you, except the stills from NYC DOT's street cameras. Your browser asks our backend for each one by camera and city alone, with no point, and each request is written to our request log; while a Las Vegas still is open it is refreshed about once a minute, and each refresh is a new request. For an NYC DOT camera, NYC DOT's server does not answer ours, so our backend answers only with where to fetch the picture, and your browser then loads it directly from NYC DOT (nyctmc.org), each time it loads or refreshes. NYC DOT therefore receives your IP address, your browser details and which camera you opened. Your browser is told not to send a referrer, so NYC DOT is not told which page you were on (section 06). Live video works differently, again as in the app: it is played directly from the video service the camera's authority uses (511NY / NYSDOT for New York, Nevada DOT for Las Vegas), so that service receives your IP address, your browser details and that the request came from safe-route.app. The small video-player library (hls.js) that plays it comes from our own website. And because the still shown while the video starts comes through our server, our server can tell which live camera you opened on the website.

04What we do not collect

To remove ambiguity, SafeRoute does not collect:

05Why we use this information

Under Article 13 UK GDPR, we are required to tell you why we process your data and the lawful basis we rely on. Our processing is grounded in the following bases under Article 6(1) UK GDPR:

Purpose Data used Lawful basis
Computing walking routes between origin and destination GPS coordinates Performance of a contract Art. 6(1)(b) — you cannot use a navigation app without sending coordinates to a routing service.
Showing crime context along candidate routes Your device's location, or the point you look up, and a box around it or around the route Legitimate interests Art. 6(1)(f) — providing the crime-context feature you opened the app for.
Showing how much of each candidate route runs along streets that OpenStreetMap marks as lit, or as unlit (street lighting) The candidate routes and a box around them, widened by about 300 m, which our server sends to the Overpass servers (section 06); from the server update that switches on our own copy of OpenStreetMap data (section 13), it works the lighting out from that copy instead, and sends the box only for some routes outside our covered regions, except in the cases section 03 describes ("Places that can help, and street lighting"). From version 1.2.1, the app sends the routes back to our backend for this once they are found; versions 1.1.0 to 1.2.0 ask for it in the route request itself Performance of a contract Art. 6(1)(b) — part of every comparison of routes you ask for when you plan a walk, worked out only from the routes you asked us to find.
Geocoding place searches Search query text; in the app, your current location if you allow it, to rank nearby results Performance of a contract Art. 6(1)(b)
Finding places near you that can help (Find Help, on your phone or on Apple Watch, and the Nearby tab) Your location, or the point you look up on the Nearby tab; on Apple Watch, in versions before 1.4, the last position recorded during a navigation (section 03) Performance of a contract Art. 6(1)(b)
Showing the app's maps and guiding you along a route, with Mapbox's map and navigation software in the app and, from version 1.4.2, drawing the large Home Screen widget's map with Mapbox's Static Images API Your IP address and device details; the areas of map you view; from version 1.4.2, for the large widget's map, a point a fixed distance east of the centre of the area it shows, both to about 100 m, the zoom and the crime cells drawn on it; the route you navigate, with the names of its start and destination (in some cases, of its stops too), and in some cases your position and direction of travel; the identifier iOS assigns to the app on your device, in each usage check-in; and, only if you switch on Mapbox Telemetry or, from version 1.4, About → Mapbox map data (in versions 1.0.0 and 1.0.1, unless you switch it off), your location, details of your device and walks, and, in versions before 1.4, anything you send with Mapbox's Report button or "Rate your trip" screen (section 03) Performance of a contract Art. 6(1)(b) for the maps and directions you use. Legitimate interests Art. 6(1)(f) for the usage check-ins, which Mapbox's software sends with every map and which Mapbox uses for billing. Your consent Art. 6(1)(a) for what it sends after you choose Participate under Mapbox Telemetry or, from version 1.4, turn on About → Mapbox map data: you can withdraw it at any time by choosing Stop Participating in the same menu or, from version 1.4, by turning that switch off. In every version from 1.0.2 and before 1.4, it ends when SafeRoute next starts; from version 1.4, it lasts until you withdraw it, and version 1.4 switches it off once, the first time it starts, so a choice made in an earlier version does not carry over. Legitimate interests for what versions 1.0.0 and 1.0.1 send while that telemetry is on without your having chosen it. We have not yet assessed these legitimate-interests uses in writing (see below).
Telling you, on your iPhone and on Apple Watch, when you leave the route you chose Your position during navigation and the route you chose, compared on your iPhone; the comparison sends nothing to our servers Performance of a contract Art. 6(1)(b)
Showing a walk you share to the people you send the link to (Share my walk) Your destination's name, your planned route and estimated walking time; with Live location, your position, with its time, about every 15 seconds while you navigate; from version 1.4, that you arrived and, if you choose Go in Find Help, that place's name and location and, with Live location, the route to it and its estimated walking time Performance of a contract Art. 6(1)(b) — it is the service you ask for when you make the link.
Delivering the page that shows a shared walk to the people who open its link Their IP address and browser details (through Cloudflare and Render); the map areas their browser fetches (through Mapbox) Legitimate interests Art. 6(1)(f) — showing the walk the sender asked us to show. We have not yet assessed this use in writing (see below). Update, 18 October 2026: on 17 October 2026 we assessed it in writing; see below for what we found.
Backend security, abuse prevention, rate limiting, and keeping the service working The request log (the time and address of each request, with any search text reduced to its length and coordinates cut to about 1 km); the IP address each request arrives from, held in memory for one to two minutes Legitimate interests Art. 6(1)(f) — protecting the service from abuse.
Understanding which features are used, and catching failures Event signals and the coarse values they carry (section 03), and the details of your device and settings that TelemetryDeck's software adds, with the time of each signal, to the second; a pseudonymous per-installation identifier and a random identifier for each session Legitimate interests Art. 6(1)(f) — improving a free safety app we cannot otherwise observe in use. You can withdraw at any time via About → Usage analytics (called Anonymous analytics before version 1.4), which stops the app recording its own signals at once (from version 1.4, TelemetryDeck's own signals too), and all processing from the next time the app starts afresh (section 03).
Measuring whether our App Store adverts produced an install An Apple attribution token; the resulting label and campaign id Legitimate interests Art. 6(1)(f) — knowing whether money spent on advertising works. Apple's own API, no advertising identifier, no cross-app tracking; covered by the same analytics opt-out.
Serving the website and this policy page IP address, browser details (identification string and language), the address of the page requested Legitimate interests Art. 6(1)(f) — publishing a free public-safety website. Your browser sends these with every request. The website serves its own typefaces and code libraries; this policy page loads its typefaces from Google Fonts (section 06).
Counting website visits and catching slow pages Page address without search terms, the page or site you came from, browser version and identification string, language, performance measurements, IP address Legitimate interests Art. 6(1)(f) — knowing which pages are read and whether they load quickly. No cookies and no identifier beyond a single page view. It does not run if your browser sends Global Privacy Control, and you can switch it off at safe-route.app/privacy-choices/, which stores one on/off flag in your browser and nothing else (section 03).
Showing street cameras in the app's Live tab Your location, or the point you are viewing (from version 1.4 rounded on your phone to about 1 km; earlier versions send it to about 1 m, which our server rounds to about 1 km as it arrives), to list the cameras near it; the camera you open; when you open an NYC DOT camera or a live video, your device's IP address and device details, which your device sends to NYC DOT or to the video service (section 06) Legitimate interests Art. 6(1)(f) — showing the cameras you asked to see.
Answering an address or location check on the website, with its map and street cameras Search text; the coordinates, rounded to about 100 m, of a place or city you pick, of the map's centre, or — only if you allow it — of your device; the map areas you view; the camera you open; when you open an NYC DOT camera or a live video, your IP address and browser details, which your browser sends to NYC DOT or to the video service (section 06) Legitimate interests Art. 6(1)(f) — giving you the answer you asked for. The page contacts our backend only after you search, pick a place or a city, or press the location button.

We have considered the balancing test for each "legitimate interests" use and concluded, except as set out below, that the limited processing involved is proportionate to a clear user-facing benefit. For the website's uses, we carried out that test in a written legitimate interests assessment dated 27 September 2026. That assessment also found one exception in the app: the area check that versions before 1.3.8 make when iOS relaunches them in the background for Area heads-up (section 03), which the alerts do not need; version 1.3.8, released on 1 October 2026, no longer makes it. Until 17 October 2026, that assessment did not cover Share my walk: we had not carried out the test in writing for the page that shows a shared walk to the people who open its link, including what their browsers send to Mapbox for the map. It still does not cover what Mapbox's software in the app sends to Mapbox (section 03): we have not yet carried out the test in writing for its usage check-ins, or for what versions 1.0.0 and 1.0.1 send while Mapbox Telemetry is on without your having chosen it. Update, 18 October 2026: for the page that shows a shared walk, we carried out that test in writing on 17 October 2026, in a revision of that assessment. It found that the page passes the test from 17 October 2026, when it stopped using Mapbox's map library (section 13). Until then, the usage events that the library sent Mapbox from viewers' browsers, and the random identifier it kept there for them, did not pass: they were not necessary to show the walk, and the identifier was stored in viewers' browsers without their consent. Update, 23 October 2026: on 19 October 2026 we carried out that test in writing, in a further revision of that assessment, for what changes on the page from version 1.4, which is not yet on the App Store on this date. That includes what happens after you choose Go in Find Help while sharing a walk (section 03): the page shows the place you chose, and the viewer's browser asks Mapbox for the map images around it. It found that the page still passes the test. The place, and with Live location the route to it, are needed to show your contact where you are heading. With Route only, the place shows roughly where you are, which the share otherwise shows only as the planned route; you choose that by tapping Go, after the app tells you that your contact will see where you are heading. The link's lifetimes do not change, and the only thing Mapbox receives in addition is the requests for the map images of one more area, with nothing stored in the viewer's browser. You can object to legitimate-interests processing at any time (see Section 9).

06Who we share your information with

To deliver the app and the website, your data is processed by a small number of named third parties. We do not sell, rent, or monetise your data, and we share only what is necessary for each subprocessor's specific function. The exception we know of is Mapbox's: in the app, Mapbox's map software sends Mapbox its own usage telemetry if you switch it on in a map's ⓘ menu or, from version 1.4, with About → Mapbox map data, and, in versions 1.0.0 and 1.0.1, unless you switch it off in that menu (section 03). Until 17 October 2026 there was a second: the Mapbox map library that the page showing a shared walk used sent Mapbox usage events, with a random identifier it kept in the viewer's browser. Since 17 October 2026 that page draws its map another way, as the website's map pages do, and sends Mapbox none (see Mapbox below and section 13).

If you share a walk, the people who have the link, and anyone they pass it on to, can see what section 03 describes under "Share my walk". They are not subprocessors, and we do not know who they are. The app you send the link with handles the message, which names your destination, under its own terms.

Subprocessor What they receive Purpose Where
Mapbox, Inc. Origin and destination coordinates and search queries; in the app, your current location with each search, to rank nearby results; for the website, the centre of the map with each search, rounded to about 100 m, for the same purpose, and the map centre, rounded in the same way, when you move the map, to name the area (our server sends website searches and map centres without your IP address). On the website's map pages your browser downloads map images from Mapbox directly, so Mapbox also receives your IP address, browser details and the areas of map you view. From the app, Mapbox's map and navigation software sends Mapbox directly, with your device's IP address: your device model and iOS version, the app's name and version, and a billing token part of which stays the same while the app is installed; the areas of map you view; each time a map or navigation starts, a usage check-in carrying the identifier iOS assigns to the app on your device, unhashed, and the location access you gave the app; when you navigate, the route you chose (up to 100 points from its start, which is usually where you are), with the names of its start and destination, and the text of each spoken direction; if Mapbox cannot use that route (in versions before 1.2.1, always), your start, any stops and your destination, with their names, and your current position and direction of travel when you leave the route, and from time to time as you walk; and, only if you switch on Mapbox Telemetry in a map's ⓘ menu or, from version 1.4, About → Mapbox map data (in versions 1.0.0 and 1.0.1, unless you switch it off), your location, details of your device and walks, and, in versions before 1.4, anything you send with Mapbox's Report button or "Rate your trip" screen, including a screenshot (section 03). From version 1.4.2, the large Home Screen widget asks Mapbox directly, with your device's IP address, for pictures of the map of the area it shows: a point a fixed distance east of the centre of that area, both to about 100 m, the zoom and the crime cells drawn on it, with the app's access token, which is the same for every install, and no identifier of your device (section 03). When someone opens a link to a walk you share, their browser downloads the map's images straight from Mapbox (api.mapbox.com): square images of the area on screen, which opens around the start of your route and then fits the whole route or, from version 1.4, after you choose Go in Find Help, the place you chose, any new route and, with Live location, your latest position (and covers any other area they move the map to), so these requests show Mapbox roughly where the walk is. They carry the viewer's IP address, browser identification string and language setting, and our backend's web address, without the page's path, as the site making the request; the address of each image also holds our public map key and says whether the viewer's browser or device is set to a light or dark appearance and whether its screen is high-resolution. Your route line, your destination, your positions and the link's code are never sent to Mapbox: the page draws the walk in the browser, and it asks for each image without a referrer, as our server tells browsers to do for the whole page. The map's credits link to Leaflet, Mapbox and OpenStreetMap, whose pages open only if the viewer taps them, and pass on no place and no referrer. Since 17 October 2026 the page runs no code from Mapbox: it draws the map with the Leaflet library, served by our backend, so it sends Mapbox no usage events and stores nothing for Mapbox in the viewer's browser. No cookies are set or sent. Until 17 October 2026, the page loaded Mapbox's map library, with the map style and fonts and a map session, and the library sent Mapbox usage events with a random identifier that it kept in the browser's local storage (section 13). Walking-route directions; map tiles; geocoding; the app's maps, turn-by-turn navigation and spoken directions, and the usage check-ins Mapbox uses for billing; the large Home Screen widget's map pictures (from version 1.4.2); the map images on the page that shows a shared walk (until 17 October 2026, also its map library's usage events) United States
overpass.ch (Chavdar Dutsov, Switzerland) — a query service for OpenStreetMap data that answers our server under a key of ours; once our server starts asking it (section 13), our server asks it first, before the public Overpass servers below The same as the public Overpass servers below: for nearby help, the fixed map squares, about 2 km across, around the point looked up; for street lighting, a box around the candidate routes, widened by about 300 m. Our server sends these without your IP address. Each request also carries our server's key for overpass.ch, which identifies our account, not you or your device. overpass.ch states that it does not store the content of queries, but it keeps its answers in a cache for 60 seconds, and a hash of each query for 30 days (section 08). From the server update that switches on our own copy of OpenStreetMap data (section 13), our server sends overpass.ch only map squares and route boxes outside our covered regions, except in the cases section 03 describes ("Places that can help, and street lighting"). Nearby safe-place lookups (Find Help and the Nearby tab) and street-lighting coverage along candidate routes; from the server update that switches on our own copy (section 13), for map squares and route boxes outside our covered regions (section 03) Switzerland, where its operator is; its servers are in the EU (overpass.ch says Finland, and said Germany when we checked on 31 October 2026; on that day and on 4 November 2026, api.overpass.ch resolved to an address in Hetzner's Helsinki data centre, in Finland)
Public Overpass API servers (OpenStreetMap France; overpass.kumi.systems, which is run by Private.coffee, an association in Graz, Austria, not by Kumi Systems, as this policy said from 29 September 2026 (section 13); and overpass-api.de) — public query services for OpenStreetMap data. Our server asks them one at a time, in turn (for street lighting, from the server update announced in section 13 on 31 October 2026; until then, it asks all three at once), and, once it starts asking overpass.ch (section 13), only when overpass.ch cannot answer For nearby help, the fixed map squares, about 2 km across, around the point looked up; for street lighting, a box around the candidate routes, widened by about 300 m. Our server sends these without your IP address. From the server update that switches on our own copy of OpenStreetMap data (section 13), it sends them only map squares and route boxes outside our covered regions, except in the cases section 03 describes ("Places that can help, and street lighting"). Nearby safe-place lookups (Find Help and the Nearby tab) and street-lighting coverage along candidate routes; from the server update that switches on our own copy (section 13), for map squares and route boxes outside our covered regions (section 03) France, Austria, Germany and Finland (Europe)
data.police.uk (UK Home Office) The corners of a box around the route or area being looked up, and points on a grid across it; for an area lookup, this includes the point looked up (the website rounds it to about 100 m first). We use it only for lookups in England, Wales and Northern Ireland and their coastal waters: an area centred there, or a route whose box is centred there. Near the border with Scotland or the Republic of Ireland, a grid point that would fall on the other side is replaced by points on our side, so every point it receives is in England, Wales, Northern Ireland or their coastal waters. Lookups anywhere else go to no crime-data source. Until 27 September 2026, this was our fallback for places outside the areas we cover; until 28 September 2026 it also received lookups anywhere in the rectangle our UK area then used, including Scotland, the Isle of Man, the Republic of Ireland and part of northern France; and until 29 September 2026, grid points across those borders (section 13). Public crime statistics retrieval (United Kingdom) United Kingdom
NYC Open Data (City of New York / NYPD) The corners of a box around the route or area being looked up; for an area lookup, the box is centred on the point looked up, as the app or the website sent it (the website rounds it to about 100 m, and the box there is about 2 km across) Public crime statistics retrieval (New York) United States
US city open-data portals — each covered city's official municipal open-data portal (Chicago, San Francisco, Boston, Seattle, Philadelphia, Washington D.C., Denver, Los Angeles, San Diego, Long Beach, Dallas, Detroit, Baltimore, Memphis, Charlotte, Nashville, Minneapolis, Cleveland, Tucson, Fort Worth, Hartford, Kansas City, Houston, New Orleans, and Las Vegas; the respective city police departments) The corners of a box around the route or area being looked up; for an area lookup, the box is centred on the point looked up, as the app or the website sent it (the website rounds it to about 100 m, and the box there is about 2 km across). Fort Worth, San Diego and the 911-dispatch datasets receive no coordinates: we download them for the whole city. Public crime statistics retrieval (covered US cities), including the live 911-dispatch datasets a city offers (New Orleans, San Francisco, Cleveland, Minneapolis, Detroit, Seattle, Las Vegas) United States
Canadian police open data — Toronto Police Service (Public Safety Data Portal) and the Vancouver Police Department The corners of a box around the route or area being looked up; for an area lookup, the box is centred on the point looked up, as the app or the website sent it (the website rounds it to about 100 m, and the box there is about 2 km across) Public crime statistics retrieval (Toronto, Vancouver) Canada
Transport for London (TfL) — JamCam street-camera imagery for the London live-camera layer ("Powered by TfL Open Data") Camera identifiers only — image and clip requests are made by our server, never by your device Street-camera stills and short clips (London) United Kingdom
City of Toronto — RESCU traffic-camera imagery via the city's open-data portal (Open Government Licence – Toronto) Camera identifiers only — image requests are made by our server, never by your device Street-camera stills (Toronto) Canada
City of Vancouver — traffic-camera imagery via the city's open-data portal (Open Government Licence – Vancouver) Camera identifiers only — image requests are made by our server, never by your device Street-camera stills (Vancouver) Canada
511NY / New York State Department of Transportation — highway- and bridge-camera imagery for the New York live-camera layer Camera identifiers only — image requests are made by our server, never by your device Street-camera stills (New York) United States
New York City Department of Transportation (NYC DOT) — street-camera imagery for the New York live-camera layer, from nyctmc.org Your device's IP address, because your device, in the app or on the website, loads these stills directly from NYC DOT: NYC DOT's server does not answer ours, so we cannot fetch them for you. Our server only tells your device where to fetch each picture, and sends NYC DOT nothing about you. With each request NYC DOT receives the address of the single camera picture you opened and your device's details: its identification string (in the app, naming SafeRoute and its build number, with version numbers from which your version of iOS can be worked out; on the website, your browser's) and your language setting. No account, identifier or location is sent, but the picture's address names the camera's street corner, so it shows roughly where you are looking; in the app's Live tab, that is usually near you. NYC DOT's cameras are the ones named by intersection, such as "9 Ave @ 45 St". The app sends no referrer, and on the website your browser is told not to send one, so NYC DOT is not told which page you were on. Each load or refresh of the picture is a new request; in the app, from version 1.4, the picture refreshes about every 15 seconds while the camera is open (about every 6 seconds in versions before 1.4). NYSDOT's stills still come through our server (row above). Street-camera stills (New York City) United States
Nevada Department of Transportation (NVRoads 511) — street-camera imagery for the Las Vegas live-camera layer Camera identifiers only — image requests are made by our server, never by your device Street-camera stills (Las Vegas) United States
Live camera video — streamed directly from the video service used by the transport authority that operates the camera (Nevada DOT for Las Vegas; 511NY / NYSDOT for New York) Your device's IP address, because live video is played directly by your device rather than relayed by our server. No account, identifier, or location is sent — only the address of the single camera you opened, your browser details and, from the website, that the request came from safe-route.app. In the app, our server is not involved while the video plays, so we do not see which camera you chose; if the stream fails, the app falls back to the still, which does come through our server. On the website, the still shown while the video starts comes through our server, so we can see which camera you opened; the video-player library the page uses comes from our own website. A live stream cannot be cached, so relaying it through our server would add cost and delay without hiding anything more than the address itself; if you would rather not connect, do not open a camera — stills stay on the relayed path above, except NYC DOT's, which your device loads from NYC DOT itself (see its row above). Live street-camera video (Las Vegas, New York) United States
Hoyo de Crimen (api.hoyodecrimen.com) — an independent open API that republishes the Mexico City public prosecutor's (Fiscalía General de Justicia, FGJ) open crime data Point and radius coordinates only Public crime statistics retrieval (Mexico City) Internet (independently operated)
TelemetryDeck Event and performance signals, with the details of your device and settings that TelemetryDeck's software adds, the time of each signal (to the second), a pseudonymous per-installation client identifier and a random identifier for each session; no search text, coordinates, addresses, routes or contacts, and, from version 1.4, not which school or area you opened (section 03) Usage analytics (opt-out in app) Germany (EU)
Render Services, Inc. All backend traffic, including your IP address, which reaches Render through Cloudflare's network; our request log, which records the time and address of each request, with search text reduced to its length and coordinates cut to about 1 km, and not your IP address; while a walk you share lasts, its destination, route, estimated time and positions, held in memory, and the IP address of anyone who opens its link Hosting our backend and keeping its logs (about 7 days) Germany (Frankfurt)
Apple Inc. App distribution; crash reports if you opted in; an Apple Search Ads attribution token (AdServices), on first launch and, if Apple has no answer yet, on up to four later launches (section 03). From the app, through Apple's map services (Apple Maps): your current location, to name your area on the Nearby tab; the point of an alert, to name its street and area; and the areas of map shown in alerts and, in versions before 1.4.2, in the widget, to draw them (section 03). From the website: if you click an App Store link, your visit and the link's placement label; on iPhone and iPad, Safari may contact Apple to draw the Smart App Banner (section 03). iOS / watchOS platform services, including Apple Maps Various
GitHub, Inc. — GitHub Pages, which hosts the website and this policy page Your IP address and browser details; the address of each page and data file your browser requests (on the map at /check/, the schools and home-values files show which map squares you view, and which square holds a place you look up; section 03); the page or site you came from, if your browser reports one Hosting safe-route.app and this policy. GitHub states that it logs and stores visitors' IP addresses for security purposes. United States
Cloudflare, Inc. — Web Analytics on the website, and the network in front of our backend host, Render Website, unless your browser sends Global Privacy Control or you have opted out: the measurements listed in section 03, your IP address, your browser's identification string and your language setting — no cookies and no search text. Backend: every request from the app and the website, and from the browser of anyone who opens a link to a walk you share, passes through Cloudflare's network on its way to Render, including your IP address or theirs. Counting website visits; carrying traffic to our backend United States (global network)

Each subprocessor handles your data under their own privacy policy. Mapbox and Render are subject to their own contractual data-protection terms with us. Apple's privacy practices are governed by their public privacy policy.

When you read this policy page, your browser also fetches its typefaces directly from the service below, which handles those requests under its own privacy policy. The website itself serves its own typefaces and code libraries.

Service What they receive Purpose Where
Google LLC — Google Fonts Your IP address and browser details, and that the request came from this policy page Typefaces for this policy page United States

07International transfers

Because the data controller (Minhaj Khan) is based in the United States, your personal data is processed in the U.S. by us and by Mapbox. Our backend infrastructure runs in Germany; requests to it pass through Cloudflare's network, which our host Render uses in front of its servers. The app's maps and navigation, and from version 1.4.2 the large Home Screen widget's map, also connect your device directly to U.S.-based Mapbox (section 03). When you use the website, your browser also connects directly to U.S.-based GitHub, Cloudflare and Mapbox, and, when you open an NYC DOT camera or a live video, to NYC DOT or the live-video service (see below); when you read this policy page, to GitHub and Google. When someone opens a link to a walk you share, their browser connects to our backend through Cloudflare, and directly to U.S.-based Mapbox for the map's images (section 06); until 17 October 2026, also for the usage events of the Mapbox map library the page then used.

Transfers from the UK to the European Economic Area (our backend's servers in Frankfurt, TelemetryDeck, the public Overpass servers in France, Austria, Germany and Finland and, once our server starts asking it (section 13), overpass.ch's servers in the EU) rely on the UK's adequacy regulations for the EEA, and, from that day, transfers to overpass.ch's operator, in Switzerland, rely on those for Switzerland: under Schedule 21 to the Data Protection Act 2018 (paragraphs 4 and 5), transfers to an EEA state, and to Switzerland under the European Commission's Decision 2000/518/EC, are treated as approved by regulations made under Article 45A UK GDPR. From the server update that switches on our own copy of OpenStreetMap data (section 13), our server sends the Overpass servers, overpass.ch included, only map squares and route boxes outside our covered regions, except in the cases section 03 describes ("Places that can help, and street lighting"). The UK has no general adequacy regulation for the United States, but since 12 October 2023 the UK–US "data bridge" has allowed transfers to U.S. organisations certified to the UK Extension to the EU–US Data Privacy Framework. Our U.S. recipients — GitHub, Inc.; Cloudflare, Inc.; Mapbox, Inc.; Render Services, Inc.; and Google LLC (for the typefaces on this policy page, which the website also used until 27 September 2026, and, from 10 August to 26 September 2026, for Gmail, which carried the status emails described in section 13) — are each certified to the UK Extension, so transfers from the UK to them rely on the UK–US data bridge. Render is a U.S. company, although our backend runs on its servers in Germany. We checked these certifications on the Data Privacy Framework List (dataprivacyframework.gov) on 27 September 2026.

The safeguards above do not cover three cases. First, our server sends the public crime-data services named in section 06 in the United States and Canada, and Hoyo de Crimen for Mexico City, at most the coordinates of the area or route being looked up, with no IP address or identifier. These are open-data services that we query, run by public bodies or, in Hoyo de Crimen's case, by an independent republisher of public data; they are not processors acting for us. Second, your browser contacts the live-video services and Apple directly, the app asks Apple's map services directly for place names and small maps (section 03), and your device, in the app or on the website, contacts NYC DOT directly for its street-camera stills; they handle your request under their own terms. Third, a walk you share is shown to whoever has the link, wherever they are, because you chose to send it to them.

You can request a copy of the safeguards in place by emailing minhaj@safe-route.app.

08How long we keep your information

We keep your information only as long as necessary to provide the service:

We keep no account, profile or identifier for you on our servers; a walk you share is held under a random code, not linked to you or to any other link you make, until it is deleted as above. Our request log and caches are not linked to you by any identifier, but we treat a precise location you look up as personal information, because it can reveal where you are.

09Your rights under UK GDPR

You have the following rights regarding your personal data. Because we hold no persistent identifiers tying you to specific records, some rights may be inapplicable in practice — but you can always invoke them and we will respond. While a walk you share lasts, its link identifies its record. These rights also apply to people who open a link to a shared walk.

To exercise any of these rights, email minhaj@safe-route.app with the words "Privacy request" in the subject line. We will respond within one calendar month.

10Children

SafeRoute is a general-audience navigation app and website. It is not directed at children under 13 and we do not knowingly collect any personal information from children under 13. SafeRoute may be downloaded and used by older minors (13–17) on their own devices; in that case, the same minimal data practices described in this policy apply.

In line with the "children's higher protection matters" duty added to the UK GDPR by the Data (Use and Access) Act 2025, we have considered the needs of minors who may use the app or the website. SafeRoute does not contain advertising, in-app purchases, social features, profiling, or content unsuitable for minors. The one feature that shows anything about you to other people is Share my walk (section 03). It works the same way for every user: nothing is shared until you make a link, the link carries no name or account, and the walk is deleted within hours (section 08); but Live location is selected unless you change it, so a link you send shows your position while you navigate. We do not target children with marketing.

11Security

We protect your data using:

No system is 100% secure. If we ever became aware of a personal data breach affecting users, we would notify the ICO within 72 hours under Article 33 UK GDPR, and notify affected users without undue delay if the breach posed a high risk to their rights.

12Right to complain

If you believe we have not handled your personal data appropriately, you have the right to lodge a complaint with the Information Commissioner's Office (ICO):

We would prefer the chance to address your concern first — please email minhaj@safe-route.app.

13Changes to this policy

We may update this policy from time to time, for example to reflect changes to our app, our subprocessors, or applicable law. Material changes will be reflected by a new "Updated" date at the top of this document. Significant changes that introduce new processing purposes will be communicated through an in-app notice before the new processing begins; because the website cannot notify you, changes that affect it will be published on this page before they take effect.

Correction, 29 September 2026. Until this update, this policy did not cover the website, even though the website linked to it, and the website's processing began before we disclosed it: GitHub Pages hosting and Google Fonts from the website's first version in May 2026; the tag for Apple's Smart App Banner from 2 July 2026; the address-check map — search, location, the Leaflet library from unpkg, and map images from CARTO — from 25 July 2026; Cloudflare Web Analytics from 2 August 2026; live camera video on the website, with hls.js from jsDelivr, from 25 August 2026; map images from Mapbox, replacing CARTO, from 27 August 2026; and the map position, rounded to about 100 m, that the address-check map sends with each search, from 26 September 2026. CARTO received your IP address and the map areas you viewed during that period; it receives nothing now. Until 27 September 2026, the website also loaded its typefaces from Google Fonts and its code libraries from unpkg and jsDelivr, which received your IP address and browser details, and the address-check map sent the points you looked up, and your location if you shared it, without rounding them. Since then the website serves those files itself, and the map rounds these points to about 100 m before sending them.

Several statements about the app and our backend were also wrong, some of them since this policy was first published on 6 May 2026:

Correction, 30 September 2026. Dates in this correction, like every mention of 30 September 2026 in this policy, are in US Eastern time. This policy did not describe Share my walk; what we published about the feature in the app, on the page your recipients see, on our support page, home page and other website pages, and in our App Store description and release notes was wrong; the app's own screens, our home page and our release notes were wrong about the app's alerts, the app's screens and our home page about where your location goes and about its analytics, and our home page said there was no advertising; this policy has never said how precisely two of our server's caches are keyed; and our update of 29 September 2026 described our request log wrongly and misdated a problem with area summaries:

The same fault means the app has never shown the check-in it was meant to show when you arrive. That check-in includes Street Feel, an optional question about how the walk felt, which would send our backend the small map cells along your route, each about 150 m from north to south and, depending on how far north you are, 85 to 145 m from east to west (except the first and last), whether it was day, evening or late, your answer and a pseudonymous key for your device. No released version has asked it or sent anything for it, although our release notes for version 1.3.2 said otherwise (see "Release notes" above). We will fix the fault in version 1.3.9. Because that will also change how sharing ends, we will update sections 03 and 08 and our support page, and describe Street Feel in this policy, before that version is released. Update, 4 October 2026: that version will be numbered 1.4, not 1.3.9, and these commitments now apply to version 1.4 (see the correction of 4 October 2026 below). Update, 23 October 2026: version 1.4, which is not yet on the App Store on this date, fixes the fault, and sections 03 and 08 now describe how sharing ends from that version, as does our support page. When you arrive, version 1.4 shows the check-in, which offers a ready-made message saying that you arrived safely, for you to send yourself if you want to, but it does not ask the Street Feel question and sends nothing for it. We said we would describe Street Feel here before that version was released. Because version 1.4 does not ask it, we have not done so; we will describe it here, and show a notice in the app, before any version asks it.

Change, 1 October 2026. Dates in this note are in US Eastern time. Until 29 September 2026, 511NY passed the pictures from NYC DOT's street cameras through its own server, so our server fetched them from 511NY, just as it fetches every other camera still from its source. That day 511NY moved to a new system and stopped passing them through, and NYC DOT's own server does not answer ours, so those cameras dropped out of our New York camera layer. To bring them back, from 1 October 2026 your device, in the app or on the website, loads their pictures directly from NYC DOT, which therefore receives your IP address and your device's or browser's details. The app sends no referrer, your browser is told not to send one, and our server only tells your device where to fetch each picture (section 06). Stills from NYSDOT's highway and bridge cameras still come through our server. Separately, since 1 October 2026 New York stills on the website are no longer refreshed while they are open, so section 03 no longer says they are.

Correction, 4 October 2026. Dates in this correction are in US Eastern time. One of our commitments has changed, and some of what we published was wrong or incomplete:

Change, 4 October 2026. Dates in this note are in US Eastern time. From today, we delete a shared walk about 30 minutes after sharing stops, and never later than about 4 hours 15 minutes after its link was made. Until today, if sharing stopped between 4 hours and 4 hours 15 minutes after the link was made, we kept the walk for 30 minutes after that, up to about 4 hours 45 minutes in all, as section 08 said; where this section says that a link lasts up to about 4 hours 45 minutes, that was true until today, and where it says that a link keeps working for about 30 minutes after sharing stops, it now does so for at most about 30 minutes. From 4 hours after the link was made, our backend now acknowledges the positions the app sends without keeping them, and the page says that the link is closing, where it used to say that the walk had not updated. When sharing stops, the page now says "Sharing ended" and "The walker ended navigation or stopped sharing". It can also say "Arrived", with how long ago the walker reached the destination, but only if the app reports an arrival, which no released version does (section 03). Update, 23 October 2026: version 1.4 reports arrivals (section 03).

Change, 18 October 2026. Dates in this note are in US Eastern time. Since 17 October 2026, the page that shows a walk you share has drawn its map with the Leaflet library, which our backend serves, from map images that the viewer's browser downloads from Mapbox, instead of with Mapbox's own map library, which the page loaded from Mapbox. The viewer's browser now runs no code from Mapbox, sends Mapbox no usage events, and stores nothing for the page beyond its ordinary cache of the Leaflet files and map images. Mapbox still receives requests for the map images of the area around the walk and of any other area the viewer moves the map to, with the viewer's IP address and browser details and our backend's web address as the site making the request; the page asks for them without a referrer and without cookies, so the link's code is not sent to Mapbox. Until 17 October 2026, as this policy said from 30 September 2026, each time the page loaded, Mapbox's map library sent Mapbox (events.mapbox.com) two usage events, style.load and map.load, and at most once a day a third, appUserTurnstile; the last two carried the library's version and a random identifier that the library kept in the browser's local storage, with a note of when it last reported, and the library also kept a cache of map data in the browser. Until 30 September 2026 it also sent performance measurements with each view, including the browser's screen and window size, connection type, graphics hardware and load timings for the map's files. A browser that opened a link to a shared walk before 17 October 2026 keeps that identifier, note and cache until its data for the site is cleared, although Safari may remove them sooner, after 7 days without interaction with the site; the page no longer reads them or sends them anywhere. A page already open before 17 October 2026 kept Mapbox's map library until it was reloaded or closed. Where this section says that the page's map library keeps a random identifier in the browser of anyone who opens a link (see the correction of 30 September 2026 above), that was true until 17 October 2026. Sections 03, 04, 05, 06, 07 and 08 now say so. We made these changes on 17 October 2026 and published this note on 18 October 2026. Until then, this policy still said that the page used Mapbox's map library, section 05 said that the page had not been assessed in writing, and the correction of 29 September 2026 above said that the nearby-help lookup had no rate limit.

Correction, 18 October 2026. Dates in this correction are in US Eastern time. Backend cache: since this policy was first published on 6 May 2026, it has said that place-of-interest data is cached for up to 24 hours. Until 17 October 2026, each map square of that data stayed in our server's memory until the server restarted or a lookup more than 24 hours after it was fetched replaced it with fresh data; when that fresh fetch failed, we kept using the old data, whatever its age. Since 17 October 2026, no square is kept more than 24 hours after it was fetched, so what section 08 says is now true.

Change, 23 October 2026. Dates in this note are in US Eastern time. Version 1.4 of the app changes what it sends and when. We publish this note before version 1.4 is on the App Store. Sections 02, 03, 05, 06, 08 and 09 describe each change, and say what versions before 1.4, which keep working as before until they are updated, still do:

Update, 30 October 2026: version 1.4 was on the App Store from 23 October 2026 until version 1.4.1 replaced it there on 29 October 2026 (see the change of 30 October 2026 below), so this note and the updates of 23 October 2026 above that call it not yet on the App Store now describe a released version.

Correction, 23 October 2026. Dates in this correction are in US Eastern time. Some of what this policy said about the app was wrong or incomplete:

Change, 30 October 2026. Dates in this note are in US Eastern time. Version 1.4.1 of the app changes the Nearby tab and fixes faults; it collects nothing new and sends nothing to anyone new. We should have published this note before version 1.4.1 was on the App Store, and did not: it has been on the App Store since about 5:09 pm US Eastern time on 29 October 2026, and we published this note on 30 October 2026, the day after it was released. Until then, this policy described the app only as far as version 1.4: in sections 02 and 03, it still referred to the Nearby tab's home-values card, its home-value figures and its Show schools here and Show home values on the map buttons, which version 1.4.1 does not have, and it did not say what version 1.4.1's analytics record when you use its new buttons, or when version 1.4.1 sends Apple Watch its navigation status. Sections 02 and 03 now describe the change to the Nearby tab, and say what version 1.4, which keeps working as before until it is updated, still does:

Change, 31 October 2026. Dates in this note are in US Eastern time. Version 1.4.2 of the app changes where the large Home Screen widget's map comes from, and fixes faults, one of them in navigation. We publish this note before version 1.4.2 is on the App Store; the change takes effect with version 1.4.2. Sections 03, 05, 06, 07 and 08 describe it, and say what earlier versions, which keep working as before until they are updated, still do:

Change, 31 October 2026: Find Help and street lighting. Dates in this note are in US Eastern time. The places that Find Help and the Nearby tab list, and the street-lighting figures on route results, come from OpenStreetMap data that our server asks Overpass servers for (section 06). The public Overpass servers we use now often refuse our server's requests or answer too slowly: since 29 October 2026 at the latest, our server has almost never been able to fetch street-lighting data, so route results almost always show no street-lighting figures, and Find Help often cannot load places where our server has not fetched them in the last 24 hours. Until we build this data ourselves, our server will ask overpass.ch, a keyed Overpass service, first. This note describes the server update that makes these changes. None of it is in effect yet: we publish this note before that update is made, and before our server sends anything to overpass.ch. Our server will start asking overpass.ch no earlier than the update, and perhaps later; we will add to this note the date of each when it happens. Sections 05, 06, 07 and 08 describe the changes:

Update, 1 November 2026: this note said that our server would ask overpass.ch first “until we build this data ourselves”. We now build it, each week (see our change of 1 November 2026 below), but our copy does not answer everywhere, so building it does not end our use of overpass.ch. Until the server update that change describes, this note applies everywhere. From that update, it applies only to map squares and route boxes outside our covered regions (section 03, "Places that can help, and street lighting"), for which our server will ask overpass.ch first, as this note says, with no end date set; inside our covered regions, our server asks neither overpass.ch nor the public Overpass servers, except in the cases section 03 describes.

Update, 1 November 2026: the server update this note describes was made on 1 November 2026, at about 15:15, together with the one in our change of 1 November 2026 below; our server has not yet asked overpass.ch.

Correction, 4 November 2026: our update of 1 November 2026 just above said that the server update this note describes, and the one in our change of 1 November 2026 below, were made at about 15:15. They were made at about 14:15 (19:15 UTC): the clocks went back an hour at 2:00 that morning, at the end of US daylight time, and we gave the time as if they had not.

Update, 4 November 2026: our server has still not asked overpass.ch. It starts asking it on 4 November 2026, no earlier than we publish this update, and we will add to this note the time from which it does. From then, it asks overpass.ch first, ahead of the public Overpass servers, as this note says, but only for what still goes to the Overpass servers after the server update of 1 November 2026 that switched on our own copy (see our change of that date below): map squares and route boxes outside our covered regions that our copy does not answer, and those inside them only in the cases section 03 describes ("Places that can help, and street lighting"). Three passages change with this update. Section 06 now says that overpass.ch says its servers are in Finland: when we checked on 31 October 2026, it said Germany, as section 06 said until this update; on that day and on 4 November 2026, api.overpass.ch resolved to the same address, in Hetzner's Helsinki data centre, in Finland. Once our server asks overpass.ch, if overpass.ch turns a map square for nearby help away only because it is busy, our server uses its note of that square ("Squares that could not be fetched" above) only until it would ask overpass.ch again, if that is sooner than 2 minutes, so section 08 now says that it uses the note for up to 2 minutes. And because our server had sent overpass.ch no requests before that server update of 1 November 2026, there are no records of earlier requests for overpass.ch to keep, so section 08 no longer mentions them.

Update, 4 November 2026: the server update that gives our server its key for overpass.ch was made on 4 November 2026, at about 06:40 (11:40 UTC); since then, our server has asked overpass.ch first, as this note says.

Correction, 31 October 2026. Dates in this correction are in US Eastern time. Some of what this policy said about our OpenStreetMap lookups, and about how long our server keeps what it caches, was wrong or incomplete:

Change, 1 November 2026: our own copy of OpenStreetMap data. Dates in this note are in US Eastern time. We now build, each week, our own copy of the OpenStreetMap data that Find Help, the Nearby tab and the street-lighting figures on route results use, and publish it under the Open Database License at github.com/minhajk21/saferoute-osm-data. This note describes the server update that switches it on. None of the server changes below is in effect yet: we publish this note before that update, which we will make no earlier than 1 November 2026, and we will add to this note the date it is made. The update can be made at the same time as the server update in our change of 31 October 2026 on Find Help and street lighting, or after it; until it is made, what that change describes applies everywhere. Sections 03 ("Places that can help, and street lighting"), 05, 06, 07 and 08 describe the change:

Update, 1 November 2026: the server update this note describes was made on 1 November 2026, at about 15:15.

Correction, 4 November 2026: our update of 1 November 2026 just above said that this server update was made at about 15:15. It was made at about 14:15 (19:15 UTC): the clocks went back an hour at 2:00 that morning, at the end of US daylight time, and we gave the time as if they had not.

The current version of this policy is always available at this URL.

14Contact

For privacy questions, data subject rights requests, or anything else covered by this policy:

Minhaj Khan
Email: minhaj@safe-route.app