API-ключи
Два типа ключей, когда их использовать и как их создать.
API-ключи — это пароли для роботов (приложений). Есть два типа.
Два типа ключей
1. Ключ для поиска (ss_search_*)
Для чего:
- Поиск товаров на сайте
- Может только искать, не может менять товары
Где использовать:
- На сайте в браузере (видимый в HTML — это нормально)
- В мобильном приложении
Безопасность:
- Может видеть только результаты поиска
- Не может загружать или удалять товары
- Не может видеть статистику
2. Ключ для загрузки (ss_ingest_*)
Для чего:
- Загружать и обновлять товары
- Может добавлять, менять и удалять товары
Где использовать:
- Только на вашем сервере
- Никогда в браузере
- Никогда в мобильном приложении
Безопасность:
- Скрыт на сервере
- Может менять все товары в индексе
- Берегите как пароль от почты
Создать ключ для поиска
- В панели управления перейдите Поиск → Ключи API
- Нажмите Создать ключ
- Выберите Поиск
- Введите название (например, "Мой сайт")
- Нажмите Создать
- Скопируйте ключ немедленно — он не будет показан снова
Вы получите ключ, начинающийся с ss_search_
Создать ключ для загрузки
- В панели управления перейдите Поиск → Ключи API
- Нажмите Создать ключ
- Выберите Загрузка товаров
- Введите название (например, "Синхронизация с магазином")
- Нажмите Создать
- Скопируйте ключ немедленно — он не будет показан снова
Вы получите ключ, начинающийся с ss_ingest_
Как использовать ключ поиска
На сайте в теге script:
<script
src="https://api.aacsearch.com/api/widget/widget.js"
data-key="ss_search_ваш_ключ"
data-index="товары"
>
</script>Или в коде JavaScript:
fetch('https://api.aacsearch.com/api/search', {
method: 'POST',
headers: {
'Authorization': 'Bearer ss_search_ваш_ключ',
'Content-Type': 'application/json'
},
body: JSON.stringify({
index: 'товары',
q: 'рубашка'
})
})Как использовать ключ для загрузки
На сервере (Node.js):
const key = 'ss_ingest_ваш_ключ';
// Загрузить товар
await fetch('https://api.aacsearch.com/api/ingest', {
method: 'POST',
headers: {
'Authorization': `Bearer ${key}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
index: 'товары',
documents: [
{
id: '123',
title: 'Красная рубашка',
price: 1500
}
]
})
});Лимиты на запросы
Каждый ключ имеет лимит на количество поисков в минуту:
- По умолчанию: 60 запросов в минуту
- Можно изменить при создании ключа
Если превышен лимит:
- Запрос будет отклонён
- Попробуйте снова через 60 секунд
Срок действия ключа
Ключ может:
- Жить вечно (по умолчанию)
- Истечь в определённую дату (вы указываете)
Ключи с ограничением по времени более безопасны:
- Если ключ украдут, его можно будет использовать только до срока
- После истечения нужно создать новый ключ
Удалить ключ
- В панели управления перейдите Поиск → Ключи API
- Найдите ключ
- Нажмите Удалить
После удаления ключ больше не работает.
Совет: Удаляйте ключи, которые больше не используются. Это безопаснее.
Что если ключ украли?
- Удалите скомпрометированный ключ в панели управления
- Создайте новый ключ
- Обновите код на сайте/сервере
Не переживайте — украденный ключ работать не будет после удаления.
Безопасность: что делать и что не делать
✓ Делайте:
- Скопируйте ключ сразу после создания
- Скройте ключ для загрузки на сервере
- Удаляйте неиспользуемые ключи
- Давайте разным сервисам разные ключи
❌ Не делайте:
- Не скидывайте ключ в переписке или Slack
- Не коммитьте ключ в git
- Не показывайте ключ в консоли браузера
- Не используйте один ключ для всего
Справочник по схеме индекса
Полный справочник по схеме индекса — обязательные поля, типы полей, флаги searchable / facet / sort, правила slug, ошибки валидации, примеры каталога товаров и каталога контента.
Загрузить много товаров
Как обновлять товары массово и что делать, если параметры поиска нужно изменить.