DNS Shop APIdns-shop.ru ↗
Retrieve all DNS electronics store locations across Russia with addresses, coordinates, phone numbers, metro info, and working hours via a single endpoint.
What is the DNS Shop API?
The DNS Shop Stores API exposes physical retail location data for one of Russia's largest electronics chains through a single endpoint, get_stores, returning an array of store objects that each carry 9 fields: id, name, address, phone, working hours, landmark description, latitude/longitude coordinates, metro information, and city. The response also includes a total_stores integer so you know the full count without pagination.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/1bf6ff65-49f0-48c3-bd2a-a78f2dec40aa/get_stores' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace dns-shop-ru-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""DNS Shop API — find physical store locations across Russia."""
from parse_apis.dns_shop_api import DnsShop, ShopType, StoreDataUnavailable
client = DnsShop()
# List all stores, capped to 10 for demonstration
for store in client.stores.list(limit=10):
print(store.name, store.address, store.shop_type)
# Grab one store and inspect its details
store = client.stores.list(limit=1).first()
if store:
print(store.name, store.address, store.lat, store.lon, store.time)
# Filter for DNS Hyper stores client-side
hyper_stores = [s for s in client.stores.list(limit=50) if s.shop_type == ShopType.DNS_HYPER]
print(f"Found {len(hyper_stores)} DNS Hyper stores in first 50")
# Handle a potential upstream error
try:
for s in client.stores.list(limit=3):
print(s.name, s.city_id)
except StoreDataUnavailable as exc:
print(f"Store data unavailable: {exc}")
print("exercised: stores.list / ShopType enum filter / StoreDataUnavailable error handling")
Returns all DNS physical stores across Russia with addresses, geographic coordinates, phone numbers, and working hours. Data sourced from the PWA static file on the unprotected a.dns-shop.ru subdomain.
No input parameters required.
{
"type": "object",
"fields": {
"stores": "array of store objects with id, name, address, phone, time (working hours), mark (landmark description), lat, lon, metroInfo, city_id, and shop_type ('dns' or 'dns_hyper')",
"total_stores": "integer total number of stores returned"
},
"sample": {
"data": {
"stores": [
{
"id": "9e2a62f7-146b-11ef-9194-0050569d54e1",
"lat": "55.912233",
"lon": "36.858451",
"mark": "Кирпичный трехэтажный ТЦ, 3-й этаж",
"name": "ул. Ленина",
"time": "Ежедневно с 10:00 до 21:00",
"phone": "+7 (499) 704-46-40",
"address": "г. Истра, ул. Морозова, здание 5",
"city_id": "d3fd5019-2c34-11e8-9dc5-00155d03330d",
"metroInfo": null,
"shop_type": "dns"
}
],
"total_stores": 419
},
"status": "success"
}
}About the DNS Shop API
What the API Returns
The get_stores endpoint returns the complete set of DNS retail locations across Russia in one call. Each store object includes id, name, address, phone, time (working hours as a string), mark (a human-readable landmark description useful for directions), lat and lon (decimal coordinates), metroInfo (nearest metro station where applicable), and city. The total_stores field at the response root tells you the total count of records returned.
Endpoint Details
get_stores takes no input parameters — it returns the full store list in a single response. There is no filtering by city, region, or coordinates at the API level; any geographic or text filtering must be done client-side against the returned array. The lat and lon fields are ready to drop into any mapping library or geocoding pipeline. metroInfo is populated only for stores in cities with metro systems, so expect null or empty values for smaller cities.
Coverage and Freshness
The data covers DNS physical stores throughout Russia, including major cities like Moscow, Saint Petersburg, Novosibirsk, and Yekaterinburg, as well as smaller regional locations. Working hours (time) and phone numbers reflect what DNS publishes at the source. Store count can shift as DNS opens or closes locations; the total_stores field reflects the snapshot at the time of the request.
The DNS Shop API is a managed, monitored endpoint for dns-shop.ru — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dns-shop.ru changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official dns-shop.ru API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a store-finder map using the
latandlonfields to plot DNS locations across Russia. - Calculate the nearest DNS store to a user's GPS coordinates using the geographic data returned.
- Display local working hours (
timefield) and phone numbers on a retail locator widget. - Enrich a logistics or delivery application with DNS store addresses as potential pickup points.
- Aggregate city-level store counts for market coverage analysis across Russian regions.
- Use the
metroInfofield to surface metro-accessible stores for users in Moscow or Saint Petersburg.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does dns-shop.ru have an official public developer API?+
What does the `metroInfo` field contain, and is it available for all stores?+
metroInfo contains the nearest metro station name or line for stores located near a metro system. It is only populated for cities that have a metro network; stores in cities without one will have a null or empty value for this field.Can I filter stores by city or region directly in the API call?+
get_stores. The endpoint returns all stores in one response. You can filter by the city field client-side after receiving the full array.Does the API include product catalog, prices, or inventory data for DNS stores?+
How current is the store data, and how often does it update?+
total_stores count and individual records may shift over time. There is no changelog or diff endpoint; compare successive responses to detect changes.