How to Find a Brand's Store Locator API Endpoint
Almost every store locator on the web is a client-side widget talking to a JSON endpoint. Developers end up looking for that endpoint for all sorts of reasons: debugging their own locator, auditing what a vendor exposes, understanding why a competitor's locations are not indexed, or working out whether a platform can be integrated with. This is how they work, how to find one, and why you should not build anything durable on one you do not own.
Before anything else. Inspecting a request your own browser already made is ordinary developer work. Systematically harvesting somebody else's location data and republishing it is a different activity, and whether it is permissible depends on that site's terms of service, its robots.txt, and your jurisdiction. This page explains how the technology works. It is not legal advice, and "it was in the Network tab" is not a defence.
Why the data is not in the HTML
View the source of most store locator pages and you will find an empty div and a script tag. The locations are not there. They arrive in a second request after the page loads, usually as JSON, and the widget renders them client-side.
That architecture is why the endpoint exists at all, and it is also the single most important fact about store locator SEO: if the store data only ever appears after a JavaScript request, there is no per-location URL and no indexable content for a search engine to rank. We cover that consequence in the store locator SEO guide.
Finding the endpoint in devtools
- Open the locator page and open devtools, then select the Network tab.
- Filter to Fetch/XHR. This removes images, fonts and stylesheets and usually leaves a handful of requests.
- Run a search on the page — enter a postcode, or allow geolocation. Watch which request fires in response.
- Look for a response with an array of objects containing address-shaped fields. Request URLs commonly contain
stores,locations,locator,storelocator,branches, ordealers. - Check the Headers tab for the method, query parameters, and any authentication header — a lot of endpoints take latitude, longitude and a radius, and some require an API key the widget was issued.
If nothing appears, three common explanations: the store data was server-rendered into the initial HTML (look for a JSON blob inside a script tag), the data was bundled into the JavaScript at build time, or the request fired before you opened the Network tab — reload with devtools already open.
What the responses usually look like
Four shapes cover almost everything you will meet:
- A flat JSON array of locations. The most common by far. Each object carries a name, address components, latitude and longitude, and often hours, phone, and category tags.
- A wrapped response. The same array nested under a key such as
results,data, orstores, usually alongside a count and pagination fields. - A proximity query. Takes latitude, longitude and a radius, and returns only nearby locations already sorted by distance. This is the shape a well-designed locator API uses, because it does not require shipping the whole estate to the browser.
- Legacy formats. JSONP on older sites, XML on some enterprise platforms, and occasionally a rendered HTML fragment that the client injects directly.
Why building on somebody else's endpoint is a bad bet
Set the legal question aside for a moment; the engineering argument is enough on its own. An undocumented endpoint is an implementation detail, not an interface. It carries no compatibility promise, and every one of these happens routinely:
- The response shape changes at the next front-end release.
- It moves behind authentication, or starts requiring a token minted by the page.
- Rate limiting appears, and your integration starts failing intermittently in a way that is miserable to debug.
- The site changes locator vendor and the endpoint disappears entirely.
- The data itself goes stale in ways you cannot see, because nobody owes you a changelog.
If a locator integration matters to your business, it needs a documented API with a versioning story and someone accountable for it.
If it is your own locator, use a real API
The version of this problem worth solving is the internal one: your own systems need your own location data, and reverse-engineering your own widget is a sign the product is missing an interface.
Maptera includes a documented REST API on the Scale plan at $19/month — nearest-store and location endpoints over JSON, with API key authentication — so headless front ends, mobile apps, routing systems and internal tools query a stable interface. See the store locator API overview, the API install guide, and the API docs.
Not building anything? Then you probably want the widget rather than the API — how to add a store locator to any website covers every platform, and the free plan needs no card.
A note on auditing your own vendor
One legitimate and underrated use of this technique: checking what your current locator actually exposes. Open your own locator, watch the request, and ask whether the response contains more than the page displays — internal identifiers, unpublished locations, commercial fields, or staff contact details. Locator widgets frequently ship more data to the browser than anyone intended, and nobody notices because the UI never renders it.
While you are there, check whether the locator produces any crawlable per-location URLs at all. If the answer is no, the locator is not contributing to search regardless of how good the data is — run the store locator SEO audit to see what that costs you.
Frequently Asked Questions
How do I find a store locator API endpoint?
Open the site's store locator page with your browser devtools on the Network tab, filter to Fetch/XHR, and run a search. The request that returns the store list is the endpoint. It is usually a JSON response containing an array of locations with names, addresses, and coordinates, and the request URL will normally contain something like "stores", "locations", "locator", or "storelocator".
Is it legal to use another site's store locator endpoint?
This is a question for your own legal advice rather than a blog post, and the honest answer is that it depends on the site's terms of service, its robots.txt, the jurisdiction, and what you do with the data. Inspecting a request your own browser already made in order to debug or understand a page is ordinary developer work. Systematically harvesting a competitor's data and republishing it is a different activity with different consequences. Read the terms before you build anything on top of an endpoint you do not own.
Why does the locator return no data in the HTML source?
Because most store locators render client-side. The initial HTML contains an empty container and a script; the actual store data arrives afterwards from a separate request. That is precisely why "view source" shows nothing useful and the Network tab shows everything — and it is also why a locator on its own contributes nothing to SEO.
How do I get my own locator API endpoint?
If you run the locator, you should not be reverse-engineering anything — you should have a documented API. Maptera includes a REST API with nearest-store and location endpoints on the Scale plan at $19/month, authenticated with an API key, so your own front ends and internal systems query a stable documented interface instead of an implementation detail.
Can I rely on an undocumented endpoint?
No, and this is the practical argument rather than the legal one. Undocumented endpoints are implementation details. They change shape without warning, get moved behind authentication, start rate-limiting, or disappear entirely at the next redesign. Anything you build on one is load-bearing on a decision somebody else can reverse on a Tuesday.
What formats do store locator endpoints usually return?
JSON is overwhelmingly the most common — typically an array of location objects with name, address components, latitude and longitude, and often hours and category tags. You will still occasionally meet JSONP on older sites, XML on legacy enterprise platforms, and HTML fragments where the server renders the result list and the client injects it.