AutoAiSeo API и MCP
Используйте данные AutoAiSeo в своих программах (REST API) или в ИИ-ассистентах вроде Claude, ChatGPT и Cursor (MCP). Каждый запрос имеет доступ только к данным вашего аккаунта.
Начало работы
- В панели откройте вкладку API и MCP и создайте ключ кнопкой Новый ключ — он (
rk_live_…) показывается только один раз. - Передавайте ключ в заголовке
Authorization: Bearerв каждом запросе.
curl -H "Authorization: Bearer rk_live_…" https://autoaiseo.example/api/v1/sites
Базовый адрес: https://autoaiseo.example/api/v1. Все ответы — в формате JSON; успешные ответы возвращают поле data с результатом.
Аутентификация и права
| Права | Что может |
|---|---|
read (чтение) | Аккаунт, сайты, статьи, ключевые слова, отчёт по бэклинкам, прогресс и история услуг. |
read_write (чтение и запись) | А также добавление идей статей, написание статей (списывается из месячной квоты плана) и публикация статей. |
- Не более 10 активных ключей на аккаунт. Ключи могут быть бессрочными или действовать 30 дней, 90 дней или 1 год.
- AutoAiSeo не хранит сам ключ — только его хеш SHA-256 и видимое начало (
rk_live_Ab3dEf). Потерянный ключ восстановить нельзя: отзовите его и создайте новый. - Отозванные и истёкшие ключи, а также ключи приостановленных аккаунтов сразу перестают работать.
- Сессионные cookie браузера в API не действуют; ключ нужно передавать в каждом запросе.
Лимит запросов
60 запросов в минуту на каждый ключ (или OAuth-подключение). В ответах есть заголовки X-RateLimit-Limit и X-RateLimit-Remaining — при превышении лимита возвращается код 429 и заголовок Retry-After с числом секунд, которое нужно подождать.
Ошибки
{ "error": { "code": "not_found", "message": "Site bulunamadı" } }
| HTTP | code | Значение |
|---|---|---|
| 400 | invalid_request | Некорректные параметры или тело запроса. |
| 401 | unauthorized, invalid_token | Ключ отсутствует, недействителен, отозван или истёк. |
| 402 | quota_exceeded | Месячная квота статей исчерпана. |
| 403 | insufficient_scope | Для этого действия нужны права «Чтение и запись». |
| 403 | account_suspended | Аккаунт приостановлен. |
| 404 | not_found | Запись не найдена или не принадлежит вам. |
| 409 | conflict, not_ready, limit_reached | Статья уже пишется или опубликована, не готова к публикации, либо достигнут лимит. |
| 429 | rate_limited | Превышен лимит запросов. |
| 502 | publish_failed | Место публикации (WordPress, Shopify…) не приняло публикацию. |
| 500 | internal_error | Непредвиденная ошибка сервера. |
Пагинация
Длинные списки принимают параметры page и per_page (не более 100–200) и возвращают:
"pagination": { "page": 1, "per_page": 50, "total": 132, "total_pages": 3 }
Эндпоинты
GET /api/v1/me
Аккаунт, лимиты плана, использование в этом месяце, дополнительные бэклинки и права используемого ключа.
GET /api/v1/sites
Ваши сайты: id, домен, статус, оценка SEO-здоровья, индекс доверия, опубликованные статьи, активные обратные ссылки, ссылающиеся домены, изменения за 30 дней и следующая статья.
GET /api/v1/sites/{id}
Сводка по сайту: профиль, настройки публикации, число статей (по статусам), сводка по сети обратных ссылок и прогресс за 30 дней.
GET /api/v1/sites/{id}/progress?range=90d
Отчёт о прогрессе. range: 30d, 90d, 180d, 365d, all.
GET /api/v1/sites/{id}/articles
Статьи (с пагинацией). Параметры: status (planned, generating, review, approved, published, failed), q (поиск по заголовку/ключевому слову), page, per_page.
GET /api/v1/articles/{id}
Статья: заголовок, meta description, оценки (SEO, GEO, читабельность), FAQ, партнёрские бэклинки, ссылки в тексте (внутренние/внешние/партнёрские) и содержимое. content: html (по умолчанию), markdown или none.
GET /api/v1/sites/{id}/keywords
Ключевые слова (с пагинацией): кластер, поисковый интент, приоритет и статья под это слово (article_id, article_status). Параметры: cluster, q, page, per_page.
GET /api/v1/sites/{id}/backlinks
Отчёт по бэклинкам: кредиты, активные/ожидающие ссылки, ссылающиеся домены, распределение анкоров, полученные ссылки (с пагинацией) и последние выданные ссылки.
GET /api/v1/sites/{id}/services
Работы, выполненные AutoAiSeo для сайта: итоги, последние 12 месяцев и история (30 записей на страницу). Параметры: kind, q, page.
POST /api/v1/sites/{id}/articles read_write
Добавляет идею статьи в контент-план (статус planned). Если дата не указана, статья ставится на следующий день после последней статьи в плане; в назначенный день AutoAiSeo её напишет. Квота не расходуется.
curl -X POST -H "Authorization: Bearer rk_live_…" -H "Content-Type: application/json" \
-d '{"title":"Filtre kahve nasıl demlenir?","target_keyword":"filtre kahve demleme","angle":"Yeni başlayanlar için"}' \
https://autoaiseo.example/api/v1/sites/12/articles
Тело запроса: title (обязательно, 5–200), target_keyword, cluster, angle, scheduled_for (YYYY-MM-DD). Ответ: 201.
POST /api/v1/articles/{id}/generate read_write
Запускает написание статьи в фоне (202, статус generating). Действуют те же правила, что и в панели: статья списывается из месячной квоты (повторное написание статьи, уже написанной в этом месяце, бесплатно), опубликованную статью переписать нельзя. После завершения статус — review olur.
POST /api/v1/articles/{id}/publish read_write
Отправляет написанную статью в место публикации сайта (блог AutoAiSeo, WordPress, Shopify, Webflow, webhook) и возвращает адрес публикации.
MCP-сервер
Адрес: https://autoaiseo.example/mcp — транспорт Streamable HTTP (ответы в JSON). Версии протокола: 2026-07-28 и более ранние версии с рукопожатием (2025-11-25, 2025-06-18, 2025-03-26).
Аутентификация выполняется одним из двух способов:
- OAuth — коннекторы вроде Claude и ChatGPT при добавлении адреса открывают страницу входа и разрешений AutoAiSeo; API-ключ не нужен. Удалить подключение можно в панели, в разделе Подключённые приложения.
- API-ключ — для клиентов вроде Cursor, Claude Code и VS Code; передаётся как
Authorization: Bearer rk_live_…в заголовке.
Claude
Настройки → Коннекторы → Добавить пользовательский коннектор, вставьте адрес MCP в поле URL и нажмите Подключить.
ChatGPT
Настройки → Приложения и коннекторы → Расширенные настройки: включите режим разработчика, нажмите Создать коннектор и укажите адрес MCP и аутентификацию OAuth.
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"autoaiseo": {
"url": "https://autoaiseo.example/mcp",
"headers": { "Authorization": "Bearer rk_live_…" }
}
}
}
Claude Code
claude mcp add --transport http autoaiseo https://autoaiseo.example/mcp --header "Authorization: Bearer rk_live_…"
Инструменты MCP
Результаты инструментов содержат краткую текстовую сводку и те же данные в структурированном виде (structuredContent). Инструменты записи отображаются, только если выдано разрешение на запись.
| Инструмент | Что делает |
|---|---|
list_sites | Сайты и сводные метрики; для других инструментов — site_id. |
site_overview | Профиль сайта, метрики, число статей, сводка по сети обратных ссылок. |
site_progress | Отчёт о прогрессе за период (начало и текущее состояние, ключевые этапы). |
list_articles | Статьи; фильтр по статусу и тексту, с пагинацией. |
get_article | Содержимое статьи (markdown/HTML), оценки, ссылки, FAQ. |
list_keywords | Ключевые слова и статьи, которые их покрывают. |
backlink_report | Отчёт по сети обратных ссылок и полученные ссылки. |
services_history | Перечень работ, выполненных AutoAiSeo. |
add_article_idea yazma | Добавляет идею статьи в контент-план. |
generate_article yazma | Запускает написание статьи (списывается из квоты). |
publish_article yazma | Публикует статью. |
OAuth (для разработчиков MCP-клиентов)
AutoAiSeo включает небольшой сервер авторизации OAuth 2.1, соответствующий спецификации авторизации MCP.
| Метаданные защищённого ресурса | /.well-known/oauth-protected-resource (а также с /mcp в конце) |
| Метаданные сервера авторизации | /.well-known/oauth-authorization-server |
| Регистрация клиента | Client ID Metadata Documents (https client_id) или динамическая регистрация: POST /oauth/register (только публичные клиенты, token_endpoint_auth_method: none) |
| Авторизация | GET /oauth/authorize — response_type=code, PKCE S256 zorunlu, resource (RFC 8707), в ответе iss (RFC 9207) |
| Ключ | POST /oauth/token — authorization_code и refresh_token |
| Отмена | POST /oauth/revoke (RFC 7009) |
| Области доступа (scopes) | read, write (запись включает чтение). Уровень доступа пользователь выбирает на экране согласия. |
- Адреса перенаправления должны использовать https или
localhost/127.0.0.1— совпадение должно быть точным (для loopback-адресов порт может быть любым). - Код авторизации действует 2 минуты и используется только один раз; повторное использование отзывает все токены этого подключения.
- Токен доступа действует 1 час, refresh-токен — 30 дней. Refresh-токены меняются при каждом использовании; повторное использование старого refresh-токена закрывает подключение.
- Токены доступа выдаются только для MCP-сервера; для REST API нужен личный API-ключ.
- При недостаточной области доступа —
403иWWW-Authenticate: Bearer error="insufficient_scope", scope="read write"в ответе.
Конфиденциальность
Журнал активности API в панели содержит только метод, путь, код статуса, длительность, видимое начало ключа (или название OAuth-приложения) и время. Содержимое запросов и ответов и IP-адреса не записываются; для каждого аккаунта хранятся последние 1000 запросов.