Skip to content
W

Wiki

WIKI проекта poisk.im

Главная страница API поиска товаров

Добро пожаловать в документацию API поиска товаров! 🚀

📌 Описание

Этот API предназначен для поиска товаров в магазинах по различным параметрам.

📚 Возможности

  • 🔎 Поиск товаров – осуществляется по названию, городу, магазину, скидке и другим параметрам.
  • 📄 Загрузка товаров из Excel – поддержка загрузки файлов с данными о товарах.(в планах)
  • 🏷 Получение товаров по ID – возможность получать информацию о конкретных товарах по их идентификаторам.

🔑 Покупка API-ключа

Перед использованием API необходимо приобрести ключ на сайте keys.poisk.im.

Типы ключей:

  • Демо-ключ: 10 RPM, срок действия 7 дней.
  • Коммерческие ключи: 60 RPM, доступные на 1 месяц, 3 месяца и 1 год.
  • Для актуальных тарифов перейдите на страницу покупки ключей.

API-ключ используется в заголовке запроса как API-KEY.

Детальная документация по каждому endpoint

🚀 Быстрый старт

1️⃣ Поиск товаров

POST /api_dev/search/

Описание

Ищет товары по запросу. Если количество найденных товаров равно 0, выполняется неточный поиск (fuzzy).

Заголовки запроса

  • Content-Type: application/json; charset=utf-8
  • API-KEY: RPM60-xxxx-xxxx-xxxx-D7

Тело запроса

{
  "query": "ноутбук",
  "city": 1,
  "shop": [10, 20],
  "sale": 0,
  "from_price_update": 1678900000,
  "sort_price":1,
  "min_price": 5000,
  "max_price": 150000,
  "page": 0,
  "page_limit": 40
}
  • query (string, обязательный) – Поисковый запрос. Максимальная длина: 250 символов.
  • city (int, optional) – ID города. По умолчанию: 1.
  • shop (list, optional) – Фильтр по магазинам. Пустой список означает поиск по всем.
  • sale (uint, optional) – Минимальный процент скидки. Диапазон: 0–100. По умолчанию: 0.
  • from_price_update (long, optional) – Фильтр по времени обновления цены (timestamp). Минимум: 0.
  • sort_price (int, optional) - Маркер сортировки по цене 0 - по возрастанию, 1 - по убыванию
  • min_price (uint, optional) – Минимальная цена товара. По умолчанию: 0.
  • max_price (uint, optional) – Максимальная цена товара. По умолчанию: 2147483647.
  • page (uint, optional) – Номер страницы. Минимум: 0. По умолчанию: 0.
  • page_limit (uint, optional) – Количество товаров на странице. Диапазон: 1–100. По умолчанию: 40.

2️⃣ Получение товаров по ID

Метод: GET /api_dev/product/?id={id}

Заголовки запроса

  • Content-Type: application/json; charset=utf-8
  • API-KEY: RPM60-xxxx-xxxx-xxxx-D7

Пример запроса: GET /api_dev/products/12345

Примеры запросов

Пример на 1С

Перем HTTPСоединение, Запрос, Ответ, ТелоЗапросаJSON, ОтветJSON;

HTTPСоединение = Новый HTTPСоединение("poisk.im");

ТелоЗапросаJSON = Новый ЗаписьJSON;
ТелоЗапросаJSON.ОткрытьСтроку();
ЗаписатьJSON(ТелоЗапросаJSON, Новый Структура(
    "query", "ноутбук"
));
ТелоЗапроса = ТелоЗапросаJSON.ЗакрытьСтроку();

Запрос = Новый HTTPЗапрос("/api_dev/search/");
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса, "application/json; charset=utf-8");
Запрос.УстановитьЗаголовок("API-KEY", "ваш_ключ");

Попытка
    Ответ = HTTPСоединение.ОтправитьДляОбработки(Запрос);
    ОтветJSON = ПрочитатьJSON(Ответ.ПолучитьТелоКакСтроку());
    // Обработка ОтветJSON
    Сообщить(ОтветJSON);
Исключение
    Сообщить("Ошибка выполнения запроса: " + ОписаниеОшибки());
КонецПопытки;

Пример на Python

import requests
import json

url = "https://poisk.im/api_dev/search/" 
headers = {
    'Content-Type': 'application/json',
    'API-KEY': 'ваш_ключ'
}
data = {
    "query": "ноутбук"
}

try:
    response = requests.post(url, data=json.dumps(data), headers=headers)
    response.raise_for_status()  # Выброс исключения при HTTP ошибках (4xx или 5xx)
    response_json = response.json()
    # Обработка response_json
    print(response_json)
except requests.exceptions.RequestException as e:
    print(f"Ошибка выполнения запроса: {e}")

📌 Дополнительная информация

  • 🛠 Разработано на ASP.NET.
  • 💾 Основная база manticoreSearch, вспомогательная mariaDB.

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