curl --request POST \
--url https://api.anysite.io/api/dnsshop/products/search \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"count": 480,
"timeout": 300,
"query": "<string>",
"category": "<string>",
"city": "Москва",
"sort": "popular",
"brands": [
"<string>"
],
"promos": [
"<string>"
],
"min_price": 4999999,
"max_price": 4999999,
"has_rating": false,
"reliable_only": false,
"reviewed_only": false,
"spec_filters": {},
"spec_ranges": {},
"with_availability": false
}
'import requests
url = "https://api.anysite.io/api/dnsshop/products/search"
payload = {
"count": 480,
"timeout": 300,
"query": "<string>",
"category": "<string>",
"city": "Москва",
"sort": "popular",
"brands": ["<string>"],
"promos": ["<string>"],
"min_price": 4999999,
"max_price": 4999999,
"has_rating": False,
"reliable_only": False,
"reviewed_only": False,
"spec_filters": {},
"spec_ranges": {},
"with_availability": False
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
count: 480,
timeout: 300,
query: '<string>',
category: '<string>',
city: 'Москва',
sort: 'popular',
brands: ['<string>'],
promos: ['<string>'],
min_price: 4999999,
max_price: 4999999,
has_rating: false,
reliable_only: false,
reviewed_only: false,
spec_filters: {},
spec_ranges: {},
with_availability: false
})
};
fetch('https://api.anysite.io/api/dnsshop/products/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/dnsshop/products/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'count' => 480,
'timeout' => 300,
'query' => '<string>',
'category' => '<string>',
'city' => 'Москва',
'sort' => 'popular',
'brands' => [
'<string>'
],
'promos' => [
'<string>'
],
'min_price' => 4999999,
'max_price' => 4999999,
'has_rating' => false,
'reliable_only' => false,
'reviewed_only' => false,
'spec_filters' => [
],
'spec_ranges' => [
],
'with_availability' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/dnsshop/products/search"
payload := strings.NewReader("{\n \"count\": 480,\n \"timeout\": 300,\n \"query\": \"<string>\",\n \"category\": \"<string>\",\n \"city\": \"Москва\",\n \"sort\": \"popular\",\n \"brands\": [\n \"<string>\"\n ],\n \"promos\": [\n \"<string>\"\n ],\n \"min_price\": 4999999,\n \"max_price\": 4999999,\n \"has_rating\": false,\n \"reliable_only\": false,\n \"reviewed_only\": false,\n \"spec_filters\": {},\n \"spec_ranges\": {},\n \"with_availability\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/dnsshop/products/search")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"count\": 480,\n \"timeout\": 300,\n \"query\": \"<string>\",\n \"category\": \"<string>\",\n \"city\": \"Москва\",\n \"sort\": \"popular\",\n \"brands\": [\n \"<string>\"\n ],\n \"promos\": [\n \"<string>\"\n ],\n \"min_price\": 4999999,\n \"max_price\": 4999999,\n \"has_rating\": false,\n \"reliable_only\": false,\n \"reviewed_only\": false,\n \"spec_filters\": {},\n \"spec_ranges\": {},\n \"with_availability\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/dnsshop/products/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"count\": 480,\n \"timeout\": 300,\n \"query\": \"<string>\",\n \"category\": \"<string>\",\n \"city\": \"Москва\",\n \"sort\": \"popular\",\n \"brands\": [\n \"<string>\"\n ],\n \"promos\": [\n \"<string>\"\n ],\n \"min_price\": 4999999,\n \"max_price\": 4999999,\n \"has_rating\": false,\n \"reliable_only\": false,\n \"reviewed_only\": false,\n \"spec_filters\": {},\n \"spec_ranges\": {},\n \"with_availability\": false\n}"
response = http.request(request)
puts response.read_body[
{
"guid": "<string>",
"@type": "DnsshopProductCard",
"code": "<string>",
"hex_id": "<string>",
"url": "<string>",
"name": "<string>",
"short_specs": "<string>",
"specs": [],
"rating": 123,
"review_count": 123,
"review_count_label": "<string>",
"comment_count": 123,
"reliability": "<string>",
"image": "<string>",
"photo_count": 123,
"price": 123,
"credit_payment": 123,
"credit_months": 123,
"has_price_history": true,
"availability": {
"@type": "DnsshopAvailability",
"status": "<string>",
"store_note": "<string>",
"store_date": "<string>",
"pickup_note": "<string>",
"pickup_date": "<string>",
"delivery_note": "<string>",
"delivery_date": "<string>"
},
"city": "<string>",
"city_id": "<string>"
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/dnsshop/products/search
Search the DNS (dns-shop.ru) catalogue by keyword and/or category for a named Russian city, and return product cards with the current price in roubles, the instalment offer, availability class, rating, review and comment counts, the reliability badge, headline specifications, the product image and the canonical product URL. Narrows by availability, brand, promotion, price range, customer rating, reliability, presence of reviews and by any of the category’s own specification facets, and orders by price, novelty, discount, popularity, rating or number of reviews.
Price: 1 credit
⚠️ Common errors: 412: Nothing matched the query, category or filter combination, or DNS answered a bare brand name with its brand landing page instead of a listing (X-Error says which), or DNS did not serve the listing, 422: The city is not in the DNS city catalogue, or a payload field is malformed
curl --request POST \
--url https://api.anysite.io/api/dnsshop/products/search \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"count": 480,
"timeout": 300,
"query": "<string>",
"category": "<string>",
"city": "Москва",
"sort": "popular",
"brands": [
"<string>"
],
"promos": [
"<string>"
],
"min_price": 4999999,
"max_price": 4999999,
"has_rating": false,
"reliable_only": false,
"reviewed_only": false,
"spec_filters": {},
"spec_ranges": {},
"with_availability": false
}
'import requests
url = "https://api.anysite.io/api/dnsshop/products/search"
payload = {
"count": 480,
"timeout": 300,
"query": "<string>",
"category": "<string>",
"city": "Москва",
"sort": "popular",
"brands": ["<string>"],
"promos": ["<string>"],
"min_price": 4999999,
"max_price": 4999999,
"has_rating": False,
"reliable_only": False,
"reviewed_only": False,
"spec_filters": {},
"spec_ranges": {},
"with_availability": False
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
count: 480,
timeout: 300,
query: '<string>',
category: '<string>',
city: 'Москва',
sort: 'popular',
brands: ['<string>'],
promos: ['<string>'],
min_price: 4999999,
max_price: 4999999,
has_rating: false,
reliable_only: false,
reviewed_only: false,
spec_filters: {},
spec_ranges: {},
with_availability: false
})
};
fetch('https://api.anysite.io/api/dnsshop/products/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/dnsshop/products/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'count' => 480,
'timeout' => 300,
'query' => '<string>',
'category' => '<string>',
'city' => 'Москва',
'sort' => 'popular',
'brands' => [
'<string>'
],
'promos' => [
'<string>'
],
'min_price' => 4999999,
'max_price' => 4999999,
'has_rating' => false,
'reliable_only' => false,
'reviewed_only' => false,
'spec_filters' => [
],
'spec_ranges' => [
],
'with_availability' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/dnsshop/products/search"
payload := strings.NewReader("{\n \"count\": 480,\n \"timeout\": 300,\n \"query\": \"<string>\",\n \"category\": \"<string>\",\n \"city\": \"Москва\",\n \"sort\": \"popular\",\n \"brands\": [\n \"<string>\"\n ],\n \"promos\": [\n \"<string>\"\n ],\n \"min_price\": 4999999,\n \"max_price\": 4999999,\n \"has_rating\": false,\n \"reliable_only\": false,\n \"reviewed_only\": false,\n \"spec_filters\": {},\n \"spec_ranges\": {},\n \"with_availability\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/dnsshop/products/search")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"count\": 480,\n \"timeout\": 300,\n \"query\": \"<string>\",\n \"category\": \"<string>\",\n \"city\": \"Москва\",\n \"sort\": \"popular\",\n \"brands\": [\n \"<string>\"\n ],\n \"promos\": [\n \"<string>\"\n ],\n \"min_price\": 4999999,\n \"max_price\": 4999999,\n \"has_rating\": false,\n \"reliable_only\": false,\n \"reviewed_only\": false,\n \"spec_filters\": {},\n \"spec_ranges\": {},\n \"with_availability\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/dnsshop/products/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"count\": 480,\n \"timeout\": 300,\n \"query\": \"<string>\",\n \"category\": \"<string>\",\n \"city\": \"Москва\",\n \"sort\": \"popular\",\n \"brands\": [\n \"<string>\"\n ],\n \"promos\": [\n \"<string>\"\n ],\n \"min_price\": 4999999,\n \"max_price\": 4999999,\n \"has_rating\": false,\n \"reliable_only\": false,\n \"reviewed_only\": false,\n \"spec_filters\": {},\n \"spec_ranges\": {},\n \"with_availability\": false\n}"
response = http.request(request)
puts response.read_body[
{
"guid": "<string>",
"@type": "DnsshopProductCard",
"code": "<string>",
"hex_id": "<string>",
"url": "<string>",
"name": "<string>",
"short_specs": "<string>",
"specs": [],
"rating": 123,
"review_count": 123,
"review_count_label": "<string>",
"comment_count": 123,
"reliability": "<string>",
"image": "<string>",
"photo_count": 123,
"price": 123,
"credit_payment": 123,
"credit_months": 123,
"has_price_history": true,
"availability": {
"@type": "DnsshopAvailability",
"status": "<string>",
"store_note": "<string>",
"store_date": "<string>",
"pickup_note": "<string>",
"pickup_date": "<string>",
"delivery_note": "<string>",
"delivery_date": "<string>"
},
"city": "<string>",
"city_id": "<string>"
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from the dashboard
Headers
Body
1 <= x <= 96020 <= x <= 1500111popular, price-asc, price-desc, new, discount, opinion, rating now, today, tomorrow, later, out_of_stock 0 <= x <= 99999990 <= x <= 9999999Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes