MENU navbar-image
Перейти в сервис

Введение

SalesFinder API — подключите возможности платформы к вашим продуктам за минуты.

Единый интерфейс открывает доступ к авторизации, данным вашего аккаунта и ключевым инструментам SalesFinder — от ежедневных операций до масштабных интеграций. Встраивайте функциональность прямо в CRM, бэкенд, внутренние решения ваших компаний и автоматизируйте рабочие процессы.

Почему это удобно:

- Быстрый старт и понятные форматы запросов/ответов (JSON, HTTPS).
- Надёжная авторизация и защищённый доступ к данным аккаунта.
- Гибкая интеграция инструментов сервиса в ваши сценарии.

Обратите внимание: лимиты использования инструментов привязаны к вашему аккаунту. Для стабильной работы сервиса соблюдайте частоту вызовов — не чаще одного запроса каждые 5 секунд на аккаунт.
Подключайтесь к SalesFinder API и превращайте ваши идеи в готовые решения — быстрее, безопаснее и масштабируемее.

Base URL

https://api.salesfinder.ru

Запросы на аутентификацию

Для использования данного API необходимо пройти аутентификацию Authorization и получить токен "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkuc2ZcL2FwaVwvdjFcL3NhbGVzZmluZGVyXC9hdXRoXC9sb2dpbiIsImlhdCI6MTY1NDg2OTMzMCwiZXhwIjoxNjU0OTU1NzMwLCJuYmYiOjE2NTQ4NjkzMzAsImp0aSI6InRCMENzZXZVdVNSU3hxSlIiLCJzdWIiOjEsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.8W2wjexBhMzYliVZ_XQmd7Xx5Lh65RkxTVPAOi4LWsU".

Все методы, требующие аутентификации, будут отмечены как requires authentication Само поле имеет название Authorization header.

Перед использованием Api обязательно пройти регистрацию в самом сервисе. Вы можете получить свой токен, открыв панель управления Авторизация пользователей Внешнего Апи, использовав метод Login.

Авторизация пользователей Внешнего Апи

Авторизация пользователей внешнего Апи. Метод позволяет пройти авторизацию с помощью вашего email и пароля от сервиса. После авторизации вы получите токен, который далее будет необходимо использовать в каждом последующем методе.

Войти в аккаунт

Метод позволяет войти в аккаунт и получить токен для авторизации апи методов. Токен будет действовать 3 часа. Для входа используйте E-mail и пароль от аккаунта в сервисе.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/auth/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"hhalvorson@example.org\",
    \"password\": \"voluptas\"
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/auth/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "hhalvorson@example.org",
    "password": "voluptas"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/auth/login',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'hhalvorson@example.org',
            'password' => 'voluptas',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 6000
x-ratelimit-remaining: 5999
 

{
    "success": false,
    "message": "Unauthorised.",
    "data": [],
    "details": {
        "error": "Unauthorised"
    }
}
 

Запрос      

POST api/2025_09/auth/login

Body Parameters

email  string  

Must be a valid email address.

password  string  

Выйти из аккаунта

requires authentication

Метод позволяет осуществить выход из аккаунта пользователя.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/auth/logout" \
    --header "Authorization: Bearer 6Egc8Dvb4kedPVaaZ6h5f13" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/auth/logout"
);

const headers = {
    "Authorization": "Bearer 6Egc8Dvb4kedPVaaZ6h5f13",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/auth/logout',
    [
        'headers' => [
            'Authorization' => 'Bearer 6Egc8Dvb4kedPVaaZ6h5f13',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/auth/logout

Продлить текущий токен

requires authentication

Метод позволяет продлить время действия токена на 1 час.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/auth/refresh" \
    --header "Authorization: Bearer V4E36DZgabhP5d6ac8k1vfe" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/auth/refresh"
);

const headers = {
    "Authorization": "Bearer V4E36DZgabhP5d6ac8k1vfe",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/auth/refresh',
    [
        'headers' => [
            'Authorization' => 'Bearer V4E36DZgabhP5d6ac8k1vfe',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/auth/refresh

Токен Мои магазины. Внешнеe Апи

Данный раздел отвечает за взаимодействие с токеном маркетплейса. В нем находятся методы, позволяющие добавлять, удалять, обновлять и редактировать токены маркетплейсов.

Список магазинов

requires authentication

Метод позволяет получить список подключенных к сервису токенов маркетплейса и получить по ним необходимые для работы данные. Список данных: id магазина, id пользователя, маркетплейс и Api токен маркетплейса.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/get_user_keys" \
    --header "Authorization: Bearer Zfa35Vh8b4evg1a6kdDcP6E" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"take\": \"10\",
    \"skip\": \"50\",
    \"sort[0][field]\": \"id\",
    \"sort[0][dir]\": \"asc\"
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/get_user_keys"
);

const headers = {
    "Authorization": "Bearer Zfa35Vh8b4evg1a6kdDcP6E",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "take": "10",
    "skip": "50",
    "sort[0][field]": "id",
    "sort[0][dir]": "asc"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/get_user_keys',
    [
        'headers' => [
            'Authorization' => 'Bearer Zfa35Vh8b4evg1a6kdDcP6E',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'take' => '10',
            'skip' => '50',
            'sort[0][field]' => 'id',
            'sort[0][dir]' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/get_user_keys

Body Parameters

take  required optional  

Максимальное количество записей в ответе.

skip  required optional  

Смещение выборки, для пагинации

sort[0][field]  required optional  

Поле БД

sort[0][dir]  required optional  

Режим сортировки (asc, desc)

Изменить магазин

requires authentication

Метод позволяет обновить токен маркетплейса, подключенный к сервису.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/update_user_keys?id=dolorem&datasource=wb&apikey=LKJ34423434HGW332352&name=%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9&sync=1" \
    --header "Authorization: Bearer kEea8V61fDb5va6cdPhg4Z3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/update_user_keys"
);

const params = {
    "id": "dolorem",
    "datasource": "wb",
    "apikey": "LKJ34423434HGW332352",
    "name": "Рабочий",
    "sync": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer kEea8V61fDb5va6cdPhg4Z3",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/update_user_keys',
    [
        'headers' => [
            'Authorization' => 'Bearer kEea8V61fDb5va6cdPhg4Z3',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'id'=> 'dolorem',
            'datasource'=> 'wb',
            'apikey'=> 'LKJ34423434HGW332352',
            'name'=> 'Рабочий',
            'sync'=> '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/update_user_keys

Query Parameters

id  string  

Идентификатор токена.

datasource  string  

Источник (wb, ozon)

apikey  string  

Токен

name  string  

Наименование

sync  string optional  

Флаг запуска проверки токены (0 или 1)

Подключить магазин

requires authentication

Метод позволяет подключить новый токен к сервису.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/create_user_keys?datasource=wb&apikey=LKJ34423434HGW332352&name=%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9" \
    --header "Authorization: Bearer aDhb6f3a8cEdZ14kv5egP6V" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/create_user_keys"
);

const params = {
    "datasource": "wb",
    "apikey": "LKJ34423434HGW332352",
    "name": "Рабочий",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer aDhb6f3a8cEdZ14kv5egP6V",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/create_user_keys',
    [
        'headers' => [
            'Authorization' => 'Bearer aDhb6f3a8cEdZ14kv5egP6V',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'datasource'=> 'wb',
            'apikey'=> 'LKJ34423434HGW332352',
            'name'=> 'Рабочий',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/create_user_keys

Query Parameters

datasource  string  

Источник (wb, ozon)

apikey  string  

Токен

name  string  

Наименование

Удалить магазин

requires authentication

Метод позволяет удалить подключенный к сервису токен. Для удаления необходимо указать id токена.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/destroy_user_keys?id=enim" \
    --header "Authorization: Bearer 4eDVc3hZga6EbkaP1df65v8" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/destroy_user_keys"
);

const params = {
    "id": "enim",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer 4eDVc3hZga6EbkaP1df65v8",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/destroy_user_keys',
    [
        'headers' => [
            'Authorization' => 'Bearer 4eDVc3hZga6EbkaP1df65v8',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'id'=> 'enim',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/destroy_user_keys

Query Parameters

id  string  

Идентификатор токена.

Репрайсер Внешнеe Апи

Этот раздел внешнего Апи позволяет управлять всеми настройками репрайсера. А именно: Создание сценариев, их редактирование и получения данных по его работе.

Список магазинов

requires authentication

Метод позволяет получить список подключенных токенов (магазинов) и данные по ним. Список данных: id токена, маркетплейс, название магазина, Api токен маркетплейса и client id.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_user_keys" \
    --header "Authorization: Bearer Egef6d3ahDv45bkPa81ZV6c" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_user_keys"
);

const headers = {
    "Authorization": "Bearer Egef6d3ahDv45bkPa81ZV6c",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_user_keys',
    [
        'headers' => [
            'Authorization' => 'Bearer Egef6d3ahDv45bkPa81ZV6c',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_user_keys

Список типов сценария

requires authentication

Метод позволяет получить список типов сценария и id типа сценария

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_script_type" \
    --header "Authorization: Bearer aP51kbg6v368eaDdZVfchE4" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_script_type"
);

const headers = {
    "Authorization": "Bearer aP51kbg6v368eaDdZVfchE4",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_script_type',
    [
        'headers' => [
            'Authorization' => 'Bearer aP51kbg6v368eaDdZVfchE4',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_script_type

Список сценариев

requires authentication

Метод позволяет получить список созданных сценариев репрайсера и данные по ним. Список данных: id сценария, название сценария, статус, название магазина, id типа сценария, кол-во проверок в сутки и название типа сценария.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_script_list?take=10&skip=50&filter[filters][0][field]=last_change_date&filter[filters][0][operator]=gt&filter[filters][0][value]=06-01-2022&filter[filters][1][field]=last_change_date&filter[filters][1][operator]=gt&filter[filters][1][value]=06-13-2022&filter[filters][2][field]=user_key_id&filter[filters][2][operator]=%3D&filter[filters][2][value][]=%5B1%2C+2%2C+3%5D&sort[0][field]=last_change_date&sort[0][dir]=asc" \
    --header "Authorization: Bearer EbDkPZa8d6fv56V14cega3h" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_script_list"
);

const params = {
    "take": "10",
    "skip": "50",
    "filter[filters][0][field]": "last_change_date",
    "filter[filters][0][operator]": "gt",
    "filter[filters][0][value]": "06-01-2022",
    "filter[filters][1][field]": "last_change_date",
    "filter[filters][1][operator]": "gt",
    "filter[filters][1][value]": "06-13-2022",
    "filter[filters][2][field]": "user_key_id",
    "filter[filters][2][operator]": "=",
    "filter[filters][2][value][]": "[1, 2, 3]",
    "sort[0][field]": "last_change_date",
    "sort[0][dir]": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer EbDkPZa8d6fv56V14cega3h",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_script_list',
    [
        'headers' => [
            'Authorization' => 'Bearer EbDkPZa8d6fv56V14cega3h',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'take'=> '10',
            'skip'=> '50',
            'filter[filters][0][field]'=> 'last_change_date',
            'filter[filters][0][operator]'=> 'gt',
            'filter[filters][0][value]'=> '06-01-2022',
            'filter[filters][1][field]'=> 'last_change_date',
            'filter[filters][1][operator]'=> 'gt',
            'filter[filters][1][value]'=> '06-13-2022',
            'filter[filters][2][field]'=> 'user_key_id',
            'filter[filters][2][operator]'=> '=',
            'filter[filters][2][value][]'=> '[1, 2, 3]',
            'sort[0][field]'=> 'last_change_date',
            'sort[0][dir]'=> 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": 4,
    "name": "Jessica Jones",
    "roles": [
        "admin"
    ]
}
 

Запрос      

POST api/2025_09/repricer/get_script_list

Query Parameters

take  string optional  

Максимальное количество записей в ответе.

skip  string optional  

Смещение выборки, для пагинации

filter[filters][0][field]  string optional  

Поле БД

filter[filters][0][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][0][value]  string optional  

Дата начала диапазона, формат m-d-y

filter[filters][1][field]  string optional  

Поле БД

filter[filters][1][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][1][value]  string optional  

Дата конца диапазона, формат m-d-y

filter[filters][2][field]  string optional  

Поле БД

filter[filters][2][operator]  string optional  

Больше (gt), меньше (lt) или равно (=)

filter[filters][2][value][]  string optional  

Id магазина

sort[0][field]  string optional  

Поле БД

sort[0][dir]  string optional  

Режим сортировки (asc, desc)

Получить сценарий

requires authentication

Метод позволяет получить данные по конкретному сценарию. Для получения требуется ввести id сценария.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_script" \
    --header "Authorization: Bearer d3PbaZv8hcgEfD6V15ake46" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_script"
);

const headers = {
    "Authorization": "Bearer d3PbaZv8hcgEfD6V15ake46",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_script',
    [
        'headers' => [
            'Authorization' => 'Bearer d3PbaZv8hcgEfD6V15ake46',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_script

Body Parameters

id  integer  

Id сценария.

Создать сценарий Компенсация СПП

requires authentication

Метод позволяет создать сценарий Компенсация СПП и настроить его параметры: Id типа сценария, кол-во проверок цены, с учетом скидки кошелька, контроль остатков, минимальный остаток, Sku товара

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/create_compensation" \
    --header "Authorization: Bearer 6heaf5D1dacbg4EZk8VP6v3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"script_type_id\": 1,
    \"name\": \"Стандартный\",
    \"user_key_id\": 1,
    \"launches\": 24,
    \"wallet_discount\": false,
    \"keep_discount\": false,
    \"track_remainder\": true,
    \"remainder_quantity\": 10,
    \"remainder_percent\": 300,
    \"track_promotions_off\": false,
    \"sku_range_price_list\": [
        {
            \"nm_id\": \"vero\",
            \"target_price\": \"500\"
        }
    ]
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/create_compensation"
);

const headers = {
    "Authorization": "Bearer 6heaf5D1dacbg4EZk8VP6v3",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "script_type_id": 1,
    "name": "Стандартный",
    "user_key_id": 1,
    "launches": 24,
    "wallet_discount": false,
    "keep_discount": false,
    "track_remainder": true,
    "remainder_quantity": 10,
    "remainder_percent": 300,
    "track_promotions_off": false,
    "sku_range_price_list": [
        {
            "nm_id": "vero",
            "target_price": "500"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/create_compensation',
    [
        'headers' => [
            'Authorization' => 'Bearer 6heaf5D1dacbg4EZk8VP6v3',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'script_type_id' => 1,
            'name' => 'Стандартный',
            'user_key_id' => 1,
            'launches' => 24,
            'wallet_discount' => false,
            'keep_discount' => false,
            'track_remainder' => true,
            'remainder_quantity' => 10,
            'remainder_percent' => 300,
            'track_promotions_off' => false,
            'sku_range_price_list' => [
                [
                    'nm_id' => 'vero',
                    'target_price' => '500',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/create_compensation

Body Parameters

script_type_id  integer  

Id сценария.

name  string  

Название сценария.

user_key_id  integer  

Id магазина.

launches  integer optional  

Количество запусков в сценариях СПП.

wallet_discount  boolean optional  

Скидка с учётом кошелька.

keep_discount  boolean optional  

Сохранять скидку продавца. Только для WB.

track_remainder  boolean optional  

Статус отслеживания остатка.

remainder_quantity  integer optional  

Отслеживаемое значение остатка.

remainder_percent  integer optional  

Процент увеличения цены.

track_promotions_off  boolean optional  

Удаление из акций. Только для OZ.

sku_range_price_list  object[]  

Список товаров и их предельных значений цен

sku_range_price_list[].nm_id  required optional  

integer Id товара

sku_range_price_list[].target_price  string optional  

ожидаемая цена товара.

Изменить сценарий Компенсация СПП

requires authentication

Метод позволяет изменить настройки сценария Компенсация СПП.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/update_compensation" \
    --header "Authorization: Bearer gec536kvDhbadEfZa148V6P" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"script_type_id\": 1,
    \"id\": 1,
    \"name\": \"Стандартный\",
    \"active\": false,
    \"user_key_id\": 1,
    \"launches\": 24,
    \"wallet_discount\": false,
    \"keep_discount\": false,
    \"track_remainder\": true,
    \"sku_range_price_list\": [
        {
            \"nm_id\": 6,
            \"target_price\": \"500\"
        }
    ],
    \"remainder_quantity\": 10,
    \"remainder_percent\": 300,
    \"track_promotions_off\": false
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/update_compensation"
);

const headers = {
    "Authorization": "Bearer gec536kvDhbadEfZa148V6P",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "script_type_id": 1,
    "id": 1,
    "name": "Стандартный",
    "active": false,
    "user_key_id": 1,
    "launches": 24,
    "wallet_discount": false,
    "keep_discount": false,
    "track_remainder": true,
    "sku_range_price_list": [
        {
            "nm_id": 6,
            "target_price": "500"
        }
    ],
    "remainder_quantity": 10,
    "remainder_percent": 300,
    "track_promotions_off": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/update_compensation',
    [
        'headers' => [
            'Authorization' => 'Bearer gec536kvDhbadEfZa148V6P',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'script_type_id' => 1,
            'id' => 1,
            'name' => 'Стандартный',
            'active' => false,
            'user_key_id' => 1,
            'launches' => 24,
            'wallet_discount' => false,
            'keep_discount' => false,
            'track_remainder' => true,
            'sku_range_price_list' => [
                [
                    'nm_id' => 6,
                    'target_price' => '500',
                ],
            ],
            'remainder_quantity' => 10,
            'remainder_percent' => 300,
            'track_promotions_off' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/update_compensation

Body Parameters

script_type_id  integer optional  

Id сценария.

id  integer  

Id сценария.

name  string optional  

Название сценария.

active  boolean optional  

Статус сценария.

user_key_id  integer optional  

Id магазина.

launches  integer optional  

Количество запусков в сценариях СПП.

wallet_discount  boolean optional  

Скидка с учётом кошелька.

keep_discount  boolean optional  

Сохранять скидку продавца. Только для WB.

track_remainder  boolean optional  

Статус отслеживания остатка.

sku_range_price_list  object[] optional  

Список товаров и их предельных значений цен

sku_range_price_list[].nm_id  integer optional  

Id товара

sku_range_price_list[].target_price  string optional  

ожидаемая цена товара.

remainder_quantity  integer optional  

Отслеживаемое значение остатка.

remainder_percent  integer optional  

Процент увеличения цены.

track_promotions_off  boolean optional  

Удаление из акций. Только для OZ.

Создать сценарий Конкуренты СПП

requires authentication

Метод позволяет создать сценарий Конкуренты СПП и настроить его параметры: Id типа сценария, кол-во проверок цены, с учетом скидки кошелька, контроль остатков, минимальный остаток, Sku товара. Оператор условия. Больше/меньше/средняя цена конкурента. Команды: up/down/avg. Значение условия. Насколько больше или меньше. Измерение условия. В процентах или рублях. Команды: %/руб

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/create_competitor_spp" \
    --header "Authorization: Bearer bd65D4vPga6Zhca138eEVkf" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"script_type_id\": 1,
    \"name\": \"Стандартный\",
    \"user_key_id\": 1,
    \"launches\": 24,
    \"wallet_discount\": false,
    \"range_price_spp\": false,
    \"keep_discount\": false,
    \"track_remainder\": true,
    \"remainder_quantity\": 10,
    \"remainder_percent\": 300,
    \"track_promotions_off\": false,
    \"sku_range_price_list\": [
        {
            \"nm_id\": \"rerum\",
            \"min_price\": \"300\",
            \"max_price\": \"500\",
            \"competitor_list\": [
                202023476,
                202022186
            ]
        }
    ],
    \"script_value\": [
        {
            \"expression\": {
                \"operation\": \"natus\",
                \"value\": \"accusamus\",
                \"unit\": \"rerum\"
            }
        }
    ]
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/create_competitor_spp"
);

const headers = {
    "Authorization": "Bearer bd65D4vPga6Zhca138eEVkf",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "script_type_id": 1,
    "name": "Стандартный",
    "user_key_id": 1,
    "launches": 24,
    "wallet_discount": false,
    "range_price_spp": false,
    "keep_discount": false,
    "track_remainder": true,
    "remainder_quantity": 10,
    "remainder_percent": 300,
    "track_promotions_off": false,
    "sku_range_price_list": [
        {
            "nm_id": "rerum",
            "min_price": "300",
            "max_price": "500",
            "competitor_list": [
                202023476,
                202022186
            ]
        }
    ],
    "script_value": [
        {
            "expression": {
                "operation": "natus",
                "value": "accusamus",
                "unit": "rerum"
            }
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/create_competitor_spp',
    [
        'headers' => [
            'Authorization' => 'Bearer bd65D4vPga6Zhca138eEVkf',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'script_type_id' => 1,
            'name' => 'Стандартный',
            'user_key_id' => 1,
            'launches' => 24,
            'wallet_discount' => false,
            'range_price_spp' => false,
            'keep_discount' => false,
            'track_remainder' => true,
            'remainder_quantity' => 10,
            'remainder_percent' => 300,
            'track_promotions_off' => false,
            'sku_range_price_list' => [
                [
                    'nm_id' => 'rerum',
                    'min_price' => '300',
                    'max_price' => '500',
                    'competitor_list' => [
                        202023476,
                        202022186,
                    ],
                ],
            ],
            'script_value' => [
                [
                    'expression' => [
                        'operation' => 'natus',
                        'value' => 'accusamus',
                        'unit' => 'rerum',
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/create_competitor_spp

Body Parameters

script_type_id  integer  

Id сценария.

name  string  

Название сценария.

user_key_id  integer  

Id магазина.

launches  integer optional  

Количество запусков в сценариях СПП.

wallet_discount  boolean optional  

Скидка с учётом кошелька.

range_price_spp  boolean optional  

Предельные значения цены с учетом спп.

keep_discount  boolean optional  

Сохранять скидку продавца. Только для WB.

track_remainder  boolean optional  

Статус отслеживания остатка.

remainder_quantity  integer optional  

Отслеживаемое значение остатка.

remainder_percent  integer optional  

Процент увеличения цены.

track_promotions_off  boolean optional  

Удаление из акций. Только для OZ.

sku_range_price_list  object[]  

Список товаров и их предельных значений цен

sku_range_price_list[].nm_id  required optional  

integer Id товара

sku_range_price_list[].min_price  string optional  

минимальная цена товара.

sku_range_price_list[].max_price  string optional  

максимальная цена товара.

sku_range_price_list[].competitor_list  integer[] optional  

Список Sku конкурентов.

script_value  object[] optional  

Выражение сценария

script_value[].expression  object optional  

Условие выполнения скрипта

script_value[].expression.operation  string optional  

Оператор условия. Example >

script_value[].expression.value  string optional  

Значение условия. Example 10

script_value[].expression.unit  Единица optional  

измерения условия. Example %

Изменить сценарий Конкуренты СПП

requires authentication

Метод позволяет изменить настройки сценария Конкуренты СПП.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/update_competitor_spp" \
    --header "Authorization: Bearer cD6gf6eVadhvkbP5E1384aZ" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"script_type_id\": 1,
    \"id\": 1,
    \"name\": \"Стандартный\",
    \"active\": false,
    \"user_key_id\": 1,
    \"launches\": 24,
    \"wallet_discount\": false,
    \"range_price_spp\": false,
    \"keep_discount\": false,
    \"track_remainder\": true,
    \"remainder_quantity\": 10,
    \"remainder_percent\": 300,
    \"track_promotions_off\": false,
    \"sku_range_price_list\": [
        {
            \"nm_id\": 6,
            \"min_price\": \"300\",
            \"max_price\": \"500\",
            \"competitor_list\": [
                202023476,
                202022186
            ]
        }
    ],
    \"script_value\": [
        {
            \"expression\": {
                \"operation\": \"maxime\",
                \"value\": \"veritatis\",
                \"unit\": \"hic\"
            }
        }
    ]
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/update_competitor_spp"
);

const headers = {
    "Authorization": "Bearer cD6gf6eVadhvkbP5E1384aZ",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "script_type_id": 1,
    "id": 1,
    "name": "Стандартный",
    "active": false,
    "user_key_id": 1,
    "launches": 24,
    "wallet_discount": false,
    "range_price_spp": false,
    "keep_discount": false,
    "track_remainder": true,
    "remainder_quantity": 10,
    "remainder_percent": 300,
    "track_promotions_off": false,
    "sku_range_price_list": [
        {
            "nm_id": 6,
            "min_price": "300",
            "max_price": "500",
            "competitor_list": [
                202023476,
                202022186
            ]
        }
    ],
    "script_value": [
        {
            "expression": {
                "operation": "maxime",
                "value": "veritatis",
                "unit": "hic"
            }
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/update_competitor_spp',
    [
        'headers' => [
            'Authorization' => 'Bearer cD6gf6eVadhvkbP5E1384aZ',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'script_type_id' => 1,
            'id' => 1,
            'name' => 'Стандартный',
            'active' => false,
            'user_key_id' => 1,
            'launches' => 24,
            'wallet_discount' => false,
            'range_price_spp' => false,
            'keep_discount' => false,
            'track_remainder' => true,
            'remainder_quantity' => 10,
            'remainder_percent' => 300,
            'track_promotions_off' => false,
            'sku_range_price_list' => [
                [
                    'nm_id' => 6,
                    'min_price' => '300',
                    'max_price' => '500',
                    'competitor_list' => [
                        202023476,
                        202022186,
                    ],
                ],
            ],
            'script_value' => [
                [
                    'expression' => [
                        'operation' => 'maxime',
                        'value' => 'veritatis',
                        'unit' => 'hic',
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/update_competitor_spp

Body Parameters

script_type_id  integer optional  

Id сценария.

id  integer  

Id сценария.

name  string optional  

Название сценария.

active  boolean optional  

Статус сценария.

user_key_id  integer optional  

Id магазина.

launches  integer optional  

Количество запусков в сценариях СПП.

wallet_discount  boolean optional  

Скидка с учётом кошелька.

range_price_spp  boolean optional  

Предельные значения цены с учетом спп.

keep_discount  boolean optional  

Сохранять скидку продавца. Только для WB.

track_remainder  boolean optional  

Статус отслеживания остатка.

remainder_quantity  integer optional  

Отслеживаемое значение остатка.

remainder_percent  integer optional  

Процент увеличения цены.

track_promotions_off  boolean optional  

Удаление из акций. Только для OZ.

sku_range_price_list  object[] optional  

Список товаров и их предельных значений цен

sku_range_price_list[].nm_id  integer optional  

Id товара

sku_range_price_list[].min_price  string optional  

минимальная цена товара.

sku_range_price_list[].max_price  string optional  

максимальная цена товара.

sku_range_price_list[].competitor_list  integer[] optional  

Список Sku конкурентов.

script_value  object[] optional  

Выражение сценария

script_value[].expression  object optional  

Условие выполнения скрипта

script_value[].expression.operation  string optional  

Оператор условия. Example >

script_value[].expression.value  string optional  

Значение условия. Example 10

script_value[].expression.unit  Единица optional  

измерения условия. Example %

Создать сценарий Конкуренты Плюс

requires authentication

Метод позволяет создать сценарий Конкуренты Плюс и настроить его параметры: Id типа сценария, кол-во проверок цены, с учетом скидки кошелька, контроль остатков, минимальный остаток, Sku товара. Оператор условия. Больше/меньше/средняя цена конкурента. Команды: up/down/avg. Значение условия. Насколько больше или меньше. Измерение условия. В процентах или рублях. Команды: %/руб

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/store_competitor_plus" \
    --header "Authorization: Bearer gk35ZaPv8616deEf4cDVhab" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"script_type_id\": 1,
    \"name\": \"Стандартный\",
    \"user_key_id\": 1,
    \"launches\": 24,
    \"wallet_discount\": false,
    \"range_price_spp\": false,
    \"keep_discount\": false,
    \"track_remainder\": true,
    \"remainder_quantity\": 10,
    \"remainder_percent\": 300,
    \"track_promotions_off\": false,
    \"sku_range_price_list\": [
        {
            \"nm_id\": \"non\",
            \"min_price\": \"300\",
            \"max_price\": \"500\",
            \"target_price\": \"500\",
            \"competitor_list\": [
                202023476,
                202022186
            ]
        }
    ],
    \"script_value\": [
        {
            \"expression\": {
                \"operation\": \"sed\",
                \"value\": \"voluptas\",
                \"unit\": \"harum\"
            }
        }
    ]
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/store_competitor_plus"
);

const headers = {
    "Authorization": "Bearer gk35ZaPv8616deEf4cDVhab",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "script_type_id": 1,
    "name": "Стандартный",
    "user_key_id": 1,
    "launches": 24,
    "wallet_discount": false,
    "range_price_spp": false,
    "keep_discount": false,
    "track_remainder": true,
    "remainder_quantity": 10,
    "remainder_percent": 300,
    "track_promotions_off": false,
    "sku_range_price_list": [
        {
            "nm_id": "non",
            "min_price": "300",
            "max_price": "500",
            "target_price": "500",
            "competitor_list": [
                202023476,
                202022186
            ]
        }
    ],
    "script_value": [
        {
            "expression": {
                "operation": "sed",
                "value": "voluptas",
                "unit": "harum"
            }
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/store_competitor_plus',
    [
        'headers' => [
            'Authorization' => 'Bearer gk35ZaPv8616deEf4cDVhab',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'script_type_id' => 1,
            'name' => 'Стандартный',
            'user_key_id' => 1,
            'launches' => 24,
            'wallet_discount' => false,
            'range_price_spp' => false,
            'keep_discount' => false,
            'track_remainder' => true,
            'remainder_quantity' => 10,
            'remainder_percent' => 300,
            'track_promotions_off' => false,
            'sku_range_price_list' => [
                [
                    'nm_id' => 'non',
                    'min_price' => '300',
                    'max_price' => '500',
                    'target_price' => '500',
                    'competitor_list' => [
                        202023476,
                        202022186,
                    ],
                ],
            ],
            'script_value' => [
                [
                    'expression' => [
                        'operation' => 'sed',
                        'value' => 'voluptas',
                        'unit' => 'harum',
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/store_competitor_plus

Body Parameters

script_type_id  integer  

Id сценария.

name  string  

Название сценария.

user_key_id  integer  

Id магазина.

launches  integer optional  

Количество запусков в сценариях СПП.

wallet_discount  boolean optional  

Скидка с учётом кошелька.

range_price_spp  boolean optional  

Предельные значения цены с учетом спп.

keep_discount  boolean optional  

Сохранять скидку продавца. Только для WB.

track_remainder  boolean optional  

Статус отслеживания остатка.

remainder_quantity  integer optional  

Отслеживаемое значение остатка.

remainder_percent  integer optional  

Процент увеличения цены.

track_promotions_off  boolean optional  

Удаление из акций. Только для OZ.

sku_range_price_list  object[]  

Список товаров и их предельных значений цен

sku_range_price_list[].nm_id  required optional  

integer Id товара

sku_range_price_list[].min_price  string optional  

минимальная цена товара.

sku_range_price_list[].max_price  string optional  

максимальная цена товара.

sku_range_price_list[].target_price  string optional  

ожидаемая цена товара.

sku_range_price_list[].competitor_list  integer[] optional  

Список Sku конкурентов.

script_value  object[] optional  

Выражение сценария

script_value[].expression  object optional  

Условие выполнения скрипта

script_value[].expression.operation  string optional  

Оператор условия. Example >

script_value[].expression.value  string optional  

Значение условия. Example 10

script_value[].expression.unit  Единица optional  

измерения условия. Example %

Изменить сценарий Конкуренты Плюс

requires authentication

Метод позволяет изменить настройки сценария Конкуренты Плюс.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/update_competitor_plus" \
    --header "Authorization: Bearer 1e6Ekhv8V6Dd5bgfP3c4aaZ" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"script_type_id\": 1,
    \"id\": 1,
    \"name\": \"Стандартный\",
    \"active\": false,
    \"user_key_id\": 1,
    \"launches\": 24,
    \"wallet_discount\": false,
    \"range_price_spp\": false,
    \"keep_discount\": false,
    \"track_remainder\": true,
    \"remainder_quantity\": 10,
    \"remainder_percent\": 300,
    \"track_promotions_off\": false,
    \"sku_range_price_list\": [
        {
            \"nm_id\": 15,
            \"min_price\": \"300\",
            \"max_price\": \"500\",
            \"target_price\": \"500\",
            \"competitor_list\": [
                202023476,
                202022186
            ]
        }
    ],
    \"script_value\": [
        {
            \"expression\": {
                \"operation\": \"sunt\",
                \"value\": \"aspernatur\",
                \"unit\": \"culpa\"
            }
        }
    ]
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/update_competitor_plus"
);

const headers = {
    "Authorization": "Bearer 1e6Ekhv8V6Dd5bgfP3c4aaZ",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "script_type_id": 1,
    "id": 1,
    "name": "Стандартный",
    "active": false,
    "user_key_id": 1,
    "launches": 24,
    "wallet_discount": false,
    "range_price_spp": false,
    "keep_discount": false,
    "track_remainder": true,
    "remainder_quantity": 10,
    "remainder_percent": 300,
    "track_promotions_off": false,
    "sku_range_price_list": [
        {
            "nm_id": 15,
            "min_price": "300",
            "max_price": "500",
            "target_price": "500",
            "competitor_list": [
                202023476,
                202022186
            ]
        }
    ],
    "script_value": [
        {
            "expression": {
                "operation": "sunt",
                "value": "aspernatur",
                "unit": "culpa"
            }
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/update_competitor_plus',
    [
        'headers' => [
            'Authorization' => 'Bearer 1e6Ekhv8V6Dd5bgfP3c4aaZ',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'script_type_id' => 1,
            'id' => 1,
            'name' => 'Стандартный',
            'active' => false,
            'user_key_id' => 1,
            'launches' => 24,
            'wallet_discount' => false,
            'range_price_spp' => false,
            'keep_discount' => false,
            'track_remainder' => true,
            'remainder_quantity' => 10,
            'remainder_percent' => 300,
            'track_promotions_off' => false,
            'sku_range_price_list' => [
                [
                    'nm_id' => 15,
                    'min_price' => '300',
                    'max_price' => '500',
                    'target_price' => '500',
                    'competitor_list' => [
                        202023476,
                        202022186,
                    ],
                ],
            ],
            'script_value' => [
                [
                    'expression' => [
                        'operation' => 'sunt',
                        'value' => 'aspernatur',
                        'unit' => 'culpa',
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/update_competitor_plus

Body Parameters

script_type_id  integer optional  

Id сценария.

id  integer  

Id сценария.

name  string optional  

Название сценария.

active  boolean optional  

Статус сценария.

user_key_id  integer optional  

Id магазина.

launches  integer optional  

Количество запусков в сценариях СПП.

wallet_discount  boolean optional  

Скидка с учётом кошелька.

range_price_spp  boolean optional  

Предельные значения цены с учетом спп.

keep_discount  boolean optional  

Сохранять скидку продавца. Только для WB.

track_remainder  boolean optional  

Статус отслеживания остатка.

remainder_quantity  integer optional  

Отслеживаемое значение остатка.

remainder_percent  integer optional  

Процент увеличения цены.

track_promotions_off  boolean optional  

Удаление из акций. Только для OZ.

sku_range_price_list  object[] optional  

Список товаров и их предельных значений цен

sku_range_price_list[].nm_id  integer optional  

Id товара

sku_range_price_list[].min_price  string optional  

минимальная цена товара.

sku_range_price_list[].max_price  string optional  

максимальная цена товара.

sku_range_price_list[].target_price  string optional  

ожидаемая цена товара.

sku_range_price_list[].competitor_list  integer[] optional  

Список Sku конкурентов.

script_value  object[] optional  

Выражение сценария

script_value[].expression  object optional  

Условие выполнения скрипта

script_value[].expression.operation  string optional  

Оператор условия. Example >

script_value[].expression.value  string optional  

Значение условия. Example 10

script_value[].expression.unit  Единица optional  

измерения условия. Example %

Удалить сценарий

requires authentication

Метод позволяет удалить сценарий репрайсера. Для удаления необходимо указать id сценария.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/destroy_script" \
    --header "Authorization: Bearer 6caa1hekPdvZbV845E6Df3g" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/destroy_script"
);

const headers = {
    "Authorization": "Bearer 6caa1hekPdvZbV845E6Df3g",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/destroy_script',
    [
        'headers' => [
            'Authorization' => 'Bearer 6caa1hekPdvZbV845E6Df3g',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/destroy_script

Body Parameters

id  integer  

Id сценария.

Лог событий

requires authentication

Метод позволяет получить данные из лога событий репрайсера. Допускается получение данных с фильтрацией и без

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_sku_history_list?take=10&skip=50&filter[logic]=and&filter[filters][0][field]=date_add&filter[filters][0][operator]=gt&filter[filters][0][value]=06-01-2022&filter[filters][1][field]=date_add&filter[filters][1][operator]=gt&filter[filters][1][value]=06-13-2022&filter[filters][2][field]=user_key_id&filter[filters][2][operator]=%3D&filter[filters][2][value][]=%5B1%2C+2%2C+3%5D&sort[0][field]=date_add&sort[0][dir]=asc" \
    --header "Authorization: Bearer v56DgZkedE48cfPba1hV6a3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_sku_history_list"
);

const params = {
    "take": "10",
    "skip": "50",
    "filter[logic]": "and",
    "filter[filters][0][field]": "date_add",
    "filter[filters][0][operator]": "gt",
    "filter[filters][0][value]": "06-01-2022",
    "filter[filters][1][field]": "date_add",
    "filter[filters][1][operator]": "gt",
    "filter[filters][1][value]": "06-13-2022",
    "filter[filters][2][field]": "user_key_id",
    "filter[filters][2][operator]": "=",
    "filter[filters][2][value][]": "[1, 2, 3]",
    "sort[0][field]": "date_add",
    "sort[0][dir]": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer v56DgZkedE48cfPba1hV6a3",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_sku_history_list',
    [
        'headers' => [
            'Authorization' => 'Bearer v56DgZkedE48cfPba1hV6a3',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'take'=> '10',
            'skip'=> '50',
            'filter[logic]'=> 'and',
            'filter[filters][0][field]'=> 'date_add',
            'filter[filters][0][operator]'=> 'gt',
            'filter[filters][0][value]'=> '06-01-2022',
            'filter[filters][1][field]'=> 'date_add',
            'filter[filters][1][operator]'=> 'gt',
            'filter[filters][1][value]'=> '06-13-2022',
            'filter[filters][2][field]'=> 'user_key_id',
            'filter[filters][2][operator]'=> '=',
            'filter[filters][2][value][]'=> '[1, 2, 3]',
            'sort[0][field]'=> 'date_add',
            'sort[0][dir]'=> 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_sku_history_list

Query Parameters

take  string optional  

Максимальное количество записей в ответе.

skip  string optional  

Смещение выборки, для пагинации

filter[logic]  string optional  

Тип условия (and или or)

filter[filters][0][field]  string optional  

Поле БД

filter[filters][0][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][0][value]  string optional  

Дата начала диапазона, формат m-d-y

filter[filters][1][field]  string optional  

Поле БД

filter[filters][1][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][1][value]  string optional  

Дата конца диапазона, формат m-d-y

filter[filters][2][field]  string optional  

Поле БД

filter[filters][2][operator]  string optional  

Больше (gt), меньше (lt) или равно (=)

filter[filters][2][value][]  string optional  

Id магазина

sort[0][field]  string optional  

Поле БД

sort[0][dir]  string optional  

Режим сортировки (asc, desc)

Мои товары

requires authentication

Метод позволяет получить список товаров из вашего магазина.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_sku_product_list?take=10&skip=50&filter[logic]=and&filter[filters][0][field]=date_add&filter[filters][0][operator]=gt&filter[filters][0][value]=06-01-2022&filter[filters][1][field]=date_add&filter[filters][1][operator]=gt&filter[filters][1][value]=06-13-2022&filter[filters][2][field]=user_key_id&filter[filters][2][operator]=%3D&filter[filters][2][value][]=%5B1%2C+2%2C+3%5D&sort[0][field]=date_add&sort[0][dir]=asc" \
    --header "Authorization: Bearer 68PevD1Ef4kda53V6hacZbg" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_sku_product_list"
);

const params = {
    "take": "10",
    "skip": "50",
    "filter[logic]": "and",
    "filter[filters][0][field]": "date_add",
    "filter[filters][0][operator]": "gt",
    "filter[filters][0][value]": "06-01-2022",
    "filter[filters][1][field]": "date_add",
    "filter[filters][1][operator]": "gt",
    "filter[filters][1][value]": "06-13-2022",
    "filter[filters][2][field]": "user_key_id",
    "filter[filters][2][operator]": "=",
    "filter[filters][2][value][]": "[1, 2, 3]",
    "sort[0][field]": "date_add",
    "sort[0][dir]": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer 68PevD1Ef4kda53V6hacZbg",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_sku_product_list',
    [
        'headers' => [
            'Authorization' => 'Bearer 68PevD1Ef4kda53V6hacZbg',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'take'=> '10',
            'skip'=> '50',
            'filter[logic]'=> 'and',
            'filter[filters][0][field]'=> 'date_add',
            'filter[filters][0][operator]'=> 'gt',
            'filter[filters][0][value]'=> '06-01-2022',
            'filter[filters][1][field]'=> 'date_add',
            'filter[filters][1][operator]'=> 'gt',
            'filter[filters][1][value]'=> '06-13-2022',
            'filter[filters][2][field]'=> 'user_key_id',
            'filter[filters][2][operator]'=> '=',
            'filter[filters][2][value][]'=> '[1, 2, 3]',
            'sort[0][field]'=> 'date_add',
            'sort[0][dir]'=> 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_sku_product_list

Query Parameters

take  string optional  

Максимальное количество записей в ответе.

skip  string optional  

Смещение выборки, для пагинации

filter[logic]  string optional  

Тип условия (and или or)

filter[filters][0][field]  string optional  

Поле БД

filter[filters][0][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][0][value]  string optional  

Дата начала диапазона, формат m-d-y

filter[filters][1][field]  string optional  

Поле БД

filter[filters][1][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][1][value]  string optional  

Дата конца диапазона, формат m-d-y

filter[filters][2][field]  string optional  

Поле БД

filter[filters][2][operator]  string optional  

Больше (gt), меньше (lt) или равно (=)

filter[filters][2][value][]  string optional  

Id магазина

sort[0][field]  string optional  

Поле БД

sort[0][dir]  string optional  

Режим сортировки (asc, desc)

Товары под управлением - динамика цен

requires authentication

Метод позволяет получить список товаров под управлением репрайсера.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_sku_dynamic_list?take=10&skip=50&filter[logic]=and&filter[filters][0][field]=date_add&filter[filters][0][operator]=gt&filter[filters][0][value]=06-01-2022&filter[filters][1][field]=date_add&filter[filters][1][operator]=gt&filter[filters][1][value]=06-13-2022&filter[filters][2][field]=user_key_id&filter[filters][2][operator]=%3D&filter[filters][2][value][]=%5B1%2C+2%2C+3%5D&sort[0][field]=date_add&sort[0][dir]=asc" \
    --header "Authorization: Bearer 43f86kVvcDEgZaa65eb1hPd" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_sku_dynamic_list"
);

const params = {
    "take": "10",
    "skip": "50",
    "filter[logic]": "and",
    "filter[filters][0][field]": "date_add",
    "filter[filters][0][operator]": "gt",
    "filter[filters][0][value]": "06-01-2022",
    "filter[filters][1][field]": "date_add",
    "filter[filters][1][operator]": "gt",
    "filter[filters][1][value]": "06-13-2022",
    "filter[filters][2][field]": "user_key_id",
    "filter[filters][2][operator]": "=",
    "filter[filters][2][value][]": "[1, 2, 3]",
    "sort[0][field]": "date_add",
    "sort[0][dir]": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer 43f86kVvcDEgZaa65eb1hPd",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_sku_dynamic_list',
    [
        'headers' => [
            'Authorization' => 'Bearer 43f86kVvcDEgZaa65eb1hPd',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'take'=> '10',
            'skip'=> '50',
            'filter[logic]'=> 'and',
            'filter[filters][0][field]'=> 'date_add',
            'filter[filters][0][operator]'=> 'gt',
            'filter[filters][0][value]'=> '06-01-2022',
            'filter[filters][1][field]'=> 'date_add',
            'filter[filters][1][operator]'=> 'gt',
            'filter[filters][1][value]'=> '06-13-2022',
            'filter[filters][2][field]'=> 'user_key_id',
            'filter[filters][2][operator]'=> '=',
            'filter[filters][2][value][]'=> '[1, 2, 3]',
            'sort[0][field]'=> 'date_add',
            'sort[0][dir]'=> 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_sku_dynamic_list

Query Parameters

take  string optional  

Максимальное количество записей в ответе.

skip  string optional  

Смещение выборки, для пагинации

filter[logic]  string optional  

Тип условия (and или or)

filter[filters][0][field]  string optional  

Поле БД

filter[filters][0][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][0][value]  string optional  

Дата начала диапазона, формат m-d-y

filter[filters][1][field]  string optional  

Поле БД

filter[filters][1][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][1][value]  string optional  

Дата конца диапазона, формат m-d-y

filter[filters][2][field]  string optional  

Поле БД

filter[filters][2][operator]  string optional  

Больше (gt), меньше (lt) или равно (=)

filter[filters][2][value][]  string optional  

Id магазина

sort[0][field]  string optional  

Поле БД

sort[0][dir]  string optional  

Режим сортировки (asc, desc)

Список товаров

requires authentication

Метод позволяет получить список товаров из раздела “Мои магазины”

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_product_list?take=10&skip=50&filter[filters][0][field]=date_add&filter[filters][0][operator]=gt&filter[filters][0][value]=06-01-2022&filter[filters][1][field]=date_add&filter[filters][1][operator]=gt&filter[filters][1][value]=06-13-2022&filter[filters][2][field]=user_key_id&filter[filters][2][operator]=%3D&filter[filters][2][value][]=%5B1%2C+2%2C+3%5D&sort[0][field]=date_add&sort[0][dir]=asc" \
    --header "Authorization: Bearer VZb661cdDfghE5aakvP843e" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_product_list"
);

const params = {
    "take": "10",
    "skip": "50",
    "filter[filters][0][field]": "date_add",
    "filter[filters][0][operator]": "gt",
    "filter[filters][0][value]": "06-01-2022",
    "filter[filters][1][field]": "date_add",
    "filter[filters][1][operator]": "gt",
    "filter[filters][1][value]": "06-13-2022",
    "filter[filters][2][field]": "user_key_id",
    "filter[filters][2][operator]": "=",
    "filter[filters][2][value][]": "[1, 2, 3]",
    "sort[0][field]": "date_add",
    "sort[0][dir]": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer VZb661cdDfghE5aakvP843e",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_product_list',
    [
        'headers' => [
            'Authorization' => 'Bearer VZb661cdDfghE5aakvP843e',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'take'=> '10',
            'skip'=> '50',
            'filter[filters][0][field]'=> 'date_add',
            'filter[filters][0][operator]'=> 'gt',
            'filter[filters][0][value]'=> '06-01-2022',
            'filter[filters][1][field]'=> 'date_add',
            'filter[filters][1][operator]'=> 'gt',
            'filter[filters][1][value]'=> '06-13-2022',
            'filter[filters][2][field]'=> 'user_key_id',
            'filter[filters][2][operator]'=> '=',
            'filter[filters][2][value][]'=> '[1, 2, 3]',
            'sort[0][field]'=> 'date_add',
            'sort[0][dir]'=> 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_product_list

Query Parameters

take  string optional  

Максимальное количество записей в ответе.

skip  string optional  

Смещение выборки, для пагинации

filter[filters][0][field]  string optional  

Поле БД

filter[filters][0][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][0][value]  string optional  

Дата начала диапазона, формат m-d-y

filter[filters][1][field]  string optional  

Поле БД

filter[filters][1][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][1][value]  string optional  

Дата конца диапазона, формат m-d-y

filter[filters][2][field]  string optional  

Поле БД

filter[filters][2][operator]  string optional  

Больше (gt), меньше (lt) или равно (=)

filter[filters][2][value][]  string optional  

Id магазина

sort[0][field]  string optional  

Поле БД

sort[0][dir]  string optional  

Режим сортировки (asc, desc)

Список товаров конкурентов

requires authentication

Метод позволяет получить список sku товаров конкурентов из сценария Конкуренты СПП.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_product_competitor_list?take=10&skip=50&filter[filters][0][field]=date_add&filter[filters][0][operator]=gt&filter[filters][0][value]=06-01-2022&filter[filters][1][field]=date_add&filter[filters][1][operator]=gt&filter[filters][1][value]=06-13-2022&filter[filters][2][field]=user_key_id&filter[filters][2][operator]=%3D&filter[filters][2][value][]=%5B1%2C+2%2C+3%5D&sort[0][field]=date_add&sort[0][dir]=asc" \
    --header "Authorization: Bearer ke5Z61f8DVh4bdP3c6avaEg" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_product_competitor_list"
);

const params = {
    "take": "10",
    "skip": "50",
    "filter[filters][0][field]": "date_add",
    "filter[filters][0][operator]": "gt",
    "filter[filters][0][value]": "06-01-2022",
    "filter[filters][1][field]": "date_add",
    "filter[filters][1][operator]": "gt",
    "filter[filters][1][value]": "06-13-2022",
    "filter[filters][2][field]": "user_key_id",
    "filter[filters][2][operator]": "=",
    "filter[filters][2][value][]": "[1, 2, 3]",
    "sort[0][field]": "date_add",
    "sort[0][dir]": "asc",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer ke5Z61f8DVh4bdP3c6avaEg",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_product_competitor_list',
    [
        'headers' => [
            'Authorization' => 'Bearer ke5Z61f8DVh4bdP3c6avaEg',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'take'=> '10',
            'skip'=> '50',
            'filter[filters][0][field]'=> 'date_add',
            'filter[filters][0][operator]'=> 'gt',
            'filter[filters][0][value]'=> '06-01-2022',
            'filter[filters][1][field]'=> 'date_add',
            'filter[filters][1][operator]'=> 'gt',
            'filter[filters][1][value]'=> '06-13-2022',
            'filter[filters][2][field]'=> 'user_key_id',
            'filter[filters][2][operator]'=> '=',
            'filter[filters][2][value][]'=> '[1, 2, 3]',
            'sort[0][field]'=> 'date_add',
            'sort[0][dir]'=> 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_product_competitor_list

Query Parameters

take  string optional  

Максимальное количество записей в ответе.

skip  string optional  

Смещение выборки, для пагинации

filter[filters][0][field]  string optional  

Поле БД

filter[filters][0][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][0][value]  string optional  

Дата начала диапазона, формат m-d-y

filter[filters][1][field]  string optional  

Поле БД

filter[filters][1][operator]  string optional  

Больше (gt) или меньше (lt)

filter[filters][1][value]  string optional  

Дата конца диапазона, формат m-d-y

filter[filters][2][field]  string optional  

Поле БД

filter[filters][2][operator]  string optional  

Больше (gt), меньше (lt) или равно (=)

filter[filters][2][value][]  string optional  

Id магазина

sort[0][field]  string optional  

Поле БД

sort[0][dir]  string optional  

Режим сортировки (asc, desc)

Получить товар

requires authentication

Позволяет получить информацию по конкретному товару, который находится под управлением репрайсера. Для получения информации необходимо ввести id товара, его можно получить из метода Product list.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/get_product" \
    --header "Authorization: Bearer 6bg5dhfZ8vke1Dcaa4P63VE" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/get_product"
);

const headers = {
    "Authorization": "Bearer 6bg5dhfZ8vke1Dcaa4P63VE",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/get_product',
    [
        'headers' => [
            'Authorization' => 'Bearer 6bg5dhfZ8vke1Dcaa4P63VE',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/get_product

Body Parameters

id  integer  

Id продукта.

Изменить товары

requires authentication

Метод позволяет изменить настройки цены Sku, находящимся под управлением репрайсера.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/update_product" \
    --header "Authorization: Bearer gba364aPcVh8EZ1fDed6vk5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_list\": [
        {
            \"repricer_script_id\": \"corporis\",
            \"nm_id\": 4,
            \"min_price\": \"300\",
            \"max_price\": \"500\",
            \"target_price\": \"500\",
            \"active\": \"true\"
        }
    ]
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/update_product"
);

const headers = {
    "Authorization": "Bearer gba364aPcVh8EZ1fDed6vk5",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_list": [
        {
            "repricer_script_id": "corporis",
            "nm_id": 4,
            "min_price": "300",
            "max_price": "500",
            "target_price": "500",
            "active": "true"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/update_product',
    [
        'headers' => [
            'Authorization' => 'Bearer gba364aPcVh8EZ1fDed6vk5',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'product_list' => [
                [
                    'repricer_script_id' => 'corporis',
                    'nm_id' => 4,
                    'min_price' => '300',
                    'max_price' => '500',
                    'target_price' => '500',
                    'active' => 'true',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/update_product

Body Parameters

product_list  object[] optional  

Список товаров и их предельных значений цен

product_list[].repricer_script_id  required optional  

integer Id сценария

product_list[].nm_id  integer optional  

Sku товара

product_list[].min_price  string optional  

минимальная цена товара.

product_list[].max_price  string optional  

максимальная цена товара.

product_list[].target_price  string optional  

ожидаемая цена товара.

product_list[].active  required optional  

boolean Статус активности товара.

Удалить товары

requires authentication

Данный метод позволяет удалить товары под управлением репрайсера. Для удаления необходимо указать id товара.

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/repricer/destroy_product" \
    --header "Authorization: Bearer 5PvDZe64f3b1ck8adhVE6ga" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"product_id_list\": [
        1
    ]
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/repricer/destroy_product"
);

const headers = {
    "Authorization": "Bearer 5PvDZe64f3b1ck8adhVE6ga",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_id_list": [
        1
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/repricer/destroy_product',
    [
        'headers' => [
            'Authorization' => 'Bearer 5PvDZe64f3b1ck8adhVE6ga',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'product_id_list' => [
                1,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "data": [],
    "message": "Unauthenticated."
}
 

Запрос      

POST api/2025_09/repricer/destroy_product

Body Parameters

product_id_list  integer[] optional  

Список id товаров. Example [1, 2, 3]

Внешняя аналитика. Категории

Сервис внешней аналитики

Список категорий

requires authentication

Получить список доступных категорий за период

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/show_category" \
    --header "Authorization: Bearer kZEf4Pa3DvhcVa665g1bde8" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"marketPlace\": \"ozon\",
    \"dateFrom\": \"2024-04-23\",
    \"dateTo\": \"2024-05-22\",
    \"categoryName\": \"Электроника\",
    \"take\": 10,
    \"skip\": 0
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/show_category"
);

const headers = {
    "Authorization": "Bearer kZEf4Pa3DvhcVa665g1bde8",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "marketPlace": "ozon",
    "dateFrom": "2024-04-23",
    "dateTo": "2024-05-22",
    "categoryName": "Электроника",
    "take": 10,
    "skip": 0
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/ext-analitic/show_category',
    [
        'headers' => [
            'Authorization' => 'Bearer kZEf4Pa3DvhcVa665g1bde8',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'marketPlace' => 'ozon',
            'dateFrom' => '2024-04-23',
            'dateTo' => '2024-05-22',
            'categoryName' => 'Электроника',
            'take' => 10,
            'skip' => 0,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "success": true,
  "message": "Ok"
  "totals": "5229"
  "data": {{"c_id": 54, "c_name": "Спорт и игры на улице", "c_id_path": [3, 54 ], "c_name_path": ["Детские товары", "Спорт и игры на улице"], "c_has_product": 2183}, ... }
}
 

Запрос      

POST api/2025_09/ext-analitic/show_category

Body Parameters

marketPlace  string  

Маркетплейс.

dateFrom  string optional  

Дата от. Формат Y-m-d.

dateTo  string optional  

Дата до. Формат Y-m-d.

categoryName  string optional  

Название категории.

take  integer  

Максимальное количество записей в ответе.

skip  integer  

Смещение выборки, для пагинации

Ответ

Response Fields

c_id  integer  

Id категории

c_name  string  

Название категории

c_id_path  string[]  

Полный путь Id категории

c_name_path  string[]  

Полный путь Названия категории

c_has_product  integer  

Кол-во товаров в категории

Создать отчет

requires authentication

Метод создания запроса на получение отчета по статистики внешней аналитики раздел категории

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/category_report" \
    --header "Authorization: Bearer evcd16E43fahD5agV8Z6bPk" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"marketPlace\": \"ozon\",
    \"category\": 1,
    \"dateFrom\": \"2024-04-23\",
    \"dateTo\": \"2024-05-22\",
    \"fbs\": false
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/category_report"
);

const headers = {
    "Authorization": "Bearer evcd16E43fahD5agV8Z6bPk",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "marketPlace": "ozon",
    "category": 1,
    "dateFrom": "2024-04-23",
    "dateTo": "2024-05-22",
    "fbs": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/ext-analitic/category_report',
    [
        'headers' => [
            'Authorization' => 'Bearer evcd16E43fahD5agV8Z6bPk',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'marketPlace' => 'ozon',
            'category' => 1,
            'dateFrom' => '2024-04-23',
            'dateTo' => '2024-05-22',
            'fbs' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": true,
    "data": {
        "reportId": "ef046e6b943e2086123e6c69676de1ff24eb6772"
    },
    "message": "Выполняется сбор данных."
}
 

Запрос      

POST api/2025_09/ext-analitic/category_report

Body Parameters

marketPlace  string  

Маркетплейс.

category  integer  

Id категории.

dateFrom  string  

Дата от. Формат Y-m-d.

dateTo  string  

Дата до. Формат Y-m-d.

fbs  boolean  

Использовать склад селлера.

Категории. Общие показатели по категории.

requires authentication

Обзор показателей по категории. Хайлайт

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/category_overview_all" \
    --header "Authorization: Bearer E6VP3Dbf4Zh5g8vc6akaed1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reportId\": \"veritatis\",
    \"filter\": {
        \"title\": \"delectus\",
        \"sku\": \"in\",
        \"position\": {
            \"min\": 16,
            \"max\": 5
        },
        \"category\": [
            \"illum\"
        ],
        \"categories\": {
            \"min\": 11,
            \"max\": 12
        },
        \"p_reviews\": {
            \"min\": 19,
            \"max\": 17
        },
        \"rating\": {
            \"min\": \"velit\",
            \"max\": \"vel\"
        },
        \"seller\": [
            \"ullam\"
        ],
        \"brand\": [
            \"omnis\"
        ],
        \"remains\": {
            \"min\": 11,
            \"max\": 10
        },
        \"sold\": {
            \"min\": 3,
            \"max\": 5
        },
        \"revenue\": {
            \"min\": 6,
            \"max\": 16
        },
        \"avg_sold\": {
            \"min\": \"corporis\",
            \"max\": \"amet\"
        },
        \"avg_revenue\": {
            \"min\": \"autem\",
            \"max\": \"et\"
        },
        \"days\": {
            \"min\": 17,
            \"max\": 7
        },
        \"losses\": {
            \"min\": 14,
            \"max\": 8
        },
        \"price\": {
            \"min\": 2,
            \"max\": 2
        },
        \"price_old\": {
            \"min\": 12,
            \"max\": 1
        },
        \"warehouse\": [
            \"odit\"
        ],
        \"keywords\": {
            \"min\": 3,
            \"max\": 11
        },
        \"new_reviews\": {
            \"min\": 1,
            \"max\": 2
        },
        \"p_weight\": {
            \"min\": 11,
            \"max\": 4
        },
        \"p_volume\": {
            \"min\": \"qui\",
            \"max\": \"praesentium\"
        },
        \"discount\": {
            \"min\": 11,
            \"max\": 7
        },
        \"p_delivered_percent\": {
            \"min\": 20,
            \"max\": 13
        },
        \"p_true_seller_price\": {
            \"min\": 9,
            \"max\": 14
        },
        \"price_spp\": {
            \"min\": 5,
            \"max\": 4
        },
        \"price_discount_spp\": {
            \"min\": 14,
            \"max\": 18
        },
        \"tot_photo\": {
            \"min\": 5,
            \"max\": 17
        },
        \"date\": {
            \"min\": \"est\",
            \"max\": \"officia\"
        },
        \"date2\": {
            \"min\": \"adipisci\",
            \"max\": \"nemo\"
        },
        \"adv_1q\": \"placeat\",
        \"adv_3q\": \"eius\",
        \"seo_1q\": \"id\",
        \"seo_3q\": \"non\"
    }
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/category_overview_all"
);

const headers = {
    "Authorization": "Bearer E6VP3Dbf4Zh5g8vc6akaed1",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reportId": "veritatis",
    "filter": {
        "title": "delectus",
        "sku": "in",
        "position": {
            "min": 16,
            "max": 5
        },
        "category": [
            "illum"
        ],
        "categories": {
            "min": 11,
            "max": 12
        },
        "p_reviews": {
            "min": 19,
            "max": 17
        },
        "rating": {
            "min": "velit",
            "max": "vel"
        },
        "seller": [
            "ullam"
        ],
        "brand": [
            "omnis"
        ],
        "remains": {
            "min": 11,
            "max": 10
        },
        "sold": {
            "min": 3,
            "max": 5
        },
        "revenue": {
            "min": 6,
            "max": 16
        },
        "avg_sold": {
            "min": "corporis",
            "max": "amet"
        },
        "avg_revenue": {
            "min": "autem",
            "max": "et"
        },
        "days": {
            "min": 17,
            "max": 7
        },
        "losses": {
            "min": 14,
            "max": 8
        },
        "price": {
            "min": 2,
            "max": 2
        },
        "price_old": {
            "min": 12,
            "max": 1
        },
        "warehouse": [
            "odit"
        ],
        "keywords": {
            "min": 3,
            "max": 11
        },
        "new_reviews": {
            "min": 1,
            "max": 2
        },
        "p_weight": {
            "min": 11,
            "max": 4
        },
        "p_volume": {
            "min": "qui",
            "max": "praesentium"
        },
        "discount": {
            "min": 11,
            "max": 7
        },
        "p_delivered_percent": {
            "min": 20,
            "max": 13
        },
        "p_true_seller_price": {
            "min": 9,
            "max": 14
        },
        "price_spp": {
            "min": 5,
            "max": 4
        },
        "price_discount_spp": {
            "min": 14,
            "max": 18
        },
        "tot_photo": {
            "min": 5,
            "max": 17
        },
        "date": {
            "min": "est",
            "max": "officia"
        },
        "date2": {
            "min": "adipisci",
            "max": "nemo"
        },
        "adv_1q": "placeat",
        "adv_3q": "eius",
        "seo_1q": "id",
        "seo_3q": "non"
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/ext-analitic/category_overview_all',
    [
        'headers' => [
            'Authorization' => 'Bearer E6VP3Dbf4Zh5g8vc6akaed1',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'reportId' => 'veritatis',
            'filter' => [
                'title' => 'delectus',
                'sku' => 'in',
                'position' => [
                    'min' => 16,
                    'max' => 5,
                ],
                'category' => [
                    'illum',
                ],
                'categories' => [
                    'min' => 11,
                    'max' => 12,
                ],
                'p_reviews' => [
                    'min' => 19,
                    'max' => 17,
                ],
                'rating' => [
                    'min' => 'velit',
                    'max' => 'vel',
                ],
                'seller' => [
                    'ullam',
                ],
                'brand' => [
                    'omnis',
                ],
                'remains' => [
                    'min' => 11,
                    'max' => 10,
                ],
                'sold' => [
                    'min' => 3,
                    'max' => 5,
                ],
                'revenue' => [
                    'min' => 6,
                    'max' => 16,
                ],
                'avg_sold' => [
                    'min' => 'corporis',
                    'max' => 'amet',
                ],
                'avg_revenue' => [
                    'min' => 'autem',
                    'max' => 'et',
                ],
                'days' => [
                    'min' => 17,
                    'max' => 7,
                ],
                'losses' => [
                    'min' => 14,
                    'max' => 8,
                ],
                'price' => [
                    'min' => 2,
                    'max' => 2,
                ],
                'price_old' => [
                    'min' => 12,
                    'max' => 1,
                ],
                'warehouse' => [
                    'odit',
                ],
                'keywords' => [
                    'min' => 3,
                    'max' => 11,
                ],
                'new_reviews' => [
                    'min' => 1,
                    'max' => 2,
                ],
                'p_weight' => [
                    'min' => 11,
                    'max' => 4,
                ],
                'p_volume' => [
                    'min' => 'qui',
                    'max' => 'praesentium',
                ],
                'discount' => [
                    'min' => 11,
                    'max' => 7,
                ],
                'p_delivered_percent' => [
                    'min' => 20,
                    'max' => 13,
                ],
                'p_true_seller_price' => [
                    'min' => 9,
                    'max' => 14,
                ],
                'price_spp' => [
                    'min' => 5,
                    'max' => 4,
                ],
                'price_discount_spp' => [
                    'min' => 14,
                    'max' => 18,
                ],
                'tot_photo' => [
                    'min' => 5,
                    'max' => 17,
                ],
                'date' => [
                    'min' => 'est',
                    'max' => 'officia',
                ],
                'date2' => [
                    'min' => 'adipisci',
                    'max' => 'nemo',
                ],
                'adv_1q' => 'placeat',
                'adv_3q' => 'eius',
                'seo_1q' => 'id',
                'seo_3q' => 'non',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "success": true,
  "message": "Ok"
  "data": {
       "DY_DATE": {"dynamic": ["2025-04-01", "2025-04-02", ... ], "total": "1970-01-01"},
       "sold": {"dynamic": ["1", "1", ... ], "total": "29"},
       "avg_sold": {"dynamic": [0.1, 0.1, ...],  "total": 2.9},
       "revenue": {"dynamic": ["539", "539", ...], "total": "16599"},
       "avg_revenue": {"dynamic": [54, 54, ...], "total": 1660},
       "products": {"dynamic": ["13", "13", ...], "total": "13"},
       "products_with_sales": {"dynamic": ["1", "1", ...], "total": "2"},
       "sellers": {"dynamic": ["9", "9", ...], "total": "9"},
       "sellers_with_sales": {"dynamic": ["1", "1", ...],  "total": "2"},
       "brands": {"dynamic": ["10", "10", ...], "total": "10"},
       "brands_with_sales": {"dynamic": ["1", "1", ...], "total": "2"},
       "revenue_per_product": {"dynamic": ["539", "539", ...], "total": "572"},
       "losses": {"dynamic": [0, 0, ...], "total": 0}}
  }
 

Запрос      

POST api/2025_09/ext-analitic/category_overview_all

Body Parameters

reportId  string  

Id запроса.

filter  object optional  

Фильтр

filter.title  string optional  

Название товара

filter.sku  string optional  

Sku товара

filter.position  object optional  

filter.position.min  integer optional  

Позиция min

filter.position.max  integer optional  

Позиция max

filter.category  string[] optional  

Список выбранных категорий.

filter.categories  object optional  

filter.categories.min  integer optional  

Кол-во категорий min

filter.categories.max  integer optional  

Кол-во категорий max

filter.p_reviews  object optional  

filter.p_reviews.min  integer optional  

Кол-во отзывов min

filter.p_reviews.max  integer optional  

Кол-во отзывов max

filter.rating  object optional  

filter.rating.min  string optional  

Рейтинг min

filter.rating.max  string optional  

Рейтинг max

filter.seller  string[] optional  

Список выбранных продавцов.

filter.brand  string[] optional  

Список выбранных брендов.

filter.remains  object optional  

filter.remains.min  integer optional  

Текущий остаток min

filter.remains.max  integer optional  

Текущий остаток max

filter.sold  object optional  

filter.sold.min  integer optional  

Продано за n дней min

filter.sold.max  integer optional  

Продано за n дней max

filter.revenue  object optional  

filter.revenue.min  integer optional  

Выручка за n дней min

filter.revenue.max  integer optional  

Выручка за n дней max

filter.avg_sold  object optional  

filter.avg_sold.min  string optional  

Среднее продаж в день min

filter.avg_sold.max  string optional  

Среднее продаж в день max

filter.avg_revenue  object optional  

filter.avg_revenue.min  string optional  

Средняя выручка в день min

filter.avg_revenue.max  string optional  

Среднее выручка в день max

filter.days  object optional  

filter.days.min  integer optional  

Дней в наличии min

filter.days.max  integer optional  

Дней в наличии max

filter.losses  object optional  

filter.losses.min  integer optional  

Упущенная выручка min

filter.losses.max  integer optional  

Упущенная выручка max

filter.price  object optional  

filter.price.min  integer optional  

Цена min

filter.price.max  integer optional  

Цена max

filter.price_old  object optional  

filter.price_old.min  integer optional  

Старая цена min

filter.price_old.max  integer optional  

Старая цена max

filter.warehouse  string[] optional  

Список выбранных складов.

filter.keywords  object optional  

filter.keywords.min  integer optional  

Кол-во запросов min

filter.keywords.max  integer optional  

Кол-во запросов max

filter.new_reviews  object optional  

filter.new_reviews.min  integer optional  

Кол-во отзывов за n дней min

filter.new_reviews.max  integer optional  

Кол-во отзывов за n дней max

filter.p_weight  object optional  

filter.p_weight.min  integer optional  

Вес min

filter.p_weight.max  integer optional  

Вес max

filter.p_volume  object optional  

filter.p_volume.min  string optional  

Вес min

filter.p_volume.max  string optional  

Вес max

filter.discount  object optional  

filter.discount.min  integer optional  

Скидка min

filter.discount.max  integer optional  

Скидка max

filter.p_delivered_percent  object optional  

filter.p_delivered_percent.min  integer optional  

Процент выкупа min

filter.p_delivered_percent.max  integer optional  

Процент выкупа max

filter.p_true_seller_price  object optional  

filter.p_true_seller_price.min  integer optional  

filter.p_true_seller_price.max  integer optional  

filter.price_spp  object optional  

filter.price_spp.min  integer optional  

filter.price_spp.max  integer optional  

filter.price_discount_spp  object optional  

filter.price_discount_spp.min  integer optional  

filter.price_discount_spp.max  integer optional  

filter.tot_photo  object optional  

filter.tot_photo.min  integer optional  

filter.tot_photo.max  integer optional  

filter.date  object optional  

filter.date.min  string optional  

Дата публикования впервые - от

filter.date.max  string optional  

Дата публикования впервые - до

filter.date2  object optional  

filter.date2.min  string optional  

Дата публикования последний раз - от

filter.date2.max  string optional  

Дата публикования последний раз - до

filter.adv_1  object  

filter.adv_1.min  integer optional  

Платный трафик Яндекс min

filter.adv_1.max  integer optional  

Платный трафик Яндекс max

filter.adv_1q  string optional  

Платный трафик Яндекс

filter.adv_3  object  

filter.adv_3.min  integer optional  

Платный трафик Google min

filter.adv_3.max  integer optional  

Платный трафик Google max

filter.adv_3q  string optional  

Платный трафик Google

filter.seo_1  object  

filter.seo_1.min  integer optional  

SEO выдача Яндекс min

filter.seo_1.max  integer optional  

SEO выдача Яндекс max

filter.seo_1q  string optional  

SEO выдача Яндекс

filter.seo_3  object  

filter.seo_3.min  integer optional  

SEO выдача Google min

filter.seo_3.max  integer optional  

SEO выдача Google max

filter.seo_3q  string optional  

SEO выдача Google

Ответ

Response Fields

DY_DATE  string  

полученные даты

sold  string  

продажи

avg_sold  string  

средние продажи за день

revenue  string  

выручка

products  string  

кол-во товаров

products_with_sales  string  

кол-во товаров с продажами

sellers  string  

кол-во продавцов

sellers_with_sales  string  

кол-во продавцов с продажами

brands  string  

кол-во кол-во брендов

brands_with_sales  string  

кол-во брендов с продажами

revenue_per_product  string  

средний чек

losses  string  

упущенная выручка

Категории. Товары

requires authentication

Статистика продаж по категории. Товары

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_product" \
    --header "Authorization: Bearer 634ceaP8dhgDfkb1vZE6Va5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reportId\": \"aut\",
    \"take\": 10,
    \"skip\": 50,
    \"sort\": \"sold\",
    \"sort_dir\": \"asc\",
    \"filter\": {
        \"title\": \"quo\",
        \"sku\": \"natus\",
        \"position\": {
            \"min\": 18,
            \"max\": 12
        },
        \"category\": [
            \"rerum\"
        ],
        \"categories\": {
            \"min\": 5,
            \"max\": 6
        },
        \"p_reviews\": {
            \"min\": 4,
            \"max\": 1
        },
        \"rating\": {
            \"min\": \"dolor\",
            \"max\": \"placeat\"
        },
        \"seller\": [
            \"possimus\"
        ],
        \"s_inn\": \"123456\",
        \"s_ogrn\": \"1234567\",
        \"brand\": [
            \"voluptas\"
        ],
        \"remains\": {
            \"min\": 7,
            \"max\": 20
        },
        \"sold\": {
            \"min\": 19,
            \"max\": 12
        },
        \"revenue\": {
            \"min\": 12,
            \"max\": 11
        },
        \"avg_sold\": {
            \"min\": \"impedit\",
            \"max\": \"at\"
        },
        \"avg_revenue\": {
            \"min\": \"iure\",
            \"max\": \"illo\"
        },
        \"days\": {
            \"min\": 7,
            \"max\": 13
        },
        \"losses\": {
            \"min\": 13,
            \"max\": 5
        },
        \"price\": {
            \"min\": 6,
            \"max\": 18
        },
        \"price_old\": {
            \"min\": 12,
            \"max\": 3
        },
        \"warehouse\": [
            \"dolores\"
        ],
        \"keywords\": {
            \"min\": 3,
            \"max\": 9
        },
        \"new_reviews\": {
            \"min\": 3,
            \"max\": 11
        },
        \"p_weight\": {
            \"min\": 4,
            \"max\": 18
        },
        \"p_volume\": {
            \"min\": \"consequatur\",
            \"max\": \"vel\"
        },
        \"discount\": {
            \"min\": 16,
            \"max\": 12
        },
        \"p_delivered_percent\": {
            \"min\": 12,
            \"max\": 10
        },
        \"p_true_seller_price\": {
            \"min\": 10,
            \"max\": 6
        },
        \"price_spp\": {
            \"min\": 15,
            \"max\": 1
        },
        \"price_discount_spp\": {
            \"min\": 3,
            \"max\": 18
        },
        \"tot_photo\": {
            \"min\": 1,
            \"max\": 19
        },
        \"date\": {
            \"min\": \"fugit\",
            \"max\": \"quia\"
        },
        \"date2\": {
            \"min\": \"reiciendis\",
            \"max\": \"porro\"
        },
        \"adv_1q\": \"odio\",
        \"adv_3q\": \"qui\",
        \"seo_1q\": \"earum\",
        \"seo_3q\": \"dolores\"
    }
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_product"
);

const headers = {
    "Authorization": "Bearer 634ceaP8dhgDfkb1vZE6Va5",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reportId": "aut",
    "take": 10,
    "skip": 50,
    "sort": "sold",
    "sort_dir": "asc",
    "filter": {
        "title": "quo",
        "sku": "natus",
        "position": {
            "min": 18,
            "max": 12
        },
        "category": [
            "rerum"
        ],
        "categories": {
            "min": 5,
            "max": 6
        },
        "p_reviews": {
            "min": 4,
            "max": 1
        },
        "rating": {
            "min": "dolor",
            "max": "placeat"
        },
        "seller": [
            "possimus"
        ],
        "s_inn": "123456",
        "s_ogrn": "1234567",
        "brand": [
            "voluptas"
        ],
        "remains": {
            "min": 7,
            "max": 20
        },
        "sold": {
            "min": 19,
            "max": 12
        },
        "revenue": {
            "min": 12,
            "max": 11
        },
        "avg_sold": {
            "min": "impedit",
            "max": "at"
        },
        "avg_revenue": {
            "min": "iure",
            "max": "illo"
        },
        "days": {
            "min": 7,
            "max": 13
        },
        "losses": {
            "min": 13,
            "max": 5
        },
        "price": {
            "min": 6,
            "max": 18
        },
        "price_old": {
            "min": 12,
            "max": 3
        },
        "warehouse": [
            "dolores"
        ],
        "keywords": {
            "min": 3,
            "max": 9
        },
        "new_reviews": {
            "min": 3,
            "max": 11
        },
        "p_weight": {
            "min": 4,
            "max": 18
        },
        "p_volume": {
            "min": "consequatur",
            "max": "vel"
        },
        "discount": {
            "min": 16,
            "max": 12
        },
        "p_delivered_percent": {
            "min": 12,
            "max": 10
        },
        "p_true_seller_price": {
            "min": 10,
            "max": 6
        },
        "price_spp": {
            "min": 15,
            "max": 1
        },
        "price_discount_spp": {
            "min": 3,
            "max": 18
        },
        "tot_photo": {
            "min": 1,
            "max": 19
        },
        "date": {
            "min": "fugit",
            "max": "quia"
        },
        "date2": {
            "min": "reiciendis",
            "max": "porro"
        },
        "adv_1q": "odio",
        "adv_3q": "qui",
        "seo_1q": "earum",
        "seo_3q": "dolores"
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_product',
    [
        'headers' => [
            'Authorization' => 'Bearer 634ceaP8dhgDfkb1vZE6Va5',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'reportId' => 'aut',
            'take' => 10,
            'skip' => 50,
            'sort' => 'sold',
            'sort_dir' => 'asc',
            'filter' => [
                'title' => 'quo',
                'sku' => 'natus',
                'position' => [
                    'min' => 18,
                    'max' => 12,
                ],
                'category' => [
                    'rerum',
                ],
                'categories' => [
                    'min' => 5,
                    'max' => 6,
                ],
                'p_reviews' => [
                    'min' => 4,
                    'max' => 1,
                ],
                'rating' => [
                    'min' => 'dolor',
                    'max' => 'placeat',
                ],
                'seller' => [
                    'possimus',
                ],
                's_inn' => '123456',
                's_ogrn' => '1234567',
                'brand' => [
                    'voluptas',
                ],
                'remains' => [
                    'min' => 7,
                    'max' => 20,
                ],
                'sold' => [
                    'min' => 19,
                    'max' => 12,
                ],
                'revenue' => [
                    'min' => 12,
                    'max' => 11,
                ],
                'avg_sold' => [
                    'min' => 'impedit',
                    'max' => 'at',
                ],
                'avg_revenue' => [
                    'min' => 'iure',
                    'max' => 'illo',
                ],
                'days' => [
                    'min' => 7,
                    'max' => 13,
                ],
                'losses' => [
                    'min' => 13,
                    'max' => 5,
                ],
                'price' => [
                    'min' => 6,
                    'max' => 18,
                ],
                'price_old' => [
                    'min' => 12,
                    'max' => 3,
                ],
                'warehouse' => [
                    'dolores',
                ],
                'keywords' => [
                    'min' => 3,
                    'max' => 9,
                ],
                'new_reviews' => [
                    'min' => 3,
                    'max' => 11,
                ],
                'p_weight' => [
                    'min' => 4,
                    'max' => 18,
                ],
                'p_volume' => [
                    'min' => 'consequatur',
                    'max' => 'vel',
                ],
                'discount' => [
                    'min' => 16,
                    'max' => 12,
                ],
                'p_delivered_percent' => [
                    'min' => 12,
                    'max' => 10,
                ],
                'p_true_seller_price' => [
                    'min' => 10,
                    'max' => 6,
                ],
                'price_spp' => [
                    'min' => 15,
                    'max' => 1,
                ],
                'price_discount_spp' => [
                    'min' => 3,
                    'max' => 18,
                ],
                'tot_photo' => [
                    'min' => 1,
                    'max' => 19,
                ],
                'date' => [
                    'min' => 'fugit',
                    'max' => 'quia',
                ],
                'date2' => [
                    'min' => 'reiciendis',
                    'max' => 'porro',
                ],
                'adv_1q' => 'odio',
                'adv_3q' => 'qui',
                'seo_1q' => 'earum',
                'seo_3q' => 'dolores',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
"data": {
   "items": [ {
       "p_id": "222756289",
       "sku": "222756289",
       "title": "Адаптер дискового тормоза 20мм для велосипеда",
       "image": "https://basket-15.wbbasket.ru/vol2227/part222756/222756289/images/c516x688/1.webp",
       "date": "2024-04-19",
       "date2": "2025-05-01",
       "p_c2p": [1060, 7132, 1075583, 1082370],
       "p_c2p_sort": [503, 1, 451, 1],
       "position": 1,
       "_min_pos_idx": "2",
       "_c_id_path": [9, 81, 1060, 7132],
       "category": "Спорт / Велоспорт / Велозапчасти / Адаптеры для тормозной системы",
       "p_reviews": 92,
       "rating": 4.5,
       "s_id": 873274,
       "seller": "L&M SHOP",
       "s_inn": "581302035510",
       "s_ogrn": "321583500013471",
       "s_id_BZ": -1,
       "b_id": 1541281,
       "brand": "MaLyuMi Sport",
       "remains": 66,
       "price": 551,
       "price_old": 1325,
       "mp_url": "https://www.wildberries.ru/catalog/222756289/detail.aspx",
       "sf_p_url": "https://salesfinder.ru/wb/product/222756289/info/days?date=2025-04-01&date2=2025-04-10&fbs=0",
       "p_weight": -1,
       "p_volume": -1,
       "adv_1": -1,
       "adv_1q": "-1",
       "adv_3": -1,
       "adv_3q": "-1",
       "seo_1": -1,
       "seo_1q": "-1",
       "seo_3": -1,
       "seo_3q": "-1",
       "discount": 58,
       "price_spp": 556,
       "price_discount_spp": 1,
       "tot_photo": 8,
       "warehouse": "wb",
       "sold": "26",
       "revenue": "14415",
       "avg_sold": 2.6,
       "avg_revenue": 1442,
       "days": "10",
       "losses": 0,
       "keywords": 7,
       "new_reviews": 6,
       "categories": 4,
       "categories_list": [{"position": 503,"c_id_path": [9,81,1060]}, ...]
       }, ...],
   "ranges": [{
       "total": "13","p_id": ["29600581","327210069"],
       "position": [1,70],
       "categories": [1,4],
       "p_reviews": [0,106],
       "rating": [0,4.9],
       "remains": [0,66],
       "sold": ["0","26"],
       "revenue": ["0","14415"],
       "avg_sold": [0,2.6],
       "avg_revenue": [0,1442],
       "days": ["1","10"],
       "losses": [0,0],
       "price": [182,1473],
       "price_old": [219,2096],
       "keywords": [0,7],
       "new_reviews": [0,6],
       "p_weight": [0,200],
       "p_volume": [0,0.588],
       "adv_1": [0,-1],
       "adv_3": [0,-1],
       "seo_1": [0,2],
       "seo_3": [0,-1],
       "price_spp": [186,1504],
       "price_discount_spp": [1,13],
       "tot_photo": [1,8],
       "discount": [12,58]
       }],
   "categories": [{
       "c_id": 9,
       "c_name": "Спорт",
       "c_has_product": 0,
       "c_date2": "2025-04-10",
       "c_id_path": [9],
       "c_name_path": "Спорт"
       }, ...]
 },
"success": true,
"message": "Ok"
}
 

Запрос      

POST api/2025_09/ext-analitic/get_category_product

Body Parameters

reportId  string  

Id запроса.

take  integer  

Максимальное количество записей в ответе.

skip  integer  

Смещение выборки, для пагинации

sort  string optional  

Поле БД

sort_dir  string optional  

Режим сортировки (asc, desc)

filter  object optional  

Фильтр

filter.title  string optional  

Название товара

filter.sku  string optional  

Sku товара

filter.position  object optional  

filter.position.min  integer optional  

Позиция min

filter.position.max  integer optional  

Позиция max

filter.category  string[] optional  

Список выбранных категорий.

filter.categories  object optional  

filter.categories.min  integer optional  

Кол-во категорий min

filter.categories.max  integer optional  

Кол-во категорий max

filter.p_reviews  object optional  

filter.p_reviews.min  integer optional  

Кол-во отзывов min

filter.p_reviews.max  integer optional  

Кол-во отзывов max

filter.rating  object optional  

filter.rating.min  string optional  

Рейтинг min

filter.rating.max  string optional  

Рейтинг max

filter.seller  string[] optional  

Список выбранных продавцов.

filter.s_inn  string optional  

ИНН

filter.s_ogrn  string optional  

ОГРН

filter.brand  string[] optional  

Список выбранных брендов.

filter.remains  object optional  

filter.remains.min  integer optional  

Текущий остаток min

filter.remains.max  integer optional  

Текущий остаток max

filter.sold  object optional  

filter.sold.min  integer optional  

Продано за n дней min

filter.sold.max  integer optional  

Продано за n дней max

filter.revenue  object optional  

filter.revenue.min  integer optional  

Выручка за n дней min

filter.revenue.max  integer optional  

Выручка за n дней max

filter.avg_sold  object optional  

filter.avg_sold.min  string optional  

Среднее продаж в день min

filter.avg_sold.max  string optional  

Среднее продаж в день max

filter.avg_revenue  object optional  

filter.avg_revenue.min  string optional  

Средняя выручка в день min

filter.avg_revenue.max  string optional  

Среднее выручка в день max

filter.days  object optional  

filter.days.min  integer optional  

Дней в наличии min

filter.days.max  integer optional  

Дней в наличии max

filter.losses  object optional  

filter.losses.min  integer optional  

Упущенная выручка min

filter.losses.max  integer optional  

Упущенная выручка max

filter.price  object optional  

filter.price.min  integer optional  

Цена min

filter.price.max  integer optional  

Цена max

filter.price_old  object optional  

filter.price_old.min  integer optional  

Старая цена min

filter.price_old.max  integer optional  

Старая цена max

filter.warehouse  string[] optional  

Список выбранных складов.

filter.keywords  object optional  

filter.keywords.min  integer optional  

Кол-во запросов min

filter.keywords.max  integer optional  

Кол-во запросов max

filter.new_reviews  object optional  

filter.new_reviews.min  integer optional  

Кол-во отзывов за n дней min

filter.new_reviews.max  integer optional  

Кол-во отзывов за n дней max

filter.p_weight  object optional  

filter.p_weight.min  integer optional  

Вес min

filter.p_weight.max  integer optional  

Вес max

filter.p_volume  object optional  

filter.p_volume.min  string optional  

Вес min

filter.p_volume.max  string optional  

Вес max

filter.discount  object optional  

filter.discount.min  integer optional  

Скидка min

filter.discount.max  integer optional  

Скидка max

filter.p_delivered_percent  object optional  

filter.p_delivered_percent.min  integer optional  

Процент выкупа min

filter.p_delivered_percent.max  integer optional  

Процент выкупа max

filter.p_true_seller_price  object optional  

filter.p_true_seller_price.min  integer optional  

Цена продавца min

filter.p_true_seller_price.max  integer optional  

Цена продавца max

filter.price_spp  object optional  

filter.price_spp.min  integer optional  

Цена без WB кошелька min

filter.price_spp.max  integer optional  

Цена без WB кошелька max

filter.price_discount_spp  object optional  

filter.price_discount_spp.min  integer optional  

Процент скидки по WB кошельку min

filter.price_discount_spp.max  integer optional  

Процент скидки по WB кошельку max

filter.tot_photo  object optional  

filter.tot_photo.min  integer optional  

Кол-во картинок min

filter.tot_photo.max  integer optional  

Кол-во картинок max

filter.date  object optional  

filter.date.min  string optional  

Дата публикования впервые - от

filter.date.max  string optional  

Дата публикования впервые - до

filter.date2  object optional  

filter.date2.min  string optional  

Дата публикования последний раз - от

filter.date2.max  string optional  

Дата публикования последний раз - до

filter.adv_1  object  

filter.adv_1.min  integer optional  

Платный трафик Яндекс min

filter.adv_1.max  integer optional  

Платный трафик Яндекс max

filter.adv_1q  string optional  

Платный трафик Яндекс

filter.adv_3  object  

filter.adv_3.min  integer optional  

Платный трафик Google min

filter.adv_3.max  integer optional  

Платный трафик Google max

filter.adv_3q  string optional  

Платный трафик Google

filter.seo_1  object  

filter.seo_1.min  integer optional  

SEO выдача Яндекс min

filter.seo_1.max  integer optional  

SEO выдача Яндекс max

filter.seo_1q  string optional  

SEO выдача Яндекс

filter.seo_3  object  

filter.seo_3.min  integer optional  

SEO выдача Google min

filter.seo_3.max  integer optional  

SEO выдача Google max

filter.seo_3q  string optional  

SEO выдача Google

Ответ

Response Fields

p_id  string  

Id товара

sku  string  

Sku товара

title  string  

Название товара

image  string  

-

date  string  

Дата первого упоминания

date2  string  

Дата последнего упоминания

p_c2p  string[]  

-

p_c2p_sort  string[]  

-

position  integer  

Позиция товара

_min_pos_idx  string  

-

_c_id_path  string[]  

-

categories_list  string[]  

-

category  string  

Категория

categories  integer  

Кол-во категориё

p_reviews  integer  

Кол-во отзывов всего

new_reviews  integer  

Кол-во отзывов за период

rating  number  

Рейтинг

s_id  string  

Id продавца

seller  string  

Название продавца

s_inn  string  

ИНН продавца

s_ogrn  string  

ОГРН продавца

s_id_BZ  string  

Продает на двух площадках Ozon и WB

b_id  string  

Id бренда

brand  string  

Название бренда

remains  integer  

Кол-во продаж

price  integer  

(WB:Цена с WB кошельком, OZON:Цена)

(только    

OZON) p_delivered_percent integer Процент выкупа

price_old  integer  

Старая цена

mp_url  string  

Ссылка на товар в МП

sf_p_url  string  

Ссылка на товар в системе Salesfinder

p_weight  string  

Вес товара, г

p_volume  string  

Объем товара, л

adv_1  integer  

Кол-во запросов в Директ

adv_1q  string  

Платный трафик Яндекс (да/нет)

adv_3  integer  

-

adv_3q  string  

-

seo_1  integer  

Кол-во запросов Яндекс

seo_1q  string  

SEO выдача Яндекс (да/нет)

seo_3  integer  

Кол-во запросов Google

seo_3q  string  

SEO выдача Google (да/нет)

(для    

WB) tot_photo integer Кол-во фото

warehouse  string  

Наименование склада (WB: wb/wb+fbs; OZON: FBO/FBO+FBS)

sold  integer  

Продажи за период

avg_sold  number  

Средние продажи за день

revenue  integer  

Выручка за период

avg_revenue  number  

Средняя выручка за день

days  string  

Дней в наличии

losses  integer  

Упущенная выручка

keywords  integer  

Кол-во запросов

Категории. Бренды

requires authentication

Статистика продаж по категории. Бренд

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_brand" \
    --header "Authorization: Bearer dabkDh664PE1Vcae58vgfZ3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reportId\": \"quod\",
    \"take\": 10,
    \"skip\": 50,
    \"sort\": \"sold\",
    \"sort_dir\": \"asc\",
    \"filter\": {
        \"brand\": [
            \"nostrum\"
        ],
        \"products\": {
            \"min\": 16,
            \"max\": 19
        },
        \"products_with_sales\": {
            \"min\": 18,
            \"max\": 4
        },
        \"rating\": {
            \"min\": \"ducimus\",
            \"max\": \"exercitationem\"
        },
        \"reviews\": {
            \"min\": 1,
            \"max\": 20
        },
        \"avg_reviews\": {
            \"min\": 19,
            \"max\": 19
        },
        \"sold\": {
            \"min\": 2,
            \"max\": 18
        },
        \"avg_sold\": {
            \"min\": \"laboriosam\",
            \"max\": \"molestiae\"
        },
        \"revenue\": {
            \"min\": 15,
            \"max\": 8
        },
        \"avg_revenue\": {
            \"min\": \"occaecati\",
            \"max\": \"praesentium\"
        }
    }
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_brand"
);

const headers = {
    "Authorization": "Bearer dabkDh664PE1Vcae58vgfZ3",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reportId": "quod",
    "take": 10,
    "skip": 50,
    "sort": "sold",
    "sort_dir": "asc",
    "filter": {
        "brand": [
            "nostrum"
        ],
        "products": {
            "min": 16,
            "max": 19
        },
        "products_with_sales": {
            "min": 18,
            "max": 4
        },
        "rating": {
            "min": "ducimus",
            "max": "exercitationem"
        },
        "reviews": {
            "min": 1,
            "max": 20
        },
        "avg_reviews": {
            "min": 19,
            "max": 19
        },
        "sold": {
            "min": 2,
            "max": 18
        },
        "avg_sold": {
            "min": "laboriosam",
            "max": "molestiae"
        },
        "revenue": {
            "min": 15,
            "max": 8
        },
        "avg_revenue": {
            "min": "occaecati",
            "max": "praesentium"
        }
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_brand',
    [
        'headers' => [
            'Authorization' => 'Bearer dabkDh664PE1Vcae58vgfZ3',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'reportId' => 'quod',
            'take' => 10,
            'skip' => 50,
            'sort' => 'sold',
            'sort_dir' => 'asc',
            'filter' => [
                'brand' => [
                    'nostrum',
                ],
                'products' => [
                    'min' => 16,
                    'max' => 19,
                ],
                'products_with_sales' => [
                    'min' => 18,
                    'max' => 4,
                ],
                'rating' => [
                    'min' => 'ducimus',
                    'max' => 'exercitationem',
                ],
                'reviews' => [
                    'min' => 1,
                    'max' => 20,
                ],
                'avg_reviews' => [
                    'min' => 19,
                    'max' => 19,
                ],
                'sold' => [
                    'min' => 2,
                    'max' => 18,
                ],
                'avg_sold' => [
                    'min' => 'laboriosam',
                    'max' => 'molestiae',
                ],
                'revenue' => [
                    'min' => 15,
                    'max' => 8,
                ],
                'avg_revenue' => [
                    'min' => 'occaecati',
                    'max' => 'praesentium',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
"data": {
   "items": [ {
       "p_id": "222756289",
       "sku": "222756289",
       "title": "Адаптер дискового тормоза 20мм для велосипеда",
       "image": "https://basket-15.wbbasket.ru/vol2227/part222756/222756289/images/c516x688/1.webp",
       "date": "2024-04-19",
       "date2": "2025-05-01",
       "p_c2p": [1060, 7132, 1075583, 1082370],
       "p_c2p_sort": [503, 1, 451, 1],
       "position": 1,
       "_min_pos_idx": "2",
       "_c_id_path": [9, 81, 1060, 7132],
       "category": "Спорт / Велоспорт / Велозапчасти / Адаптеры для тормозной системы",
       "p_reviews": 92,
       "rating": 4.5,
       "s_id": 873274,
       "seller": "L&M SHOP",
       "s_inn": "581302035510",
       "s_ogrn": "321583500013471",
       "s_id_BZ": -1,
       "b_id": 1541281,
       "brand": "MaLyuMi Sport",
       "remains": 66,
       "price": 551,
       "price_old": 1325,
       "mp_url": "https://www.wildberries.ru/catalog/222756289/detail.aspx",
       "sf_p_url": "https://salesfinder.ru/wb/product/222756289/info/days?date=2025-04-01&date2=2025-04-10&fbs=0",
       "p_weight": -1,
       "p_volume": -1,
       "adv_1": -1,
       "adv_1q": "-1",
       "adv_3": -1,
       "adv_3q": "-1",
       "seo_1": -1,
       "seo_1q": "-1",
       "seo_3": -1,
       "seo_3q": "-1",
       "discount": 58,
       "price_spp": 556,
       "price_discount_spp": 1,
       "tot_photo": 8,
       "warehouse": "wb",
       "sold": "26",
       "revenue": "14415",
       "avg_sold": 2.6,
       "avg_revenue": 1442,
       "days": "10",
       "losses": 0,
       "keywords": 7,
       "new_reviews": 6,
       "categories": 4,
       "categories_list": [{"position": 503,"c_id_path": [9,81,1060]}, ...]
       }, ...],
   "ranges": [{
       "total": "13","p_id": ["29600581","327210069"],
       "position": [1,70],
       "categories": [1,4],
       "p_reviews": [0,106],
       "rating": [0,4.9],
       "remains": [0,66],
       "sold": ["0","26"],
       "revenue": ["0","14415"],
       "avg_sold": [0,2.6],
       "avg_revenue": [0,1442],
       "days": ["1","10"],
       "losses": [0,0],
       "price": [182,1473],
       "price_old": [219,2096],
       "keywords": [0,7],
       "new_reviews": [0,6],
       "p_weight": [0,200],
       "p_volume": [0,0.588],
       "adv_1": [0,-1],
       "adv_3": [0,-1],
       "seo_1": [0,2],
       "seo_3": [0,-1],
       "price_spp": [186,1504],
       "price_discount_spp": [1,13],
       "tot_photo": [1,8],
       "discount": [12,58]
       }],
   "categories": [{
       "c_id": 9,
       "c_name": "Спорт",
       "c_has_product": 0,
       "c_date2": "2025-04-10",
       "c_id_path": [9],
       "c_name_path": "Спорт"
       }, ...]
 },
"success": true,
"message": "Ok"
}
 

Запрос      

POST api/2025_09/ext-analitic/get_category_brand

Body Parameters

reportId  string  

Id запроса.

take  integer  

Максимальное количество записей в ответе.

skip  integer  

Смещение выборки, для пагинации

sort  string optional  

Поле БД

sort_dir  string optional  

Режим сортировки (asc, desc)

filter  object optional  

Фильтр

filter.brand  string[] optional  

Список выбранных брендов.

filter.products  object optional  

filter.products.min  integer optional  

Товаров min

filter.products.max  integer optional  

Товаров max

filter.products_with_sales  object optional  

filter.products_with_sales.min  integer optional  

Товаров с продажами min

filter.products_with_sales.max  integer optional  

Товаров с продажами max

filter.rating  object optional  

filter.rating.min  string optional  

Рейтинг min

filter.rating.max  string optional  

Рейтинг max

filter.reviews  object optional  

filter.reviews.min  integer optional  

Кол-во отзывов min

filter.reviews.max  integer optional  

Кол-во отзывов max

filter.avg_reviews  object optional  

filter.avg_reviews.min  integer optional  

Кол-во отзывов среднее min

filter.avg_reviews.max  integer optional  

Кол-во отзывов среднее max

filter.sold  object optional  

filter.sold.min  integer optional  

Продано за n дней min

filter.sold.max  integer optional  

Продано за n дней max

filter.avg_sold  object optional  

filter.avg_sold.min  string optional  

Среднее продаж в день min

filter.avg_sold.max  string optional  

Среднее продаж в день max

filter.revenue  object optional  

filter.revenue.min  integer optional  

Выручка за n дней min

filter.revenue.max  integer optional  

Выручка за n дней max

filter.avg_revenue  object optional  

filter.avg_revenue.min  string optional  

Средняя выручка в день min

filter.avg_revenue.max  string optional  

Среднее выручка в день max

Ответ

Response Fields

p_id  string  

Id товара

sku  string  

Sku товара

title  string  

Название товара

image  string  

-

date  string  

Дата первого упоминания

date2  string  

Дата последнего упоминания

p_c2p  string[]  

-

p_c2p_sort  string[]  

-

position  integer  

Позиция товара

_min_pos_idx  string  

-

_c_id_path  string[]  

-

categories_list  string[]  

-

category  string  

Категория

categories  integer  

Кол-во категориё

p_reviews  integer  

Кол-во отзывов всего

new_reviews  integer  

Кол-во отзывов за период

rating  number  

Рейтинг

s_id  string  

Id продавца

seller  string  

Название продавца

s_inn  string  

ИНН продавца

s_ogrn  string  

ОГРН продавца

s_id_BZ  string  

Продает на двух площадках Ozon и WB

b_id  string  

Id бренда

brand  string  

Название бренда

remains  integer  

Кол-во продаж

price  integer  

(WB:Цена с WB кошельком, OZON:Цена)

(только    

OZON) p_delivered_percent integer Процент выкупа

price_old  integer  

Старая цена

mp_url  string  

Ссылка на товар в МП

sf_p_url  string  

Ссылка на товар в системе Salesfinder

p_weight  string  

Вес товара, г

p_volume  string  

Объем товара, л

adv_1  integer  

Кол-во запросов в Директ

adv_1q  string  

Платный трафик Яндекс (да/нет)

adv_3  integer  

-

adv_3q  string  

-

seo_1  integer  

Кол-во запросов Яндекс

seo_1q  string  

SEO выдача Яндекс (да/нет)

seo_3  integer  

Кол-во запросов Google

seo_3q  string  

SEO выдача Google (да/нет)

(для    

WB) tot_photo integer Кол-во фото

warehouse  string  

Наименование склада (WB: wb/wb+fbs; OZON: FBO/FBO+FBS)

sold  integer  

Продажи за период

avg_sold  number  

Средние продажи за день

revenue  integer  

Выручка за период

avg_revenue  number  

Средняя выручка за день

days  string  

Дней в наличии

losses  integer  

Упущенная выручка

keywords  integer  

Кол-во запросов

Категории. Продавцы

requires authentication

Статистика продаж по категории. Продавец

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_seller" \
    --header "Authorization: Bearer a4ahbcgZ8Dfd6PE13k5e6vV" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reportId\": \"minima\",
    \"take\": 10,
    \"skip\": 50,
    \"sort\": \"sold\",
    \"sort_dir\": \"asc\",
    \"filter\": {
        \"seller\": [
            \"accusantium\"
        ],
        \"s_inn\": \"123456\",
        \"s_ogrn\": \"1234567\",
        \"products\": {
            \"min\": 1,
            \"max\": 17
        },
        \"products_with_sales\": {
            \"min\": 4,
            \"max\": 9
        },
        \"rating\": {
            \"min\": \"rerum\",
            \"max\": \"qui\"
        },
        \"reviews\": {
            \"min\": 7,
            \"max\": 13
        },
        \"avg_reviews\": {
            \"min\": 7,
            \"max\": 18
        },
        \"sold\": {
            \"min\": 5,
            \"max\": 1
        },
        \"revenue\": {
            \"min\": 19,
            \"max\": 18
        },
        \"avg_sold\": {
            \"min\": \"iusto\",
            \"max\": \"nisi\"
        },
        \"avg_revenue\": {
            \"min\": \"labore\",
            \"max\": \"exercitationem\"
        }
    }
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_seller"
);

const headers = {
    "Authorization": "Bearer a4ahbcgZ8Dfd6PE13k5e6vV",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reportId": "minima",
    "take": 10,
    "skip": 50,
    "sort": "sold",
    "sort_dir": "asc",
    "filter": {
        "seller": [
            "accusantium"
        ],
        "s_inn": "123456",
        "s_ogrn": "1234567",
        "products": {
            "min": 1,
            "max": 17
        },
        "products_with_sales": {
            "min": 4,
            "max": 9
        },
        "rating": {
            "min": "rerum",
            "max": "qui"
        },
        "reviews": {
            "min": 7,
            "max": 13
        },
        "avg_reviews": {
            "min": 7,
            "max": 18
        },
        "sold": {
            "min": 5,
            "max": 1
        },
        "revenue": {
            "min": 19,
            "max": 18
        },
        "avg_sold": {
            "min": "iusto",
            "max": "nisi"
        },
        "avg_revenue": {
            "min": "labore",
            "max": "exercitationem"
        }
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/ext-analitic/get_category_seller',
    [
        'headers' => [
            'Authorization' => 'Bearer a4ahbcgZ8Dfd6PE13k5e6vV',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'reportId' => 'minima',
            'take' => 10,
            'skip' => 50,
            'sort' => 'sold',
            'sort_dir' => 'asc',
            'filter' => [
                'seller' => [
                    'accusantium',
                ],
                's_inn' => '123456',
                's_ogrn' => '1234567',
                'products' => [
                    'min' => 1,
                    'max' => 17,
                ],
                'products_with_sales' => [
                    'min' => 4,
                    'max' => 9,
                ],
                'rating' => [
                    'min' => 'rerum',
                    'max' => 'qui',
                ],
                'reviews' => [
                    'min' => 7,
                    'max' => 13,
                ],
                'avg_reviews' => [
                    'min' => 7,
                    'max' => 18,
                ],
                'sold' => [
                    'min' => 5,
                    'max' => 1,
                ],
                'revenue' => [
                    'min' => 19,
                    'max' => 18,
                ],
                'avg_sold' => [
                    'min' => 'iusto',
                    'max' => 'nisi',
                ],
                'avg_revenue' => [
                    'min' => 'labore',
                    'max' => 'exercitationem',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
"data": {
   "items": [ {
       "p_id": "222756289",
       "sku": "222756289",
       "title": "Адаптер дискового тормоза 20мм для велосипеда",
       "image": "https://basket-15.wbbasket.ru/vol2227/part222756/222756289/images/c516x688/1.webp",
       "date": "2024-04-19",
       "date2": "2025-05-01",
       "p_c2p": [1060, 7132, 1075583, 1082370],
       "p_c2p_sort": [503, 1, 451, 1],
       "position": 1,
       "_min_pos_idx": "2",
       "_c_id_path": [9, 81, 1060, 7132],
       "category": "Спорт / Велоспорт / Велозапчасти / Адаптеры для тормозной системы",
       "p_reviews": 92,
       "rating": 4.5,
       "s_id": 873274,
       "seller": "L&M SHOP",
       "s_inn": "581302035510",
       "s_ogrn": "321583500013471",
       "s_id_BZ": -1,
       "b_id": 1541281,
       "brand": "MaLyuMi Sport",
       "remains": 66,
       "price": 551,
       "price_old": 1325,
       "mp_url": "https://www.wildberries.ru/catalog/222756289/detail.aspx",
       "sf_p_url": "https://salesfinder.ru/wb/product/222756289/info/days?date=2025-04-01&date2=2025-04-10&fbs=0",
       "p_weight": -1,
       "p_volume": -1,
       "adv_1": -1,
       "adv_1q": "-1",
       "adv_3": -1,
       "adv_3q": "-1",
       "seo_1": -1,
       "seo_1q": "-1",
       "seo_3": -1,
       "seo_3q": "-1",
       "discount": 58,
       "price_spp": 556,
       "price_discount_spp": 1,
       "tot_photo": 8,
       "warehouse": "wb",
       "sold": "26",
       "revenue": "14415",
       "avg_sold": 2.6,
       "avg_revenue": 1442,
       "days": "10",
       "losses": 0,
       "keywords": 7,
       "new_reviews": 6,
       "categories": 4,
       "categories_list": [{"position": 503,"c_id_path": [9,81,1060]}, ...]
       }, ...],
   "ranges": [{
       "total": "13","p_id": ["29600581","327210069"],
       "position": [1,70],
       "categories": [1,4],
       "p_reviews": [0,106],
       "rating": [0,4.9],
       "remains": [0,66],
       "sold": ["0","26"],
       "revenue": ["0","14415"],
       "avg_sold": [0,2.6],
       "avg_revenue": [0,1442],
       "days": ["1","10"],
       "losses": [0,0],
       "price": [182,1473],
       "price_old": [219,2096],
       "keywords": [0,7],
       "new_reviews": [0,6],
       "p_weight": [0,200],
       "p_volume": [0,0.588],
       "adv_1": [0,-1],
       "adv_3": [0,-1],
       "seo_1": [0,2],
       "seo_3": [0,-1],
       "price_spp": [186,1504],
       "price_discount_spp": [1,13],
       "tot_photo": [1,8],
       "discount": [12,58]
       }],
   "categories": [{
       "c_id": 9,
       "c_name": "Спорт",
       "c_has_product": 0,
       "c_date2": "2025-04-10",
       "c_id_path": [9],
       "c_name_path": "Спорт"
       }, ...]
 },
"success": true,
"message": "Ok"
}
 

Запрос      

POST api/2025_09/ext-analitic/get_category_seller

Body Parameters

reportId  string  

Id запроса.

take  integer  

Максимальное количество записей в ответе.

skip  integer  

Смещение выборки, для пагинации

sort  string optional  

Поле БД

sort_dir  string optional  

Режим сортировки (asc, desc)

filter  object optional  

Фильтр

filter.seller  string[] optional  

Список выбранных продавцов.

filter.s_inn  string optional  

ИНН

filter.s_ogrn  string optional  

ОГРН

filter.products  object optional  

filter.products.min  integer optional  

Товаров min

filter.products.max  integer optional  

Товаров max

filter.products_with_sales  object optional  

filter.products_with_sales.min  integer optional  

Товаров с продажами min

filter.products_with_sales.max  integer optional  

Товаров с продажами max

filter.rating  object optional  

filter.rating.min  string optional  

Рейтинг min

filter.rating.max  string optional  

Рейтинг max

filter.reviews  object optional  

filter.reviews.min  integer optional  

Кол-во отзывов min

filter.reviews.max  integer optional  

Кол-во отзывов max

filter.avg_reviews  object optional  

filter.avg_reviews.min  integer optional  

Кол-во отзывов среднее min

filter.avg_reviews.max  integer optional  

Кол-во отзывов среднее max

filter.sold  object optional  

filter.sold.min  integer optional  

Продано за n дней min

filter.sold.max  integer optional  

Продано за n дней max

filter.revenue  object optional  

filter.revenue.min  integer optional  

Выручка за n дней min

filter.revenue.max  integer optional  

Выручка за n дней max

filter.avg_sold  object optional  

filter.avg_sold.min  string optional  

Среднее продаж в день min

filter.avg_sold.max  string optional  

Среднее продаж в день max

filter.avg_revenue  object optional  

filter.avg_revenue.min  string optional  

Средняя выручка в день min

filter.avg_revenue.max  string optional  

Среднее выручка в день max

Ответ

Response Fields

p_id  string  

Id товара

sku  string  

Sku товара

title  string  

Название товара

image  string  

-

date  string  

Дата первого упоминания

date2  string  

Дата последнего упоминания

p_c2p  string[]  

-

p_c2p_sort  string[]  

-

position  integer  

Позиция товара

_min_pos_idx  string  

-

_c_id_path  string[]  

-

categories_list  string[]  

-

category  string  

Категория

categories  integer  

Кол-во категориё

p_reviews  integer  

Кол-во отзывов всего

new_reviews  integer  

Кол-во отзывов за период

rating  number  

Рейтинг

s_id  string  

Id продавца

seller  string  

Название продавца

s_inn  string  

ИНН продавца

s_ogrn  string  

ОГРН продавца

s_id_BZ  string  

Продает на двух площадках Ozon и WB

b_id  string  

Id бренда

brand  string  

Название бренда

remains  integer  

Кол-во продаж

price  integer  

(WB:Цена с WB кошельком, OZON:Цена)

(только    

OZON) p_delivered_percent integer Процент выкупа

price_old  integer  

Старая цена

mp_url  string  

Ссылка на товар в МП

sf_p_url  string  

Ссылка на товар в системе Salesfinder

p_weight  string  

Вес товара, г

p_volume  string  

Объем товара, л

adv_1  integer  

Кол-во запросов в Директ

adv_1q  string  

Платный трафик Яндекс (да/нет)

adv_3  integer  

-

adv_3q  string  

-

seo_1  integer  

Кол-во запросов Яндекс

seo_1q  string  

SEO выдача Яндекс (да/нет)

seo_3  integer  

Кол-во запросов Google

seo_3q  string  

SEO выдача Google (да/нет)

(для    

WB) tot_photo integer Кол-во фото

warehouse  string  

Наименование склада (WB: wb/wb+fbs; OZON: FBO/FBO+FBS)

sold  integer  

Продажи за период

avg_sold  number  

Средние продажи за день

revenue  integer  

Выручка за период

avg_revenue  number  

Средняя выручка за день

days  string  

Дней в наличии

losses  integer  

Упущенная выручка

keywords  integer  

Кол-во запросов

Внешняя аналитика. Товары

Этот раздел внешнего API позволяет получать данные товаров из списка SKU за указанный период

Товары. Статичные данные

requires authentication

Статичные данные товаров из списка SKU за период

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/product/info" \
    --header "Authorization: Bearer Zv1ae6a6VbkDfgPE43c8hd5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mp\": \"ozon\",
    \"sku\": [
        573373353,
        1508721402,
        150030882
    ],
    \"date\": \"2025-03-10\",
    \"date2\": \"2025-03-15\",
    \"fbs\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/product/info"
);

const headers = {
    "Authorization": "Bearer Zv1ae6a6VbkDfgPE43c8hd5",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mp": "ozon",
    "sku": [
        573373353,
        1508721402,
        150030882
    ],
    "date": "2025-03-10",
    "date2": "2025-03-15",
    "fbs": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/product/info',
    [
        'headers' => [
            'Authorization' => 'Bearer Zv1ae6a6VbkDfgPE43c8hd5',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'mp' => 'ozon',
            'sku' => [
                573373353,
                1508721402,
                150030882,
            ],
            'date' => '2025-03-10',
            'date2' => '2025-03-15',
            'fbs' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "success": true,
  "message": "Ok"
  "data": {[
      {"sku":"150030882",
       "marketUrl":"https:\/\/www.ozon.ru\/product\/suhoy-korm-dlya-koshek-purina-one-dlya-sterilizovannyh-s-govyadinoy-i-pshenitsey-3-kg-150030882\/",
       "brand":"Purina ONE","seller":"Ozon","sellerInn":"",
       "sellerOgrn":"","sellWBOZ":0,
       "title":"\u0421\u0443\u0445\u043e\u0439 \u043a\u043e\u0440\u043c \u0434\u043b\u044f \u043a\u043e\u0448\u0435\u043a Purina ONE \u0434\u043b\u044f \u0441\u0442\u0435\u0440\u0438\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445, \u0441 \u0433\u043e\u0432\u044f\u0434\u0438\u043d\u043e\u0439 \u0438 \u043f\u0448\u0435\u043d\u0438\u0446\u0435\u0439, 3 \u043a\u0433",
       "image":"https:\/\/cdn1.ozone.ru\/s3\/multimedia-1-l\/7377128121.jpg",
       "dateStr":"2021-08-16","dateEnd":"2025-04-10"},
      {"sku":"573373353","marketUrl":"https:\/\/www.ozon.ru\/product\/kryshka-dlya-korpus-brelka-starlayn-a93-a96-a90-eco-a60-eco-a63-a66-a39-a36-starline-batareynogo-573373353\/",
       "brand":"","seller":"Ozon","sellerInn":"","sellerOgrn":"","sellWBOZ":0,
       "title":"\u041a\u0440\u044b\u0448\u043a\u0430 \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u0443\u0441 \u0431\u0440\u0435\u043b\u043a\u0430 \u0421\u0442\u0430\u0440\u043b\u0430\u0439\u043d A93 A96 A90 ECO A60 ECO A63 A66 A39 A36 Starline \u0431\u0430\u0442\u0430\u0440\u0435\u0439\u043d\u043e\u0433\u043e \u043e\u0442\u0441\u0435\u043a\u0430 \u043f\u0443\u043b\u044c\u0442",
       "image":"https:\/\/cdn1.ozone.ru\/s3\/multimedia-1-5\/7112057369.jpg",
       "dateStr":"2022-10-09","dateEnd":"2025-04-10"},
      {"sku":"1508721402","marketUrl":"https:\/\/www.ozon.ru\/product\/ventilyator-vytyazhnoy-s-obratnym-klapanom-lira-100-14-vt-31-db-96-m3-ch-1508721402\/",
       "brand":"\u0420\u0412\u0421","seller":"\u0412\u043e\u0437\u0434\u0443\u0448\u043d\u0430\u044f \u0441\u0442\u0438\u0445\u0438\u044f",
       "sellerInn":"771912951591","sellerOgrn":"323774600829085","sellWBOZ":1,
       "title":"\u0412\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u0442\u044f\u0436\u043d\u043e\u0439 \u0441 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u0430\u043f\u0430\u043d\u043e\u043c \u041b\u0438\u0440\u0430 100, 14 \u0412\u0442, 31 \u0434\u0411, 96 \u043c3\/\u0447",
       "image":"https:\/\/cdn1.ozone.ru\/s3\/multimedia-1-k\/7388389676.jpg",
       "dateStr":"2024-03-28","dateEnd":"2025-04-10"}
  ]}
 

Запрос      

POST api/2025_09/product/info

Body Parameters

mp  string  

Mаркеплейс (wb | ozon).

sku  integer[]  

Список SKU товаров.

date  date  

Дата начала периода в формате Y-m-d.

date2  date  

Дата окончания периода в формате Y-m-d.

fbs  integer optional  

Запрос данных с учетом склада продавца (0 | 1).

Ответ

Response Fields

sku  integer  

SKU (ID) товара

marketUrl    

stting Cсылка на страницу SKU на маркетплейсе

brand  string  

Бренд SKU

seller  string  

Продавец SKU

sellerInn  string  

ИНН продавца SKU

sellerOgrn  string  

ОГРН продавца SKU

sellWBOZ  integer  

Продавец торгует на WB & OZON (0 | 1 | -1).

title  string  

Наименование SKU

image  string  

Ссылка на картинку SKU

dateStr    

Дата первого появления SKU в БД SalesFinder.ru

dateEnd    

Дата крайнего появления SKU в БД SalesFinder.ru

Товары. Суммарные показатели по товарам

requires authentication

Суммарные данные товаров из списка SKU за период

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/product/overview" \
    --header "Authorization: Bearer Pdf54aVE8gkcv6a1Z6b3Deh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mp\": \"ozon\",
    \"date\": \"2025-03-10\",
    \"date2\": \"2025-03-15\",
    \"sku\": [
        573373353,
        1508721402,
        150030882
    ],
    \"fbs\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/product/overview"
);

const headers = {
    "Authorization": "Bearer Pdf54aVE8gkcv6a1Z6b3Deh",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mp": "ozon",
    "date": "2025-03-10",
    "date2": "2025-03-15",
    "sku": [
        573373353,
        1508721402,
        150030882
    ],
    "fbs": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/product/overview',
    [
        'headers' => [
            'Authorization' => 'Bearer Pdf54aVE8gkcv6a1Z6b3Deh',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'mp' => 'ozon',
            'date' => '2025-03-10',
            'date2' => '2025-03-15',
            'sku' => [
                573373353,
                1508721402,
                150030882,
            ],
            'fbs' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
   "success": true,
   "message": "Ok"
   "data": {[
     {"sku":573373353,"overview":{
       "price":{"total":117,"dynamic":[131,131,116,117,117,117]},
       "price_old":{"total":-1,"dynamic":[644,644,644,644,644,644]},
       "discount":{"total":82,"dynamic":[80,80,82,82,82,82]},
       "sold":{"total":"251","dynamic":[24,34,49,58,36,50]},
       "revenue":{"total":"30130","dynamic":["3144","4454","5684","6786","4212","5850"]},
       "reviews":{"total":4514,"dynamic":[4449,4460,4479,4485,4500,4514]},
       "rating":{"total":4.9,"dynamic":[4.9,4.9,4.9,4.9,4.9,4.9]},
       "categories":{"total":"3","dynamic":[1,1,1,1,1,1]},
       "avg_sold":{"total":41.83,"dynamic":[]},
       "avg_revenue":{"total":5022,"dynamic":[]},
       "days":{"total":"6","dynamic":[]},
       "losses":{"total":0,"dynamic":[]},
       "remains":{"total":1479,"dynamic":[1709,1676,1627,1569,1530,1479]},
       "keywords":{"total":"66","dynamic":[47,52,56,52,55,55]}}},
     {"sku":1508721402,"overview":{
       "price":{"total":1187,"dynamic":[1176,1187,1187,1191,1187,1187]},
       "price_old":{"total":-1,"dynamic":[2958,3040,2972,3052,2960,3038]},
       "discount":{"total":61,"dynamic":[60,61,60,61,60,61]},
       "sold":{"total":"2","dynamic":[0,0,1,0,0,1]},
       "revenue":{"total":"2374","dynamic":["0","0","1187","0","0","1187"]},
       "reviews":{"total":13,"dynamic":[12,12,12,12,13,13]},
       "rating":{"total":4.9,"dynamic":[4.9,4.9,4.9,4.9,4.9,4.9]},
       "categories":{"total":"2","dynamic":[1,1,2,1,2,2]},
       "avg_sold":{"total":0.33,"dynamic":[]},
       "avg_revenue":{"total":396,"dynamic":[]},
       "days":{"total":"6","dynamic":[]},
       "losses":{"total":0,"dynamic":[]},
       "remains":{"total":10,"dynamic":[15,15,13,13,13,10]},
       "keywords":{"total":"30","dynamic":[12,9,11,10,13,25]}}},
     {"sku":150030882,"overview":{
       "price":{"total":1232,"dynamic":[1232,1232,1232,1232,1232,1232]},
       "price_old":{"total":-1,"dynamic":[1729,1679,1679,1679,1679,1679]},
       "discount":{"total":27,"dynamic":[29,27,27,27,27,27]},
       "sold":{"total":"7827","dynamic":[465,1804,1751,2013,902,892]},
       "revenue":{"total":"9642864","dynamic":["572880","2222528","2157232","2480016","1111264","1098944"]},
       "reviews":{"total":248107,"dynamic":[246419,246643,246950,247295,247681,248107]},
       "rating":{"total":5,"dynamic":[5,5,5,5,5,5]},
       "categories":{"total":"4","dynamic":[1,1,2,2,2,2]},
       "avg_sold":{"total":1304.5,"dynamic":[]},
       "avg_revenue":{"total":1607144,"dynamic":[]},
       "days":{"total":"6","dynamic":[]},
       "losses":{"total":0,"dynamic":[]},
       "remains":{"total":19204,"dynamic":[34530,32116,29616,26911,22760,19204]},
       "keywords":{"total":"167","dynamic":[129,140,134,140,136,135]}}}
    ]}
 

Запрос      

POST api/2025_09/product/overview

Body Parameters

mp  string  

Mаркеплейс (wb | ozon).

date  date  

Дата начала периода в формате Y-m-d.

date2  date  

Дата окончания периода в формате Y-m-d.

sku  integer[]  

Список SKU товаров.

fbs  integer optional  

Запрос данных с учетом склада продавца (0 | 1).

Ответ

Response Fields

sku  integer  

SKU (ID) товара

overview  object[]  

Массив суммарных данных SKU за период

price.total  number  

Цена за крайнюю дату (date2)

price.dynamic  number[]  

Цена по дням

price_old.total  number  

Старая цена за крайнюю дату (date2)

price_old.dynamic  number[]  

Старая цена по дням

discount.total  integer  

Скидка за крайнюю дату (date2)

discount.dynamic  number[]  

Скидка по дням

sold.total  integer  

Суммарные продажи за период

sold.dynamic  integer[]  

Продажи по дням

revenue.total  number  

Выручка

revenue.dynamic  number[]  

Выручка

reviews.total  integer  

Отзывов за крайнюю дату (date2)

reviews.dynamic  integer[]  

Отзывов по дням

rating.total  integer  

Рейтинг за крайнюю дату (date2)

rating.dynamic  integer[]  

Рейтинг по дням

categories.total  integer  

Уникальных категорий за период

categories.dynamic  integer[]  

Категорий по дням

avg_sold.total  number  

Средняя продаж в день

avg_sold.dynamic    

Пустой массив

avg_revenue.total  number  

Средняя выручка в день

avg_revenue.dynamic    

Пустой массив

days.total  integer  

Дней в наличии за период

days.dynamic    

Пустой массив

losses.total  number  

Упущенная выручка за период

losses.dynamic    

Пустой массив

remains.total  integer  

Текущий статок за крайнюю дату (date2)

remains.dynamic  integer[]  

Текущий остаток по дням

keywords.total  integer  

Уникальных поисковых запросов за период

keywords.dynamic  integer[]  

Поисковые запросы по дням

Товары. Детализация по дням

requires authentication

Ежедневные данные по товарам из списка SKU за период

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/product/days" \
    --header "Authorization: Bearer VEDdcvgPa6bfe36Z5k4a18h" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mp\": \"ozon\",
    \"date\": \"2025-03-10\",
    \"date2\": \"2025-03-15\",
    \"sku\": [
        573373353,
        1508721402,
        150030882
    ],
    \"fbs\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/product/days"
);

const headers = {
    "Authorization": "Bearer VEDdcvgPa6bfe36Z5k4a18h",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mp": "ozon",
    "date": "2025-03-10",
    "date2": "2025-03-15",
    "sku": [
        573373353,
        1508721402,
        150030882
    ],
    "fbs": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/product/days',
    [
        'headers' => [
            'Authorization' => 'Bearer VEDdcvgPa6bfe36Z5k4a18h',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'mp' => 'ozon',
            'date' => '2025-03-10',
            'date2' => '2025-03-15',
            'sku' => [
                573373353,
                1508721402,
                150030882,
            ],
            'fbs' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
   "success": true,
   "message": "Ok"
   "data": {[
     {"sku":573373353,"days":[
       {"date":"2025-03-10","reviews":4449,"new_reviews_1day":"-1","rating":4.9,
         "categories":1,"remains":1709,"sold":24,"revenue":"3144","price":131,
         "price_old":644,"discount":80},
       {"date":"2025-03-11","reviews":4460,"new_reviews_1day":"11","rating":4.9,
         "categories":1,"remains":1676,"sold":34,"revenue":"4454","price":131,
         "price_old":644,"discount":80},
     {"date":"2025-03-12", ...},
     {"date":"2025-03-13", ...},
     {"date":"2025-03-14", ...},
     {"date":"2025-03-15", "reviews":4514,"new_reviews_1day":"14","rating":4.9,
         "categories":1,"remains":1479,"sold":50,"revenue":"5850","price":117,
         "price_old":644,"discount":82}]},
   {"sku":1508721402, ...},
   {"sku":150030882, ...}
 ]}
 

Запрос      

POST api/2025_09/product/days

Body Parameters

mp  string  

Mаркеплейс (wb | ozon).

date  date  

Дата начала периода в формате Y-m-d.

date2  date  

Дата окончания периода в формате Y-m-d.

sku  integer[]  

Список SKU товаров.

fbs  integer optional  

Запрос данных с учетом склада продавца (0 | 1).

Ответ

Response Fields

sku  integer  

SKU (ID) товара

days  object[]  

Массив данных по дням

days[].date    

Дата

days[].reviews  integer  

Отзывов

days[].new_reviews_1day    

Новых отзывов

days[].rating  number  

Рейтинг

days[].categories  integer  

Число категорий

days[].remains  integer  

Остатки

days[].sold  number  

Продажи

days[].revenue  number  

Выручка

days[].price  number  

Цена с WB кошельком / Цена OZON

days[].price_old  number  

Старая цена

days[].discount_wb  integer  

Скидка WB

days[].price_spp  number  

Цена WB

days[].discount  number  

Скидка OZON

Товары. Категории и позиции

requires authentication

Позиции товаров из списка SKU в категориях за период

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/product/categories" \
    --header "Authorization: Bearer 6bPgaEc5dVfhvZ84Da1k63e" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mp\": \"ozon\",
    \"date\": \"2025-03-10\",
    \"date2\": \"2025-03-15\",
    \"sku\": [
        573373353,
        1508721402,
        150030882
    ],
    \"fbs\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/product/categories"
);

const headers = {
    "Authorization": "Bearer 6bPgaEc5dVfhvZ84Da1k63e",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mp": "ozon",
    "date": "2025-03-10",
    "date2": "2025-03-15",
    "sku": [
        573373353,
        1508721402,
        150030882
    ],
    "fbs": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/product/categories',
    [
        'headers' => [
            'Authorization' => 'Bearer 6bPgaEc5dVfhvZ84Da1k63e',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'mp' => 'ozon',
            'date' => '2025-03-10',
            'date2' => '2025-03-15',
            'sku' => [
                573373353,
                1508721402,
                150030882,
            ],
            'fbs' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
 "success": true,
 "message": "Ok"
 "data": {[
   {"sku":573373353,"categories":[
     {"c_id":154,"c_id_path":[12,154],"c_name_path":"\u0410\u0432\u0442\u043e\u0442\u043e\u0432\u0430\u0440\u044b \/ \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f",
       "2025-03-10":-1,"2025-03-11":29,"2025-03-12":-1,"2025-03-13":-1,"2025-03-14":-1,"2025-03-15":-1},
     {"c_id":1652,"c_id_path":[12,154,1652],"c_name_path":"\u0410\u0432\u0442\u043e\u0442\u043e\u0432\u0430\u0440\u044b \/ \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f \/ \u0410\u0432\u0442\u043e\u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0431\u0440\u0435\u043b\u043e\u043a\u0438",
       "2025-03-10":-1,"2025-03-11":-1,"2025-03-12":12,"2025-03-13":12,"2025-03-14":12,"2025-03-15":12},
     {"c_id":11148,"c_id_path":[12,154,1652,11148],"c_name_path":"\u0410\u0432\u0442\u043e\u0442\u043e\u0432\u0430\u0440\u044b \/ \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f \/ \u0410\u0432\u0442\u043e\u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0431\u0440\u0435\u043b\u043e\u043a\u0438 \/ \u0411\u0440\u0435\u043b\u043e\u043a\u0438",
       "2025-03-10":10,"2025-03-11":-1,"2025-03-12":-1,"2025-03-13":-1,"2025-03-14":-1,"2025-03-15":-1}]},
   {"sku":1508721402, ...},
   {"sku":150030882, ...}
 ]}
}
 

Запрос      

POST api/2025_09/product/categories

Body Parameters

mp  string  

Mаркеплейс (wb | ozon).

date  date  

Дата начала периода в формате Y-m-d.

date2  date  

Дата окончания периода в формате Y-m-d.

sku  integer[]  

Список SKU товаров.

fbs  integer optional  

Запрос данных с учетом склада продавца (0 | 1).

Ответ

Response Fields

sku  integer  

SKU (ID) товара

categories    

[] Массив данных по категориям

categories[].c_id  integer  

внутренний ID категории в SalesFinder.ru

categories[].c_id_path[]  integer  

путь ID категорий от текущей до главной

categories[].c_name_path[]  string  

путь названий категорий от текущей до главной

categories[].yyyy-mm-dd[]  integer  

позиция SKU в текущей категории (-1: товара нет в категории за текущую дату)

Товары. Склады

requires authentication

Данные о наличии по складам товаров из списка SKU за период

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/product/stores" \
    --header "Authorization: Bearer aP4Z8dcaE3he15Vvk6fgb6D" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mp\": \"wb\",
    \"date\": \"2025-03-10\",
    \"date2\": \"2025-03-15\",
    \"sku\": [
        417722035,
        243806943,
        245096303
    ],
    \"fbs\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/product/stores"
);

const headers = {
    "Authorization": "Bearer aP4Z8dcaE3he15Vvk6fgb6D",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mp": "wb",
    "date": "2025-03-10",
    "date2": "2025-03-15",
    "sku": [
        417722035,
        243806943,
        245096303
    ],
    "fbs": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/product/stores',
    [
        'headers' => [
            'Authorization' => 'Bearer aP4Z8dcaE3he15Vvk6fgb6D',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'mp' => 'wb',
            'date' => '2025-03-10',
            'date2' => '2025-03-15',
            'sku' => [
                417722035,
                243806943,
                245096303,
            ],
            'fbs' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
 "success": true,
 "message": "Ok"
 "data": {[
   {"sku":239823072,"stores":[
     {"store_id":507,"store":"\u041a\u043e\u043b\u0435\u0434\u0438\u043d\u043e WB",
       "remains":"0","days":"2","losses":0,"sold":"0","revenue":"0","avg_sold":0,"avg_revenue":0},
     {"store_id":117986,"store":"\u041a\u0430\u0437\u0430\u043d\u044c WB",
       "remains":"1","days":"6","losses":0,"sold":"3","revenue":"525","avg_sold":0.5,"avg_revenue":87.5},
     {"store_id":120762,"store":"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u0441\u0442\u0430\u043b\u044c WB",
       "remains":"136","days":"6","losses":0,"sold":"3","revenue":"525","avg_sold":0.5,"avg_revenue":87.5},
     {"store_id":130744,"store":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440 WB",
       "remains":"44","days":"6","losses":0,"sold":"2","revenue":"350","avg_sold":0.33,"avg_revenue":58.33},
     {"store_id":206348,"store":"\u0422\u0443\u043b\u0430 (\u0410\u043b\u0435\u043a\u0441\u0438\u043d\u043e) WB",
       "remains":"143","days":"6","losses":0,"sold":"5","revenue":"875","avg_sold":0.83,"avg_revenue":145.83}]},
   {"sku":226639247,"stores":[
     {"store_id":507,"store":"\u041a\u043e\u043b\u0435\u0434\u0438\u043d\u043e WB", ...]},
   {"sku":43649507,"stores":[
     {"store_id":507,"store":"\u041a\u043e\u043b\u0435\u0434\u0438\u043d\u043e WB", ...]}
 ]}
}
 

Запрос      

POST api/2025_09/product/stores

Body Parameters

mp  string  

Mаркеплейс (wb | ozon).

date  date  

Дата начала периода в формате Y-m-d.

date2  date  

Дата окончания периода в формате Y-m-d.

sku  integer[]  

Список SKU товаров.

fbs  integer optional  

Запрос данных с учетом склада продавца (0 | 1).

Ответ

Response Fields

sku  integer  

SKU (ID) товара

stores  object[]  

Даннные по складам

stores[].store_id  integer  

ID склада на маркетплейсе

stores[].store  string  

Название склада

stores[].remains  integer  

Остатки

stores[].days  integer  

Дней в рынке

stores[].losses  number  

Упущенная выгода

stores[].sold  number  

Продажи

stores[].revenue  number  

Прибыль

stores[].avg_sold  number  

Средняя продаж в день

stores[].avg_revenue  number  

Средняя выручка в день

Товары. Запросы и позиции

requires authentication

Данные о позициях в поиске по запросу товаров из списка SKU за период

Example request:
curl --request POST \
    "https://api.salesfinder.ru/api/2025_09/product/keywords" \
    --header "Authorization: Bearer 1dg3Db5h8vka6Z6PecV4fEa" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"mp\": \"ozon\",
    \"date\": \"2025-03-10\",
    \"date2\": \"2025-03-15\",
    \"sku\": [
        573373353,
        1508721402,
        150030882
    ],
    \"fbs\": 1
}"
const url = new URL(
    "https://api.salesfinder.ru/api/2025_09/product/keywords"
);

const headers = {
    "Authorization": "Bearer 1dg3Db5h8vka6Z6PecV4fEa",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mp": "ozon",
    "date": "2025-03-10",
    "date2": "2025-03-15",
    "sku": [
        573373353,
        1508721402,
        150030882
    ],
    "fbs": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.salesfinder.ru/api/2025_09/product/keywords',
    [
        'headers' => [
            'Authorization' => 'Bearer 1dg3Db5h8vka6Z6PecV4fEa',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'mp' => 'ozon',
            'date' => '2025-03-10',
            'date2' => '2025-03-15',
            'sku' => [
                573373353,
                1508721402,
                150030882,
            ],
            'fbs' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
 "success": true,
 "message": "Ok",
 "data":[
   {"sku":573373353,"keywords":[
     {"k_id":601517, "keyword":"\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 starline",
       "shows":357,"avg_position":59.2,"keyword_mp_search_link":"https:\/\/www.ozon.ru\/search\/?text=\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 starline&from_global=true",
       "2025-03-10":-1,"2025-03-11":47,"2025-03-12":50,"2025-03-13":69,"2025-03-14":71,"2025-03-15":59},
   {"k_id":601524,"keyword":"\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0442\u0430\u0440\u043b\u0430\u0439\u043d",
     "shows":724,"avg_position":14.3,"keyword_mp_search_link":"https:\/\/www.ozon.ru\/search\/?text=\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0442\u0430\u0440\u043b\u0430\u0439\u043d&from_global=true",
     "2025-03-10":17,"2025-03-11":17,"2025-03-12":13,"2025-03-13":13,"2025-03-14":13,"2025-03-15":13},
   {"k_id":601530,"keyword":"\u0431\u0440\u0435\u043b\u043e\u043a starline", ...},
   ...
   ]},
   {"sku":1508721402,"keywords":[
     {"k_id":601517,"keyword":"\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 starline",
       "shows":357,"avg_position":59.2,"keyword_mp_search_link":"https:\/\/www.ozon.ru\/search\/?text=\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 starline&from_global=true",
       "2025-03-10":-1,"2025-03-11":47,"2025-03-12":50,"2025-03-13":69,"2025-03-14":71,"2025-03-15":59},
     {"k_id":601524,"keyword":"\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0442\u0430\u0440\u043b\u0430\u0439\u043d",
       "shows":724,"avg_position":14.3,"keyword_mp_search_link":"https:\/\/www.ozon.ru\/search\/?text=\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0442\u0430\u0440\u043b\u0430\u0439\u043d&from_global=true",
       "2025-03-10":17,"2025-03-11":17,"2025-03-12":13,"2025-03-13":13,"2025-03-14":13,"2025-03-15":13},
     {"k_id":601530,"keyword":"\u0431\u0440\u0435\u043b\u043e\u043a starline", ...},
     ...
   ]},
   {"sku":150030882,"keywords":[
     {"k_id":601517,"keyword":"\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 starline",
       "shows":357,"avg_position":59.2,"keyword_mp_search_link":"https:\/\/www.ozon.ru\/search\/?text=\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 starline&from_global=true",
       "2025-03-10":-1,"2025-03-11":47,"2025-03-12":50,"2025-03-13":69,"2025-03-14":71,"2025-03-15":59},
     {"k_id":601524,"keyword":"\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0442\u0430\u0440\u043b\u0430\u0439\u043d",
       "shows":724,"avg_position":14.3,"keyword_mp_search_link":"https:\/\/www.ozon.ru\/search\/?text=\u0431\u0440\u0435\u043b\u043e\u043a \u0441\u0442\u0430\u0440\u043b\u0430\u0439\u043d&from_global=true",
       "2025-03-10":17,"2025-03-11":17,"2025-03-12":13,"2025-03-13":13,"2025-03-14":13,"2025-03-15":13},
     {"k_id":601530,"keyword":"\u0431\u0440\u0435\u043b\u043e\u043a starline" ...}
     ...
   ]}
 ]}
}
 

Запрос      

POST api/2025_09/product/keywords

Body Parameters

mp  string  

Mаркеплейс (wb | ozon).

date  date  

Дата начала периода в формате Y-m-d.

date2  date  

Дата окончания периода в формате Y-m-d.

sku  integer[]  

Список SKU товаров.

fbs  integer optional  

Запрос данных с учетом склада продавца (0 | 1).

Ответ

Response Fields

sku  integer  

SKU (ID) товара

keywords  object[]  

Данные по запросам

keywords[].k_id  integer  

Внутренний ID запроса в SalesFinder.ru

keywords[].keyword  string  

Текст запроса

keywords[].shows  integer  

Видимость запроса

keywords[].avg_position  integer  

Средняя позиция SKU по запросу

keywords[].keyword_mp_search_link  string  

Ссылка на страницу запроса в маркетплейсе

keywords[].yyyy-mm-dd[]  integer  

Позиция SKU по запросу на дату (-1: товара не видно за текущую дату)