curl --request POST \
--url https://api.anysite.io/api/onlinetrade/categories/products \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"category_id": "<string>",
"count": 143,
"timeout": 300,
"city": "Москва",
"sort": "views-desc",
"brands": [
"<string>"
],
"stock": [],
"min_price": 49999999,
"max_price": 49999999,
"ratings": [
123
],
"on_promotion": false,
"club_price_only": false,
"filters": {}
}
'import requests
url = "https://api.anysite.io/api/onlinetrade/categories/products"
payload = {
"category_id": "<string>",
"count": 143,
"timeout": 300,
"city": "Москва",
"sort": "views-desc",
"brands": ["<string>"],
"stock": [],
"min_price": 49999999,
"max_price": 49999999,
"ratings": [123],
"on_promotion": False,
"club_price_only": False,
"filters": {}
}
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({
category_id: '<string>',
count: 143,
timeout: 300,
city: 'Москва',
sort: 'views-desc',
brands: ['<string>'],
stock: [],
min_price: 49999999,
max_price: 49999999,
ratings: [123],
on_promotion: false,
club_price_only: false,
filters: {}
})
};
fetch('https://api.anysite.io/api/onlinetrade/categories/products', 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/onlinetrade/categories/products",
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([
'category_id' => '<string>',
'count' => 143,
'timeout' => 300,
'city' => 'Москва',
'sort' => 'views-desc',
'brands' => [
'<string>'
],
'stock' => [
],
'min_price' => 49999999,
'max_price' => 49999999,
'ratings' => [
123
],
'on_promotion' => false,
'club_price_only' => false,
'filters' => [
]
]),
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/onlinetrade/categories/products"
payload := strings.NewReader("{\n \"category_id\": \"<string>\",\n \"count\": 143,\n \"timeout\": 300,\n \"city\": \"Москва\",\n \"sort\": \"views-desc\",\n \"brands\": [\n \"<string>\"\n ],\n \"stock\": [],\n \"min_price\": 49999999,\n \"max_price\": 49999999,\n \"ratings\": [\n 123\n ],\n \"on_promotion\": false,\n \"club_price_only\": false,\n \"filters\": {}\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/onlinetrade/categories/products")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"category_id\": \"<string>\",\n \"count\": 143,\n \"timeout\": 300,\n \"city\": \"Москва\",\n \"sort\": \"views-desc\",\n \"brands\": [\n \"<string>\"\n ],\n \"stock\": [],\n \"min_price\": 49999999,\n \"max_price\": 49999999,\n \"ratings\": [\n 123\n ],\n \"on_promotion\": false,\n \"club_price_only\": false,\n \"filters\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/onlinetrade/categories/products")
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 \"category_id\": \"<string>\",\n \"count\": 143,\n \"timeout\": 300,\n \"city\": \"Москва\",\n \"sort\": \"views-desc\",\n \"brands\": [\n \"<string>\"\n ],\n \"stock\": [],\n \"min_price\": 49999999,\n \"max_price\": 49999999,\n \"ratings\": [\n 123\n ],\n \"on_promotion\": false,\n \"club_price_only\": false,\n \"filters\": {}\n}"
response = http.request(request)
puts response.read_body[
{
"item_id": "<string>",
"@type": "OnlinetradeProductCard",
"model_id": "<string>",
"name": "<string>",
"url": "<string>",
"image": "<string>",
"images": [],
"price": 123,
"old_price": 123,
"currency": "RUB",
"discount_percent": 123,
"badges": [],
"bonus": 123,
"in_stock": true,
"rating": 123,
"rating_count": 123,
"mpn": "<string>",
"category_id": 123,
"category_path": [],
"modifications": [],
"city": "<string>",
"city_id": "<string>"
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/onlinetrade/categories/products
List the products of one ONLINE TRADE.RU (onlinetrade.ru) catalogue category for a named Russian city and return product cards with the current price in roubles, the pre-discount price where the product is discounted, the ON-bonus amount, whether the product can be bought right now, the customer rating and its vote count, the gallery images, the colour and memory variants of the same model and the canonical product URL. Narrows by manufacturer, availability class, price range, customer rating, promotion participation and by any of the category’s own specification facets, and orders by popularity, price, novelty, title or number of reviews.
Price: 1 credit
⚠️ Common errors: 412: The category id does not exist, or onlinetrade did not serve the listing for this session; a filter combination nothing matches is not an error and comes back as 200 with an empty list, 422: The city is not one onlinetrade prices in, category_id is neither a numeric id nor a catalogue URL, or onlinetrade did not recognise one of the brand names, facet names or facet values spelled here and dropped it from the query it ran
curl --request POST \
--url https://api.anysite.io/api/onlinetrade/categories/products \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"category_id": "<string>",
"count": 143,
"timeout": 300,
"city": "Москва",
"sort": "views-desc",
"brands": [
"<string>"
],
"stock": [],
"min_price": 49999999,
"max_price": 49999999,
"ratings": [
123
],
"on_promotion": false,
"club_price_only": false,
"filters": {}
}
'import requests
url = "https://api.anysite.io/api/onlinetrade/categories/products"
payload = {
"category_id": "<string>",
"count": 143,
"timeout": 300,
"city": "Москва",
"sort": "views-desc",
"brands": ["<string>"],
"stock": [],
"min_price": 49999999,
"max_price": 49999999,
"ratings": [123],
"on_promotion": False,
"club_price_only": False,
"filters": {}
}
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({
category_id: '<string>',
count: 143,
timeout: 300,
city: 'Москва',
sort: 'views-desc',
brands: ['<string>'],
stock: [],
min_price: 49999999,
max_price: 49999999,
ratings: [123],
on_promotion: false,
club_price_only: false,
filters: {}
})
};
fetch('https://api.anysite.io/api/onlinetrade/categories/products', 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/onlinetrade/categories/products",
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([
'category_id' => '<string>',
'count' => 143,
'timeout' => 300,
'city' => 'Москва',
'sort' => 'views-desc',
'brands' => [
'<string>'
],
'stock' => [
],
'min_price' => 49999999,
'max_price' => 49999999,
'ratings' => [
123
],
'on_promotion' => false,
'club_price_only' => false,
'filters' => [
]
]),
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/onlinetrade/categories/products"
payload := strings.NewReader("{\n \"category_id\": \"<string>\",\n \"count\": 143,\n \"timeout\": 300,\n \"city\": \"Москва\",\n \"sort\": \"views-desc\",\n \"brands\": [\n \"<string>\"\n ],\n \"stock\": [],\n \"min_price\": 49999999,\n \"max_price\": 49999999,\n \"ratings\": [\n 123\n ],\n \"on_promotion\": false,\n \"club_price_only\": false,\n \"filters\": {}\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/onlinetrade/categories/products")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"category_id\": \"<string>\",\n \"count\": 143,\n \"timeout\": 300,\n \"city\": \"Москва\",\n \"sort\": \"views-desc\",\n \"brands\": [\n \"<string>\"\n ],\n \"stock\": [],\n \"min_price\": 49999999,\n \"max_price\": 49999999,\n \"ratings\": [\n 123\n ],\n \"on_promotion\": false,\n \"club_price_only\": false,\n \"filters\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/onlinetrade/categories/products")
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 \"category_id\": \"<string>\",\n \"count\": 143,\n \"timeout\": 300,\n \"city\": \"Москва\",\n \"sort\": \"views-desc\",\n \"brands\": [\n \"<string>\"\n ],\n \"stock\": [],\n \"min_price\": 49999999,\n \"max_price\": 49999999,\n \"ratings\": [\n 123\n ],\n \"on_promotion\": false,\n \"club_price_only\": false,\n \"filters\": {}\n}"
response = http.request(request)
puts response.read_body[
{
"item_id": "<string>",
"@type": "OnlinetradeProductCard",
"model_id": "<string>",
"name": "<string>",
"url": "<string>",
"image": "<string>",
"images": [],
"price": 123,
"old_price": 123,
"currency": "RUB",
"discount_percent": 123,
"badges": [],
"bonus": 123,
"in_stock": true,
"rating": 123,
"rating_count": 123,
"mpn": "<string>",
"category_id": 123,
"category_path": [],
"modifications": [],
"city": "<string>",
"city_id": "<string>"
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from the dashboard
Headers
Body
11 <= x <= 28520 <= x <= 15001views-desc, price-asc, price-desc, time-desc, title-asc, title-desc, reviews-desc, reviews-asc 7, 1, 2, 0, 3, 5 0 <= x <= 999999990 <= x <= 99999999Show child attributes
Show child attributes
Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes