Разработчикам
Публичный API
Читайте свои сайты, отчёты, позиции и ключевые слова через простой API с ключевой аутентификацией. Функция Agency.
Публичный API
Пошаговая настройка описана в руководстве по публичному API.
Публичный API даёт доступ только для чтения к данным, которые RankMeFast уже хранит для вашего аккаунта, сайты, последний отчёт аудита, история позиций и отслеживаемые ключевые слова. Это функция плана Agency (см. Планы, лимиты и кредиты). API никогда не запускает новую работу поставщиков, он лишь читает то, что уже произвели ваши аудиты и проверки позиций.
Запуск анализа Content Intelligence и изменение рекомендаций не входят в /api/v1. Эти операции доступны только внутри продукта после входа и защищены Better Auth. MCP может читать сохранённые анализы, но не предоставляет инструмент для запуска анализа контента или изменения рекомендации.
Аутентификация
Создайте ключ в разделе Аккаунт → API-ключи (/profile?tab=api-keys). Полный ключ показывается только один раз: сразу скопируйте его; после этого виден лишь его префикс. Можно держать до десяти активных ключей и отзывать любой в любой момент. Отозванный ключ перестаёт работать немедленно.
Передавайте ключ как bearer-токен в каждом запросе:
Authorization: Bearer rmf_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Замените https://your-rankme-host в примерах ниже на origin вашего api (значение SERVER_URL вашей установки).
Язык ответа и контракт данных
Выбирайте язык текста через x-lang, затем через Accept-Language; в остальных случаях API использует en. Региональные значения заголовка, например fr-CA, безопасно нормализуются до fr. /api/v1 игнорирует браузерные cookie, язык аккаунта и настройки рабочего пространства. Каждый ответ содержит эффективный язык в Content-Language и дополняет Vary значениями x-lang, Accept-Language, не удаляя существующие.
Локализуются только созданные RankMeFast тексты отчётов, выводов, действий и безопасных ошибок. Имена свойств JSON, статусы HTTP, стабильные коды ошибок, значения перечислений и статусов, идентификаторы, домены, URL, ключевые слова, метки времени, измерения, наблюдения, курсоры и сохранённый текст пользователя или поставщика не меняются. Язык также не влияет на сортировку и формат чисел или дат.
CSV остаётся побайтово одинаковым машинным контрактом для всех языков ответа. Не меняются UTF-8 BOM, имена и порядок столбцов, порядок строк, экранирование RFC-4180, значения, окончания строк, имя файла, заголовки пагинации и поведение курсора. Content-Language описывает выбор ответа, но не переводит и не переименовывает байты CSV.
Конечные точки
Список ваших сайтов
curl -H "Authorization: Bearer rmf_..." \
https://your-rankme-host/api/v1/sites
Возвращает { "sites": [{ "id", "domain", "url", "createdAt" }] }.
Последний отчёт аудита сайта
curl -H "Authorization: Bearer rmf_..." \
https://your-rankme-host/api/v1/sites/<siteId>/report/latest
Возвращает самый свежий успешный аудит в виде { "runId", "report" }, те же находки, категории и локализованные тексты, что и в панели. Отвечает 404, если у сайта ещё нет завершённого аудита.
История позиций сайта
curl -H "Authorization: Bearer rmf_..." \
"https://your-rankme-host/api/v1/sites/<siteId>/rank-history?from=2026-06-01&to=2026-07-01"
Возвращает { "keywords": [{ "id", "phrase", "series": [...] }] }. Каждая точка серии содержит позицию, ранжировавшийся URL и сигналы Google AI Overview (aiOverviewPresent, aiCited, aiCitedUrl). from и to, необязательные даты ISO.
Все отслеживаемые ключевые слова
curl -H "Authorization: Bearer rmf_..." \
https://your-rankme-host/api/v1/keywords
Возвращает каждое отслеживаемое ключевое слово по всем вашим сайтам с последней позицией, дельтой и полями AI Overview.
CSV-экспорт и сохранённые строки
При включённом PUBLIC_EXPORTS_ENABLED любая списочная точка возвращает CSV по ?format=csv или Accept: text/csv. Файлы имеют стабильные столбцы, UTF-8 BOM, экранирование RFC-4180 и защиту от формул. JSON четырёх исходных маршрутов не меняется. История принимает engine=google|bing|youtube|amazon; без фильтра столбец engine содержит все движки.
CSV истории позиций и ключевых слов сохраняют прежнюю выдачу без пагинации, пока не указан limit или непрозрачный cursor. Страница истории принимает от 1 до 25 групп ключевых слов (не более 730 точек в группе), а страница ключевых слов, от 1 до 1 000 строк. Передавайте значение X-Next-Cursor в следующий запрос и завершайте чтение, когда заголовок отсутствует. JSON игнорирует эти параметры CSV-пагинации и сохраняет исходный контракт ответа.
Добавлены чтения GET /api/v1/serp-features?siteId=<siteId> и GET /api/v1/backlink-rows?siteId=<siteId>. Они принимают limit от 1 до 1 000 и непрозрачный cursor, возвращают только строки аккаунта и метку sourceKind=provider_observation (source_kind в CSV). Если флаг выключен, новые маршруты и CSV отвечают 503, а исходный JSON работает. Настройка коннектора и полей описана в руководстве Looker Studio.
Лимиты запросов
По умолчанию каждый ключ может делать 120 запросов в минуту. Сверх этого API отвечает 429 до сброса окна.
Ошибки
Ошибки имеют форму { "error": { "message": "...", "details": ... } }. Их безопасное сообщение выбирается через x-lang, затем Accept-Language, затем en; статус, поля, стабильные коды и безопасные детали сохраняют машинную совместимость:
401, ключ отсутствует, повреждён, отозван или неизвестен.402, ваш план не включает API.404, сайт или отчёт не существует в вашем аккаунте.429, превышен лимит запросов (тело:{ "error": "..." }).
Совместимость
В этом выпуске доступны ровно шесть маршрутов только для чтения:
GET /api/v1/sitesGET /api/v1/sites/:siteId/report/latestGET /api/v1/sites/:siteId/rank-historyGET /api/v1/keywordsGET /api/v1/serp-featuresGET /api/v1/backlink-rows
«Радар бренда», «Аналитика отзывов», «Аналитика ссылок», «Данные о трафике», «Тренды ключевых слов» и датчик SERP не добавляют маршрутов в /api/v1. Пять платных функций остаются в панели с аутентификацией; публичный датчик остаётся в /api/volatility. Смысл существующих полей ответа не меняется. Клиенты должны игнорировать незнакомые дополнительные поля.