DNS electronics prices, discounts and stock as JSON
The DNS API turns dns-shop.ru, Russia's largest consumer-electronics retailer, into JSON in two actions.
2 active endpoints. Every call is 3 credits.
- POST/dns-shop/v1/search
- POST/dns-shop/v1/product
What DNS endpoints does ReefAPI ship?
2 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
DNS API
2 of 2 endpoints, ready to run
24 products per page with price, was-price, discount, credit instalment, key specs and rating.
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the DNS API works
DNS is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 549 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Follow the price of a product on DNS
Two calls, the id taken as it is from the first answer.
Rows with product_id, price, price_old and the category DNS answered in.
The record with price, credit, shop count, delivery date and the weekly price history.
Today's Moscow price of a product next to its last six months of weekly prices.
curl -X POST https://api.reefapi.com/dns-shop/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"iphone 15"}'{
"ok": true,
"data": { … },
"meta": {
"api": "dns-shop",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What one DNS product returns
Real results read on 2026-10-15. The id from a search row was passed as it is to product in both runs and came back as the same product with the same price.
| product | what the page shows | price / price_old | other fields |
|---|---|---|---|
| Apple iPhone 15 128 GB, product | 57 999 ₽, in stock in 269 shops | 57999 / null | credit_monthly 5654 for 12 months, rating 4.83 from 4706 reviews, 24 weekly price points |
| Xiaomi Robot Vacuum X20+, search row | 39 999 ₽, struck 46 299 ₽ | 39999 / 46299 | discount_pct 13.6, rating 4.82, reviews_label 1.4k |
| MSI GeForce RTX 4070 VENTUS, search row | out of stock | null / null | orderable false, avail_status out_of_stock |
price is what DNS shows an anonymous visitor today; price_old is the struck price and is null when nothing is discounted. When the product page's structured data carries a different number, both are returned with a price_mismatch flag instead of one being hidden.
What DNS publishes — measured 2026-10-15
Numbers from two live runs on dns-shop.ru, Moscow.
Name, URL, image, rating, key specs and availability status on every row; price on 165 (the other 8 were out of stock); credit instalment on 150; was-price on 7; exact review count on 106 (the rest are rounded labels).
A search row's product_id returned the same product, code and price from product in both runs.
24 products per page; last_page from DNS's own pagination (13 pages for 292 coffee machines); pages do not repeat.
Prices for cities other than Moscow, prices shown only after signing in, the full specification table (the product card's specification block is returned) and customer review texts.
What people build with DNS
The jobs this data is most often used for.
endpoints
credits per call
Track electronics prices in Russia: product for your SKUs, with price, was-price, credit and the weekly price history.
Watch discounts: search a category and keep the rows where price_old is set.
Check availability in Moscow: product returns the shop count, pickup line and next delivery date.
Compare with marketplaces: the same keyword on DNS, Wildberries and Yandex Market gives a retailer price next to marketplace prices.
What DNS data costs
The cheapest call here is 3 credits, so $15/mo (Pro) buys 3,333 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 549 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/dns-shop/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"iphone 15"}'import requests
r = requests.post(
"https://api.reefapi.com/dns-shop/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "iphone 15"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up DNS.
Get a free key →Which city are the prices for?▾
Moscow. Every product record carries a city block with the name and id the page itself reported, so a different city can never pass unnoticed. Choosing another city is not offered yet.
Which prices does it return?▾
The current price in rubles (price), the struck was-price (price_old) with the computed discount_pct, and the monthly credit instalment with its number of months. On the product record, ld_price is the price in the page's own structured data; on one product in our sample it differed from the shown price, and both were returned with price_mismatch.
Why do some rows have no price?▾
In our 2026-10-15 runs every row without a price was a product DNS marks out of stock (orderable false), and DNS itself shows no price for those. Discounted ex-display units (markdown) appear in some searches too; they are kept with is_markdown true and no price.
Why is review_count empty on some search rows?▾
Search tiles print a rounded label such as '4.7k отзывов'. reviews_label returns it exactly as printed and review_count is filled only when the label is an exact number. product always returns the exact count (4 706 for the iPhone 15 above).
What does the price history contain?▾
The weekly price points DNS draws on the product page, roughly the last six months: month, week range and price for each point (24 points for the iPhone 15 on 2026-10-15).
How many products does one page return?▾
24 per page. DNS often answers a keyword inside its best-matching category: 'iphone 15' returned 392 smartphones, 'кофемашина' 292 automatic coffee machines over 13 pages. category, category_id, total and last_page are in every response.
How fast is it?▾
Over two identical runs every positive call succeeded. Median time was about 3 seconds for search and 6.7 seconds for a full product record; the first call after a quiet period can take around 14 seconds.
What is the DNS API?▾
DNS API is a ReefAPI endpoint group for russia's largest electronics retailer as json: keyword search with the current ruble price, the was-price and discount, the monthly credit instalment and rating on every product, and full product records with shop count, delivery date, specifications and weekly price history. It returns live JSON through POST requests under /dns-shop/v1.
Is the DNS API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. DNS calls use the same shared credit balance as every other ReefAPI engine.
Do I need a DNS login or account?▾
No login to DNS is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the DNS data?▾
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the DNS API use?▾
DNS actions currently cost 3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call DNS from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call dns-shop actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the DNS API a DNS scraper?▾
It is the managed alternative to a DIY DNS scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same russia's largest electronics retailer as json: keyword search with the current ruble price, the was-price and discount, the monthly credit instalment and rating on every product, and full product records with shop count, delivery date, specifications and weekly price history back as clean JSON.
284 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling DNS, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 548 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-15.