Документация
Документация и API
Всё для интеграции: REST API поиска, подсказок, рекомендаций, AI-консультанта и аналитики.
Подключение занимает от нескольких часов. Авторизация во всех методах — заголовок X-API-Key с токеном из личного кабинета (страница «Профиль»). Все ответы — JSON в UTF-8.
Первый запрос — проверьте, что каталог ищется:
curl -H "X-API-Key: ВАШ_ТОКЕН" \ "https://uniseek.ru/api/search/?q=пакет+майка&limit=20"
{"status": "success", "total": 20, "time": 0.4,
"results": [{"id": "210013", "name": "...", "price": 8250,
"in_stock": true, "url": "...", "image": "...", "score": 12.3}]}Гибридный поиск (текстовый + векторный), исправление опечаток и раскладки, синонимы, буст товаров в наличии.
Основной поиск. Параметры: q — запрос, limit — до 500 результатов.
&page=2 — постраничный поиск (с 1, по умолчанию 1). Соседние страницы не пересекаются между собой. В ответе — page, total_matches (сколько всего найдено) и has_more (есть ли следующая страница), чтобы не считать это на своей стороне.
curl -H "X-API-Key: ВАШ_ТОКЕН" \ "https://uniseek.ru/api/search/?q=пакет&limit=20&page=2"
{"status": "success", "page": 2,
"total_matches": 87, "has_more": true, "results": [...]}&fields=id — быстрый режим: в ответе только id и score, без названия, описания и цены. При больших limit ответ заметно легче и быстрее — пригодится, если карточки товара вам не нужны, а нужны только id (например, для своей синхронизации или пагинации).
curl -H "X-API-Key: ВАШ_ТОКЕН" \ "https://uniseek.ru/api/search/?q=пакет&limit=500&fields=id"
{"status": "success", "total": 500,
"results": [{"id": "210013", "score": 12.3}, ...]}Сужайте выдачу по каталогу: category и vendor — точные значения (через запятую — несколько вариантов, логика ИЛИ), price_min/price_max — диапазон цены, in_stock=1 — только товары в наличии. Значения для category/vendor лучше брать из facets (см. ниже), а не вводить вручную — category_path часто хранится полным путём («Категория > Подкатегория»).
curl -H "X-API-Key: ВАШ_ТОКЕН" \ "https://uniseek.ru/api/search/?q=пакет&category=Пакеты+Zip-lock&price_max=500"
&facets=1 — вернуть варианты фильтров с количеством подходящих товаров по текущему q. Список не сужается по мере выбора фильтров — всегда полный набор опций для запроса, удобно строить блок фильтров на странице выдачи.
{"status": "success", ...,
"facets": {"category": [{"value": "Пакеты Zip-lock", "count": 34}, ...],
"vendor": [{"value": "Мактуба", "count": 9}, ...],
"in_stock": {"true": 41, "false": 5},
"price": {"min": 45.0, "max": 3200.0}}}Мгновенные подсказки для выпадашки под поисковой строкой: популярные запросы вашего магазина (type=query, с частотой) и названия товаров (type=product, со ссылкой). Минимум 2 символа.
{"query": "пак", "suggestions": [
{"text": "пакет майка", "type": "query", "count": 11},
{"text": "Пакет ПВД 30*40", "type": "product", "url": "..."}]}Поиск по фото: изображение (multipart, поле image, до 8 МБ) распознаётся ИИ в текстовый запрос, дальше обычный поиск. В ответе — recognized_query и results.
curl -H "X-API-Key: ВАШ_ТОКЕН" \ -F "image=@photo.jpg" -F "limit=10" \ https://uniseek.ru/api/search/image/
Рекомендации на векторах каталога и AI-консультант, который отвечает строго по данным товара.
Похожие товары для блока в карточке: ближайшие аналоги по смыслу (векторная близость), товары в наличии выше. product_id — тот же id, что возвращает поиск.
{"status": "success", "product_name": "Рукав ПВД 40 см, 50 мкм",
"results": [{"id": "210076", "name": "Рукав ПВД 40 см, 80 мкм", ...}]}AI-консультант в карточке товара. Параметры: product_id и question (form-data или JSON). Отвечает только на основе данных товара — характеристики, цена, наличие; не выдумывает.
curl -X POST -H "X-API-Key: ВАШ_ТОКЕН" \
-d "product_id=210013" \
-d "question=Какая толщина и есть ли в наличии?" \
https://uniseek.ru/api/assistant/ask/
→ {"status": "success", "answer": "Толщина рукава — 50 мкм, товар в наличии."}События превращают статистику в деньги: CTR, конверсия и выручка поиска. Плюс методы для синхронизации каталога и выгрузки аналитики.
Маячок событий: type = click | add_to_cart | purchase, q — поисковый запрос, product_id, pos — позиция в выдаче, revenue — сумма для покупки. Всегда отвечает 204 и не задерживает страницу.
fetch('https://uniseek.ru/api/search/event/'
+ '?type=add_to_cart'
+ '&q=' + encodeURIComponent(query)
+ '&product_id=210013&revenue=8250',
{ headers: { 'X-API-Key': 'ВАШ_ТОКЕН' }, keepalive: true });Вся аналитика кабинета в JSON: тоталы с динамикой, CTR, скорость поиска, устройства, таймлайн, топы запросов и товаров. Дубли склеены, боты отфильтрованы.
Точечное обновление цен и остатков — сразу в базе и в поисковом индексе, без перезагрузки прайса. До 500 товаров за запрос.
curl -X POST -H "X-API-Key: ВАШ_ТОКЕН" -H "Content-Type: application/json" \
-d '{"products": [{"id": "210013", "price": 8250, "in_stock": true}]}' \
https://uniseek.ru/api/products/update/Загрузка прайса по расписанию: multipart-поле file (YML/XML/CSV) или параметр url. Ответ 202 с upload_id, обработка в фоне — статус по GET /api/upload/status/?id=...
Ранжирование и выдача настраиваются без разработчика — в личном кабинете UniSeek, раздел «Настройки поиска» (в меню слева). Изменения применяются сразу и сразу видны в ответах /api/search/ — переподключать сайт не нужно.
Насколько совпадение запроса с полем товара весит при ранжировании: Название (0.5–50, по умолчанию 10), Бренд (0–50, по умолчанию 3), Категория (0–50, по умолчанию 3), Описание (0–50, по умолчанию 2). Например, если покупатели ищут по артикулу или модели, которая чаще встречается в описании, стоит поднять вес описания.
Три режима: «не влияет на порядок», «товары в наличии выше» (с настраиваемым приоритетом 1–10, по умолчанию 1.3) и «скрывать отсутствующие» — этот последний режим убирает товары не в наличии из выдачи /api/search/ полностью, независимо от параметра in_stock в запросе.
Исправление опечаток: выключено / умеренно (рекомендуется) / агрессивно (до 2 ошибок в слове). Отдельно — переключатели «исправлять раскладку клавиатуры» и «использовать синонимы». Плюс список стоп-слов (через запятую или с новой строки) — игнорируются при поиске, полезно для слов вроде «купить», «цена», «недорого», которые не помогают найти товар.
Если включено — товары, которые чаще кликают и покупают именно по этому запросу, поднимаются выше (приоритет кликов и покупок настраивается отдельно, 1–20, по умолчанию 3 и 6). Данные берутся из маячков /api/search/event/ — без них накапливать нечего.
Отбрасывает результаты слабее N% от лучшего по релевантности (0–50%). 0 — показывать всё, включая слабо релевантное; 30–40% — только близкое к запросу. Влияет и на total_matches в ответе поиска.
Результатов по умолчанию (1–500, по умолчанию 40) — используется, если запрос к /api/search/ пришёл без параметра limit. Похожих товаров в блоке (1–20, по умолчанию 8) — дефолт для /api/recommend/similar/. «Разрешить сортировку по цене» включает/выключает параметр sort=price_asc/price_desc в публичном API. Отдельно — «скрытые категории» (по одной на строку) — категории, полностью исключённые из поиска.
Закреплённые товары — товар всегда первый по конкретному запросу (для акций и приоритетных позиций), задаётся парой «запрос → артикул». Скрытые товары — конкретный товар не показывается в поиске, но остаётся в каталоге и доступен по прямой ссылке. Приоритет категорий — вся категория целиком поднимается выше остальных (множитель ×0.1–×10); понизить категорию так нельзя — для этого используйте «скрытые категории» или поднимите приоритет у конкурирующей категории.
API бесплатных инструментов UniSeek: открытые методы без ключа. Лимиты — по IP, у вошедших в кабинет выше. Это отдельно от API поиска на вкладках слева: там нужен токен X-API-Key.
Пинг онлайн
Проверка доступности сайта или IP-адреса: четыре замера времени отклика, потери, среднее и джиттер, плюс страна, город и провайдер.
/tools/api/host-ping/| Параметр | Обязательный | Описание |
|---|---|---|
host | да | Домен или IP-адрес (IPv4 или IPv6), до 300 символов. Адреса из закрытых сетей не проверяются. |
mode | нет | icmp — обычный пинг (по умолчанию), 443 или 80 — замер времени соединения с этим TCP-портом. |
curl "https://uniseek.ru/tools/api/host-ping/?host=uniseek.ru&mode=443"Ответ
{"host": "uniseek.ru", "ip": "31.57.13.195", "version": 4, "mode": "tcp", "port": 443,
"times": [0.09, 0.2, 0.16, 0.18], "sent": 4, "received": 4, "loss": 0,
"min": 0.09, "avg": 0.16, "max": 0.2, "jitter": 0.06,
"country": "Германия", "cc": "DE", "city": "Франкфурт-на-Майне", "provider": "SEBEK sp. z o.o"}
- Ключ API не нужен. До 12 проверок в минуту с одного IP (для вошедших в кабинет — больше); при превышении — HTTP 429.
- times — время каждой попытки в миллисекундах, null — попытка не прошла. Если все сервера проверки заняты, вернётся 503 — повторите через несколько секунд.
- Заголовков CORS у этого метода нет: вызывайте его со своего сервера, а не из браузера.
Мой IP
IP-адрес вызывающего и сведения о нём по базе геолокации: страна, город, провайдер, автономная система, имя хоста. Можно проверить и чужой адрес.
/tools/api/my-ip/| Параметр | Обязательный | Описание |
|---|---|---|
ip | нет | Адрес, который нужно проверить. Без параметра вернётся адрес того, кто сделал запрос. |
curl "https://uniseek.ru/tools/api/my-ip/?ip=8.8.8.8" # только свой адрес текстом curl https://uniseek.ru/tools/my-ip/Ответ
{"ip": "8.8.8.8", "version": 4, "kind": "public", "country": "США", "cc": "US", "flag": "🇺🇸",
"region": "Калифорния", "city": "Маунтин-Вью", "lat": 37.422, "lon": -122.085,
"asn": 15169, "org": "Google LLC", "provider": "Google", "hosting": true, "hostname": "dns.google"}
- Ключ API не нужен. Проверка чужого адреса (параметр ip) — до 30 запросов в минуту с одного IP; запрос своего адреса лимитом не ограничен.
- kind — public для обычного адреса; для частных и служебных адресов геоданных нет. hosting: true — адрес принадлежит хостингу или дата-центру.
- Короткие способы: curl uniseek.ru/tools/my-ip/ отвечает просто адресом, а /tools/my-ip/?format=json — то же, что этот метод. CORS разрешён для любых сайтов.
Калькулятор НДС
Выделяет НДС из суммы или начисляет сверху: ставки 22%, 20%, 10%, 7%, 5% и 0%.
/tools/api/calc/vat/| Параметр | Обязательный | Описание |
|---|---|---|
amount | да | Сумма в рублях, например 122000 или "122 000,50". |
rate | нет | Ставка НДС, %: 22 (по умолчанию), 20, 10, 7, 5, 0. |
mode | нет | extract — НДС уже в сумме (по умолчанию), add — начислить сверху. |
curl "https://uniseek.ru/tools/api/calc/vat/?amount=122000&rate=22&mode=extract"
# то же POST-запросом с JSON
curl -X POST https://uniseek.ru/tools/api/calc/vat/ \
-H "Content-Type: application/json" \
-d '{"amount": 100000, "rate": 22, "mode": "add"}'
Ответ
{"summary": "НДС 22%: 22 000,00 ₽",
"rows": [["Сумма без НДС", "100 000,00 ₽"], ["НДС 22%", "22 000,00 ₽"], ["Сумма с НДС", "122 000,00 ₽"]],
"values": {"net": "100000.00", "vat": "22000.00", "total": "122000.00"}}
- Ключ API не нужен. До 120 запросов в минуту с одного IP; для вошедших в кабинет лимит выше.
- Поля ответа: summary — итог одной строкой, rows — строки «название — значение», values — числа без форматирования, table и notes — разбивка по периодам и пояснения (если они есть у расчёта).
- Ошибка в данных — HTTP 400 и {"error": "…"} с понятным текстом; лимит — 429. Заголовки CORS разрешают вызов из браузера с любого сайта.
Проценты по ст. 395 ГК
Проценты за пользование чужими деньгами по ключевой ставке Банка России с разбивкой по периодам.
/tools/api/calc/interest395/| Параметр | Обязательный | Описание |
|---|---|---|
amount | да | Сумма долга, ₽. |
start | да | Дата начала просрочки, ГГГГ-ММ-ДД или ДД.ММ.ГГГГ. |
end | да | Дата, по которую считать (или сегодня). |
moratorium | нет | 1 — исключить период моратория на банкротство (по умолчанию 0). |
curl "https://uniseek.ru/tools/api/calc/interest395/?amount=100000&start=2026-01-10&end=2026-02-10"
# то же POST-запросом с JSON
curl -X POST https://uniseek.ru/tools/api/calc/interest395/ \
-H "Content-Type: application/json" \
-d '{"amount": 100000, "start": "2026-01-10", "end": "2026-02-10"}'
Ответ
{"summary": "Проценты по ст. 395 ГК: 1 402,74 ₽",
"rows": [["Сумма долга", "100 000,00 ₽"], ["Дней просрочки в расчёте", 32], ["Проценты", "1 402,74 ₽"], ["Долг с процентами", "101 402,74 ₽"]],
"table": {"headers": ["Период", "Дней", "Ключевая ставка", "Дней в году", "Проценты"],
"rows": [["10.01.2026 — 10.02.2026", 32, "16,00%", 365, "1 402,74 ₽"]]},
"notes": [], "values": {…}}
- Ключ API не нужен. До 120 запросов в минуту с одного IP; для вошедших в кабинет лимит выше.
- Поля ответа: summary — итог одной строкой, rows — строки «название — значение», values — числа без форматирования, table и notes — разбивка по периодам и пояснения (если они есть у расчёта).
- Ошибка в данных — HTTP 400 и {"error": "…"} с понятным текстом; лимит — 429. Заголовки CORS разрешают вызов из браузера с любого сайта.
Пени по налогам
Пени за просрочку налогов и взносов: 1/300 ключевой ставки, для организаций с 31-го дня — 1/150.
/tools/api/calc/taxpenalty/| Параметр | Обязательный | Описание |
|---|---|---|
amount | да | Недоимка, ₽. |
due | да | Срок уплаты, ГГГГ-ММ-ДД или ДД.ММ.ГГГГ. Пени идут со следующего дня. |
end | да | Дата уплаты (или сегодня). |
payer | нет | org — организация (по умолчанию), ip — ИП или физическое лицо. |
curl "https://uniseek.ru/tools/api/calc/taxpenalty/?amount=50000&due=2026-03-01&end=2026-05-01&payer=org"
# то же POST-запросом с JSON
curl -X POST https://uniseek.ru/tools/api/calc/taxpenalty/ \
-H "Content-Type: application/json" \
-d '{"amount": 50000, "due": "2026-03-01", "end": "2026-05-01", "payer": "org"}'
Ответ
{"summary": "Пени: 2 309,17 ₽",
"rows": [["Недоимка", "50 000,00 ₽"], ["Дней просрочки", 61], ["Пени", "2 309,17 ₽"]],
"table": {"headers": ["Период", "Дней", "Ключевая ставка", "Доля ставки", "Пени"], "rows": [[…]]},
"values": {…}}
- Ключ API не нужен. До 120 запросов в минуту с одного IP; для вошедших в кабинет лимит выше.
- Поля ответа: summary — итог одной строкой, rows — строки «название — значение», values — числа без форматирования, table и notes — разбивка по периодам и пояснения (если они есть у расчёта).
- Ошибка в данных — HTTP 400 и {"error": "…"} с понятным текстом; лимит — 429. Заголовки CORS разрешают вызов из браузера с любого сайта.
Калькулятор отпускных
Отпускные по среднему дневному заработку: до и после НДФЛ.
/tools/api/calc/vacation/| Параметр | Обязательный | Описание |
|---|---|---|
earnings | да | Заработок за расчётный период, ₽. |
days | да | Дней отпуска. |
months | нет | Полных отработанных месяцев в периоде, 1–12 (по умолчанию 12). |
curl "https://uniseek.ru/tools/api/calc/vacation/?earnings=840000&days=28&months=12"
# то же POST-запросом с JSON
curl -X POST https://uniseek.ru/tools/api/calc/vacation/ \
-H "Content-Type: application/json" \
-d '{"earnings": 840000, "days": 28, "months": 12}'
Ответ
{"summary": "Отпускные: 66 894,24 ₽",
"rows": [["Средний дневной заработок", "2 389,08 ₽"], ["Дней отпуска", 28], ["Отпускные до вычета НДФЛ", "66 894,24 ₽"],
["НДФЛ по ставке 13%", "8 696,25 ₽"], ["Отпускные на руки", "58 197,99 ₽"]],
"notes": ["Формула: …"], "values": {…}}
- Ключ API не нужен. До 120 запросов в минуту с одного IP; для вошедших в кабинет лимит выше.
- Поля ответа: summary — итог одной строкой, rows — строки «название — значение», values — числа без форматирования, table и notes — разбивка по периодам и пояснения (если они есть у расчёта).
- Ошибка в данных — HTTP 400 и {"error": "…"} с понятным текстом; лимит — 429. Заголовки CORS разрешают вызов из браузера с любого сайта.
Сумма прописью
Рубли, доллары, евро или тенге прописью с правильными падежами.
/tools/api/calc/words/| Параметр | Обязательный | Описание |
|---|---|---|
amount | да | Сумма, например 123456.78 или "123 456,78". До триллиона. |
currency | нет | RUB (по умолчанию), USD, EUR, KZT. |
cents | нет | digits — копейки цифрами (по умолчанию) или words — словами. |
capital | нет | 1 — начинать с заглавной буквы (по умолчанию), 0 — со строчной. |
curl "https://uniseek.ru/tools/api/calc/words/?amount=123456.78¤cy=RUB"
# то же POST-запросом с JSON
curl -X POST https://uniseek.ru/tools/api/calc/words/ \
-H "Content-Type: application/json" \
-d '{"amount": "123456.78", "currency": "RUB", "cents": "words"}'
Ответ
{"summary": "Сто двадцать три тысячи четыреста пятьдесят шесть рублей 78 копеек",
"rows": [["Сумма", "123 456,78 ₽"], ["Прописью", "Сто двадцать три тысячи четыреста пятьдесят шесть рублей 78 копеек"]],
"values": {"words": "Сто двадцать три тысячи четыреста пятьдесят шесть рублей 78 копеек"}}
- Ключ API не нужен. До 120 запросов в минуту с одного IP; для вошедших в кабинет лимит выше.
- Поля ответа: summary — итог одной строкой, rows — строки «название — значение», values — числа без форматирования, table и notes — разбивка по периодам и пояснения (если они есть у расчёта).
- Ошибка в данных — HTTP 400 и {"error": "…"} с понятным текстом; лимит — 429. Заголовки CORS разрешают вызов из браузера с любого сайта.
Калькулятор НДФЛ
НДФЛ по прогрессивной шкале 13–22% с суммы или обратный расчёт: сколько начислить, чтобы получить на руки.
/tools/api/calc/ndfl/| Параметр | Обязательный | Описание |
|---|---|---|
amount | да | Сумма, ₽. |
mode | нет | gross — НДФЛ с начисленной суммы (по умолчанию), net — сколько начислить, чтобы на руки была amount. |
period | нет | year — сумма за год (по умолчанию) или month — за месяц (тогда в table — расчёт по месяцам). |
resident | нет | 1 — резидент (по умолчанию), 0 — нерезидент (30%). |
deduction | нет | Вычеты за тот же период, ₽. |
curl "https://uniseek.ru/tools/api/calc/ndfl/?amount=2500000&period=year"
# то же POST-запросом с JSON
curl -X POST https://uniseek.ru/tools/api/calc/ndfl/ \
-H "Content-Type: application/json" \
-d '{"amount": 100000, "period": "month"}'
Ответ
{"summary": "НДФЛ: 327 000,00 ₽, на руки 2 173 000,00 ₽",
"rows": [["Начислено", "2 500 000,00 ₽"], ["НДФЛ", "327 000,00 ₽"], …],
"values": {"gross": "2500000", "tax": "327000.00", "net": "2173000.00"}}
- Ключ API не нужен. До 120 запросов в минуту с одного IP; для вошедших в кабинет лимит выше.
- Поля ответа: summary — итог одной строкой, rows — строки «название — значение», values — числа без форматирования, table и notes — разбивка по периодам и пояснения (если они есть у расчёта).
- Ошибка в данных — HTTP 400 и {"error": "…"} с понятным текстом; лимит — 429. Заголовки CORS разрешают вызов из браузера с любого сайта.
Калькулятор больничного
Пособие по временной нетрудоспособности: средний заработок за 2 года с предельными базами, процент по стажу, минимум из МРОТ.
/tools/api/calc/sickpay/| Параметр | Обязательный | Описание |
|---|---|---|
earn1 | да | Заработок за первый из двух лет, ₽. |
earn2 | да | Заработок за второй год, ₽. |
stazh | нет | 8 — от 8 лет (100%, по умолчанию), 5 — 5–8 лет (80%), 0.5 — от 6 мес. до 5 лет (60%), 0 — меньше 6 месяцев. |
days | нет | Дней болезни (по умолчанию 7). |
year | нет | Год болезни: 2026 (по умолчанию) или 2025. |
rk | нет | Районный коэффициент, по умолчанию 1. |
start | нет | Первый день болезни, ГГГГ-ММ-ДД (нужен при стаже меньше 6 месяцев). |
curl "https://uniseek.ru/tools/api/calc/sickpay/?earn1=2000000&earn2=3000000&days=10"
# то же POST-запросом с JSON
curl -X POST https://uniseek.ru/tools/api/calc/sickpay/ \
-H "Content-Type: application/json" \
-d '{"earn1": 2000000, "earn2": 3000000, "stazh": "8", "days": 10}'
Ответ
{"summary": "Больничный: 65 191,80 ₽ за 10 дн. (6 519,18 ₽ в день)",
"rows": [["Средний дневной заработок", "6 519,18 ₽"], …],
"values": {"average": "6519.18", "daily": "6519.18", "total": "65191.80"}}
- Ключ API не нужен. До 120 запросов в минуту с одного IP; для вошедших в кабинет лимит выше.
- Поля ответа: summary — итог одной строкой, rows — строки «название — значение», values — числа без форматирования, table и notes — разбивка по периодам и пояснения (если они есть у расчёта).
- Ошибка в данных — HTTP 400 и {"error": "…"} с понятным текстом; лимит — 429. Заголовки CORS разрешают вызов из браузера с любого сайта.
Калькулятор УСН
Налог УСН 6% или 15% по кварталам нарастающим итогом: авансы, уменьшение на взносы, минимальный налог, сроки.
/tools/api/calc/usn/| Параметр | Обязательный | Описание |
|---|---|---|
obj | нет | 6 — «доходы» (по умолчанию), 15 — «доходы минус расходы». |
rate | нет | Ставка региона, %; по умолчанию 6 или 15. |
payer | нет | ip — ИП (по умолчанию), org — организация. |
employees | нет | 1 — есть работники (уменьшение на взносы — не больше 50%). |
inc1…inc4 | нет | Доходы по кварталам, ₽. |
exp1…exp4 | нет | Расходы по кварталам, ₽ (для 15%). |
con1…con4 | нет | Страховые взносы, уменьшающие налог, по кварталам, ₽ (для 6%). |
curl "https://uniseek.ru/tools/api/calc/usn/?obj=6&inc1=1000000&inc2=1000000&inc3=1000000&inc4=1000000&con1=15000&con2=15000&con3=15000&con4=30000"
# то же POST-запросом с JSON
curl -X POST https://uniseek.ru/tools/api/calc/usn/ \
-H "Content-Type: application/json" \
-d '{"obj": "15", "payer": "org", "inc1": 1000000, "inc2": 1000000, "inc3": 1000000, "inc4": 1000000, "exp1": 950000, "exp2": 950000, "exp3": 950000, "exp4": 980000}'
Ответ
{"summary": "УСН за год: 165 000,00 ₽",
"table": {"headers": ["Период", …], "rows": [["1 квартал", "1 000 000,00 ₽", "60 000,00 ₽", "15 000,00 ₽", "45 000,00 ₽", "до 28 апреля"], …]},
"values": {"year_tax": "165000.00"}}
- Ключ API не нужен. До 120 запросов в минуту с одного IP; для вошедших в кабинет лимит выше.
- Поля ответа: summary — итог одной строкой, rows — строки «название — значение», values — числа без форматирования, table и notes — разбивка по периодам и пояснения (если они есть у расчёта).
- Ошибка в данных — HTTP 400 и {"error": "…"} с понятным текстом; лимит — 429. Заголовки CORS разрешают вызов из браузера с любого сайта.
Счёт на оплату
Счёт на оплату в PDF или Excel по данным, которые вы передаёте.
/tools/api/doc/invoice/| Параметр | Обязательный | Описание |
|---|---|---|
fmt | нет | pdf (по умолчанию) или xlsx — формат файла. |
number | да | Номер документа, до 40 знаков. |
date | да | Дата документа, ГГГГ-ММ-ДД. |
seller / buyer | да | Объекты сторон: name (обязательно), inn (10 или 12 цифр, проверяется контрольное число), kpp, address, position, person, accountant. |
items | да | Список позиций (до 40): name, qty (по умолчанию 1), unit, price. |
vat | нет | Объект {"mode": "none" | "included" | "added", "rate": "22"}. Ставки: 22, 20, 10, 7, 5, 0. |
bank | да | Банк получателя: name, bic (9 цифр), account (20 цифр), corr. Для счёта обязателен; ключ счёта проверяется по БИК. |
basis, note | нет | Основание и примечание (до 300 и 600 знаков). |
qr | нет | 1 — QR-код для оплаты в счёте (по умолчанию), 0 — без него. |
curl -X POST https://uniseek.ru/tools/api/doc/invoice/ \
-H "Content-Type: application/json" \
-d '{"number": "12", "date": "2026-10-17", "seller": {"name": "ООО Ромашка", "inn": "7707083893"}, "buyer": {"name": "ИП Иванов"}, "bank": {"name": "ПАО Сбербанк", "bic": "044525225", "account": "<20 цифр>"}, "items": [{"name": "Консультация", "qty": 2, "price": 5000}]}' \
-o invoice.pdf
Ответ
Файл: Content-Type application/pdf (или xlsx-документ) и заголовок Content-Disposition: attachment.
Ошибка данных — HTTP 400 и {"error": "Заполните поле «Покупатель: название»"}.
- Ключ API не нужен. До 30 запросов в минуту с одного IP; запрос — не больше 200 КБ (иначе 413). Ничего не сохраняется: файл строится и сразу отдаётся.
- Заголовки CORS разрешают вызов из браузера с любого сайта. Документ справочный: реквизиты и суммы проверяйте перед отправкой контрагенту.
Акт
Акт выполненных работ или оказанных услуг в PDF или Excel.
/tools/api/doc/act/| Параметр | Обязательный | Описание |
|---|---|---|
fmt | нет | pdf (по умолчанию) или xlsx — формат файла. |
number | да | Номер документа, до 40 знаков. |
date | да | Дата документа, ГГГГ-ММ-ДД. |
seller / buyer | да | Объекты сторон: name (обязательно), inn (10 или 12 цифр, проверяется контрольное число), kpp, address, position, person, accountant. |
items | да | Список позиций (до 40): name, qty (по умолчанию 1), unit, price. |
vat | нет | Объект {"mode": "none" | "included" | "added", "rate": "22"}. Ставки: 22, 20, 10, 7, 5, 0. |
bank | нет | Банковские реквизиты в акте не нужны. |
basis, note | нет | Основание и примечание (до 300 и 600 знаков). |
qr | нет | 1 — QR-код для оплаты в счёте (по умолчанию), 0 — без него. |
curl -X POST https://uniseek.ru/tools/api/doc/act/ \
-H "Content-Type: application/json" \
-d '{"number": "5", "date": "2026-10-17", "seller": {"name": "ООО Ромашка", "inn": "7707083893"}, "buyer": {"name": "ИП Иванов"}, "items": [{"name": "Консультация", "qty": 2, "price": 5000}]}' \
-o act.pdf
Ответ
Файл: Content-Type application/pdf (или xlsx-документ) и заголовок Content-Disposition: attachment.
Ошибка данных — HTTP 400 и {"error": "Заполните поле «Покупатель: название»"}.
- Ключ API не нужен. До 30 запросов в минуту с одного IP; запрос — не больше 200 КБ (иначе 413). Ничего не сохраняется: файл строится и сразу отдаётся.
- Заголовки CORS разрешают вызов из браузера с любого сайта. Документ справочный: реквизиты и суммы проверяйте перед отправкой контрагенту.
УПД
Универсальный передаточный документ в PDF или Excel.
/tools/api/doc/upd/| Параметр | Обязательный | Описание |
|---|---|---|
fmt | нет | pdf (по умолчанию) или xlsx — формат файла. |
number | да | Номер документа, до 40 знаков. |
date | да | Дата документа, ГГГГ-ММ-ДД. |
seller / buyer | да | Объекты сторон: name (обязательно), inn (10 или 12 цифр, проверяется контрольное число), kpp, address, position, person, accountant. |
items | да | Список позиций (до 40): name, qty (по умолчанию 1), unit, price. |
vat | нет | Объект {"mode": "none" | "included" | "added", "rate": "22"}. Ставки: 22, 20, 10, 7, 5, 0. |
bank | нет | Банковские реквизиты в УПД не обязательны. |
basis, note | нет | Основание и примечание (до 300 и 600 знаков). |
qr | нет | 1 — QR-код для оплаты в счёте (по умолчанию), 0 — без него. |
curl -X POST https://uniseek.ru/tools/api/doc/upd/ \
-H "Content-Type: application/json" \
-d '{"number": "7", "date": "2026-10-17", "upd_status": "1", "seller": {"name": "ООО Ромашка", "inn": "7707083893"}, "buyer": {"name": "ИП Иванов"}, "items": [{"name": "Консультация", "qty": 2, "price": 5000}]}' \
-o upd.pdf
Ответ
Файл: Content-Type application/pdf (или xlsx-документ) и заголовок Content-Disposition: attachment.
Ошибка данных — HTTP 400 и {"error": "Заполните поле «Покупатель: название»"}.
- Ключ API не нужен. До 30 запросов в минуту с одного IP; запрос — не больше 200 КБ (иначе 413). Ничего не сохраняется: файл строится и сразу отдаётся.
- Заголовки CORS разрешают вызов из браузера с любого сайта. Документ справочный: реквизиты и суммы проверяйте перед отправкой контрагенту.
WHOIS домена
Регистратор, владелец, даты регистрации и оплаты, дата освобождения, DNS-серверы и статус домена, плюс полный ответ whois-сервера зоны.
/tools/api/whois/| Параметр | Обязательный | Описание |
|---|---|---|
domain | да | Домен, например uniseek.ru или магазин.рф. Для поддомена вернётся WHOIS основного домена. |
curl "https://uniseek.ru/tools/api/whois/?domain=uniseek.ru"Ответ
{"domain": "uniseek.ru", "domain_u": "uniseek.ru", "server": "whois.tcinet.ru", "found": true,
"registrar": "REGRU-RU", "org": "Private Person", "ns": ["ns1.reg.ru", "ns2.reg.ru"],
"states": ["REGISTERED", "DELEGATED", "VERIFIED"], "created": "18.09.2026", "paid_till": "18.09.2027",
"free_date": "19.10.2027", "age": "1 мес.", "days_left": 335, "raw": "…"}
- Ключ API не нужен. До 12 запросов в минуту с одного IP (для вошедших в кабинет — больше); при превышении — HTTP 429.
- found: false — whois-сервер зоны не нашёл домен (скорее всего, он свободен). Даты — в формате ДД.ММ.ГГГГ, пустая строка — поля нет в ответе.
- Ввод — публичный домен (можно ссылкой: https://site.ru/page → site.ru). IP-адреса, внутренние зоны (.local, .lan …) и домены, ведущие во внутреннюю сеть, не проверяются — ответ 400 с {"error": "…"}. Ответ по одному домену кэшируется на 5 минут.
- Заголовок CORS разрешает вызов из браузера с любого сайта.
Проверка SSL
Сертификат сайта на порту 443: действителен ли он для браузеров, срок действия, издатель, домены SAN, цепочка, версия TLS и шифр.
/tools/api/ssl-check/| Параметр | Обязательный | Описание |
|---|---|---|
domain | да | Домен сайта, например uniseek.ru. Проверяется только порт 443. |
curl "https://uniseek.ru/tools/api/ssl-check/?domain=uniseek.ru"Ответ
{"host": "uniseek.ru", "ip": "31.57.13.195", "valid": true, "error": "", "status": "ok",
"tls": "TLSv1.3", "cipher": "TLS_AES_256_GCM_SHA384", "issuer": "GlobalSign nv-sa",
"sans": ["www.uniseek.ru", "uniseek.ru"], "from": "18.09.2026", "until": "05.04.2027", "days": 169,
"covers_host": true, "covers_www": true, "chain": [{"cn": "…", "issuer": "…", "until": "…"}], "sha256": "A1:11:…"}
- Ключ API не нужен. До 12 запросов в минуту с одного IP (для вошедших в кабинет — больше); при превышении — HTTP 429.
- status: ok — всё в порядке, warn — меньше 14 дней до окончания или устаревший TLS, bad — браузер покажет ошибку (причина — в error).
- Ввод — публичный домен (можно ссылкой: https://site.ru/page → site.ru). IP-адреса, внутренние зоны (.local, .lan …) и домены, ведущие во внутреннюю сеть, не проверяются — ответ 400 с {"error": "…"}. Ответ по одному домену кэшируется на 5 минут.
- Заголовок CORS разрешает вызов из браузера с любого сайта.
DNS-записи
Записи A, AAAA, CNAME, MX, NS, TXT, SOA и CAA с TTL и разбор почтовых записей SPF и DMARC.
/tools/api/dns/| Параметр | Обязательный | Описание |
|---|---|---|
domain | да | Домен или поддомен, например uniseek.ru или shop.site.ru. |
curl "https://uniseek.ru/tools/api/dns/?domain=uniseek.ru"Ответ
{"host": "uniseek.ru", "count": 6, "has_mx": false,
"records": [{"type": "A", "ttl": "1 ч", "items": [{"value": "31.57.13.195"}]}, {"type": "MX", "ttl": "", "items": []}, …],
"mail": {"spf": "", "spf_notes": [], "dmarc": "", "dmarc_notes": []}}
- Ключ API не нужен. До 20 запросов в минуту с одного IP (для вошедших в кабинет — больше); при превышении — HTTP 429.
- У MX в items есть prio — приоритет. spf_notes и dmarc_notes — пары [уровень, текст], уровень ok, warn или bad.
- Ввод — публичный домен (можно ссылкой: https://site.ru/page → site.ru). IP-адреса, внутренние зоны (.local, .lan …) и домены, ведущие во внутреннюю сеть, не проверяются — ответ 400 с {"error": "…"}. Ответ по одному домену кэшируется на 5 минут.
- Заголовок CORS разрешает вызов из браузера с любого сайта.
Заголовки ответа сервера
Код ответа и цепочка редиректов страницы, сжатие, кэширование, заголовки безопасности (HSTS, CSP, X-Frame-Options и др.) и флаги cookie.
/tools/api/headers/| Параметр | Обязательный | Описание |
|---|---|---|
url | да | Адрес страницы, например uniseek.ru или https://site.ru/catalog/. Только порты 80 и 443. |
curl "https://uniseek.ru/tools/api/headers/?url=uniseek.ru"Ответ
{"url": "https://uniseek.ru", "final": "https://uniseek.ru/", "status": 200, "ms": 85, "redirects": 1,
"hops": [{"url": "…", "status": 301, …}], "checks": [["ok", "Сжатие gzip включено…"]],
"sec": [{"name": "Strict-Transport-Security", "value": "max-age=…", "level": "ok"}, …], "cookies": [], "headers": [["Server", "nginx"], …]}
- Ключ API не нужен. До 12 запросов в минуту с одного IP (для вошедших в кабинет — больше); при превышении — HTTP 429.
- checks и notes — пары [уровень, текст], уровень ok, warn или bad. Значения cookie скрыты, видны только имена и флаги.
- Проверяются только публичные адреса: внутренние сети, IP-адреса и нестандартные порты — ответ 400. Ответ по адресу кэшируется на 5 минут.
- Заголовок CORS разрешает вызов из браузера с любого сайта.
Массовая проверка ответа сервера
Код ответа, конечный адрес и цепочка редиректов для списка страниц. Проверка идёт в фоне: запускаете её и забираете результат по номеру.
/tools/api/bulk-status/| Параметр | Обязательный | Описание |
|---|---|---|
urls | да | Список адресов: массив или строка, адрес на строку. До 50 адресов (вошедшим — 100), не больше 5 разных сайтов. |
curl -X POST https://uniseek.ru/tools/api/bulk-status/ -H "Content-Type: application/json" \
-d '{"urls": ["https://uniseek.ru/", "http://uniseek.ru/tools/"]}'
# → {"job": "AbC…", "total": 2}
curl https://uniseek.ru/tools/api/bulk-status/AbC…/
Ответ
{"status": "done", "done": 2, "total": 2, "rows": [
{"url": "https://uniseek.ru/", "status": 200, "final_status": 200, "final_url": "https://uniseek.ru/", "chain": [200], "redirects": 0, "ms": 120, "error": ""}, …]}
- Ключ API не нужен. До 4 запусков в минуту и 30 в час с одного IP; одновременно на сайте идут не больше 2 проверок — иначе HTTP 503.
- Пока status = "running", в rows — уже проверенные адреса. Результат хранится 30 минут.
- Проверяются только публичные адреса на портах 80 и 443; IP-адреса и внутренние зоны — ответ 400.
Проверка битых ссылок
Обход страниц сайта и проверка каждой ссылки и картинки: битые (404, 5xx, сайт не отвечает), редиректы и ссылки «под вопросом» с адресами страниц, где они стоят. Проверка идёт в фоне: запускаете её и забираете результат по номеру.
/tools/api/broken-links/| Параметр | Обязательный | Описание |
|---|---|---|
url | да | Адрес сайта или страницы, с которой начать обход, например https://shop.ru/catalog/. Обходим только этот сайт (и его www-вариант). |
external | нет | false — не проверять внешние ссылки (по умолчанию true). |
images | нет | false — не проверять картинки (по умолчанию true). |
curl -X POST https://uniseek.ru/tools/api/broken-links/ -H "Content-Type: application/json" \
-d '{"url": "https://shop.ru/"}'
# → {"job": "AbC…", "max_pages": 100}
curl https://uniseek.ru/tools/api/broken-links/AbC…/
Ответ
{"status": "done", "start": "https://shop.ru/", "pages": 100, "checked": 707, "broken": 7, "warn": 2, "redirect": 16, "ok": 682,
"limited": false, "timeout": false, "rows": [
{"url": "https://shop.ru/old/", "kind": "broken", "code": 404, "error": "", "final": "",
"internal": true, "tag": "a", "n": 3, "sources": [{"page": "https://shop.ru/", "text": "Старая страница"}]}, …]}
- Ключ API не нужен. До 2 запусков в минуту и 5 в час с одного IP (вошедшим в кабинет — больше); одновременно на сайте идут не больше 2 проверок — иначе HTTP 503.
- Пока status = "running", в ответе — ход проверки: pages (обойдено страниц), found, done и total (проверено ссылок). Результат хранится час.
- kind: broken — 404/410/5xx или сайт не отвечает; warn — внешний сайт не пустил наш сервер (401, 403, 429, антибот), в браузере ссылка часто открывается; redirect — ссылка ведёт на другой адрес (конечный — в final). Обход — до 100 страниц (вошедшим до 300), всего до 1 500 адресов, из них до 300 внешних; при превышении limited = true. Ссылки, которые появляются только после выполнения JavaScript, не проверяются.
- Проверяются только публичные адреса на портах 80 и 443; IP-адреса и внутренние зоны — ответ 400.
Курсы валют ЦБ
Официальные курсы иностранных валют Банка России на дату: код, название, номинал и курс в рублях.
/tools/api/cbr-rates/| Параметр | Обязательный | Описание |
|---|---|---|
date | нет | Дата в формате ГГГГ-ММ-ДД, с 1992-07-01 по завтрашний день. Без параметра — сегодня. |
curl "https://uniseek.ru/tools/api/cbr-rates/?date=2026-10-17"Ответ
{"date": "2026-10-17", "rates": {"USD": {"name": "Доллар США", "nominal": 1, "value": 80.1, "rate": 80.1}, "KZT": {"name": "Казахстанских тенге", "nominal": 100, "value": 16.2, "rate": 0.162}, …}}
- Ключ API не нужен. До 30 запросов в минуту с одного IP; при превышении — HTTP 429.
- date в ответе — дата курса ЦБ: на выходные и праздники действует последний установленный курс. rate — курс за одну единицу валюты.
- Данные — с сайта cbr.ru, кэшируются на час (прошлые даты — на сутки). Заголовок CORS разрешает вызов из браузера.
Подсказки, стандартизация и реквизиты
Эти методы описаны подробно, с примерами и виджетом, на странице «Подсказки и стандартизация».
GET /tools/api/suggest/<вид>/— Подсказки: address, bank, company, name, email — для виджетов на вашем сайтеPOST /tools/api/clean/— Стандартизация списка: телефоны, ФИО (с падежами), emailPOST /tools/api/check/— Проверка реквизитов: ИНН, КПП, БИК, счётGET /tools/api/bank/<БИК>/— Банк по БИКGET /tools/api/company/<ИНН>/— Карточка компании по ИНН
Готовы автоматизировать магазин?
30 дней бесплатно, без привязки карты


