ESEO для разработчиков
REST API и MCP-сервер для генерации и проверки SEO-карточек товаров через AI. Интегрируй ESEO в CMS, ERP, автоматизации и AI-агентов — Claude, ChatGPT, Cursor.
Быстрый старт
Три шага: получи ключ → сделай запрос → получи карточку.
# 1. Получи API ключ в настройках → /settings
# 2. Сделай запрос
curl -X POST https://eseo.su/api/v1/generate \
-H "Authorization: Bearer eseo_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"input": "Кроссовки Nike Air Max 90 черные мужские",
"marketplace": "WB"
}'{
"id": "clxyz1234",
"marketplace": "WB",
"title": "Кроссовки Nike Air Max 90 — комфорт и стиль для повседневной носки",
"description": "Кроссовки Nike Air Max 90 — идеальный выбор для активного образа жизни...",
"bullets": [
"Амортизирующая подошва — снижает нагрузку на суставы",
"Поддержка стопы — стабильность и комфорт",
"Воздухопроницаемый верх — ноги остаются сухими",
"Стильный дизайн — подходит для любого образа",
"Долговечность — высокое качество материалов"
],
"keywords": ["кроссовки nike", "air max 90", "мужские кроссовки"],
"seoScore": 87,
"createdAt": "2026-05-05T01:00:00.000Z"
}Авторизация
Все запросы требуют заголовок Authorization. Ключи создаются в Настройках → Public API. Требуется тариф Профи или Команда.
Authorization: Bearer eseo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx⚠️ Храни ключ в переменных окружения. Ключ показывается только при создании.
POST /generate
Генерирует SEO-карточку товара через AI.
Запрос
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
input | string | Да | Название / описание товара (3–500 символов) |
marketplace | string | Нет | WB | OZON | YANDEX_MARKET (default: WB) |
JavaScript / TypeScript
const response = await fetch('https://eseo.su/api/v1/generate', {
method: 'POST',
headers: {
'Authorization': 'Bearer eseo_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
input: 'Кроссовки Nike Air Max 90 черные мужские',
marketplace: 'WB',
}),
});
// Rate limit info
const remaining = response.headers.get('X-RateLimit-Remaining');
const reset = response.headers.get('X-RateLimit-Reset');
const card = await response.json();
console.log(card.title); // SEO-заголовок
console.log(card.seoScore); // 0–100Python
import requests
response = requests.post(
'https://eseo.su/api/v1/generate',
headers={
'Authorization': 'Bearer eseo_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'input': 'Кроссовки Nike Air Max 90 черные мужские',
'marketplace': 'WB',
}
)
card = response.json()
print(card['title'])
print(f"SEO Score: {card['seoScore']}")Заголовки ответа
| Заголовок | Описание |
|---|---|
X-RateLimit-Limit | Максимум запросов в минуту (10) |
X-RateLimit-Remaining | Осталось запросов в текущей минуте |
X-RateLimit-Reset | Unix timestamp сброса счётчика |
Ключи API
Управляй ключами через Настройки или API.
# Список ключей
curl https://eseo.su/api/v1/keys \
-H "Authorization: Bearer eseo_ваш_ключ"
# Создать ключ
curl -X POST https://eseo.su/api/v1/keys \
-H "Authorization: Bearer eseo_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{"name": "Production"}'
# Удалить ключ
curl -X DELETE https://eseo.su/api/v1/keys/KEY_ID \
-H "Authorization: Bearer eseo_ваш_ключ"MCP-сервер для Claude, ChatGPT и Cursor
Подключите ESEO к Claude, ChatGPT, Cursor или своему агенту по протоколу MCP — агент сам проверит карточку и создаст новую. Адрес сервера: https://eseo.su/api/mcp.
| Инструмент | Ключ | Что делает |
|---|---|---|
score_card | Нет | SEO-балл карточки 0–100 с подсказками по факторам |
check_description | Нет | Разбор описания: длина, конкретика, переспам, клише |
marketplace_limits | Нет | Лимиты названия, слова и описания площадки |
generate_card | Да | Готовая карточка WB, Ozon или Яндекс Маркета |
Как подключить MCP-сервер: Claude Code
claude mcp add --transport http eseo https://eseo.su/api/mcp \
--header "Authorization: Bearer eseo_ваш_ключ"Cursor и другие клиенты (mcp.json)
{
"mcpServers": {
"eseo": {
"url": "https://eseo.su/api/mcp",
"headers": { "Authorization": "Bearer eseo_ваш_ключ" }
}
}
}Без ключа работают проверка и лимиты. Для generate_card нужен ключ из Настроек на тарифе Профи или Команда; лимит общий с REST API — 10 запросов в минуту на ключ.
Ошибки
| Код | Статус | Описание |
|---|---|---|
| 400 | Некорректный запрос — проверь поля input и marketplace | |
| 401 | Неверный или отсутствующий API ключ | |
| 403 | Требуется тариф Профи или Команда | |
| 429 | Превышен лимит (10 req/min). Жди X-RateLimit-Reset | |
| 502 | Ошибка AI — повтори запрос | |
| 503 | AI не сконфигурирован (серверная ошибка) |
// Формат ошибки
{ "error": "описание ошибки" }Лимиты
Профи
Генераций в день
100/день
Rate limit
10/мин
Команда
Генераций в день
500/день
Rate limit
10/мин
Free
Генераций в день
Нет доступа
Rate limit
—
При исчерпании rate limit — подожди до X-RateLimit-Reset (Unix timestamp). При исчерпании дневного лимита — генерации возобновятся на следующий день в 00:00 UTC.