SEO API
Двенадцать инструментов дают приложению или агенту данные для SEO: сколько ищут ключевое слово и насколько трудно по нему подняться, какие слова и страницы приносят домену поисковый трафик, кто с ним конкурирует, кто на него ссылается, каков его Domain Rating и сколько посещений у сайта. Каждый инструмент — это один POST в /v1/seo/ с вашим API-ключом BeatAPI и результатом в одном ответе. Агентам те же инструменты доступны как возможности.
Быстрый старт
Аутентификация
Передавайте ключ BeatAPI API при каждом вызове как Authorization: Bearer <key>; ключ работает и с префиксом sk-, и без него. Создать ключ можно в разделе Панель → API Keys. Все инструменты доступны на https://api.beatapi.io и списывают средства с баланса аккаунта.
Выбор инструмента
О Domain Rating и общем числе посещений сайта рассказано в разделе Domain Rating и трафик сайта.
Инструмента живой поисковой выдачи нет. Чтобы проверить позицию домена по слову, вызовите ranked-keywords с contains. Это последняя зафиксированная позиция, а не текущая.
Страна и язык
country и language выбирают рынок: поиск Google в этой стране на этом языке. Их принимают инструменты для ключевых слов, а также domain-overview, ranked-keywords, top-pages и competitors. У инструментов для обратных ссылок рынка нет, и оба поля отклоняются.
Страна или язык вне списка отклоняются с 400 bad_request, а сообщение подсказывает, что есть на этом рынке: language 'de' is not covered in us; use one of: en, es.
Лимит и смещение
keyword-ideas, ranked-keywords, top-pages, competitors и backlinks возвращают строки постранично.
Эти ответы повторяют limit и offset, а также содержат total — общее число доступных строк, если оно известно.
Ответы
Все инструменты отвечают синхронно: результат приходит в ответе на ваш POST, опрашивать нечего. Большинство вызовов занимает несколько секунд.
usage.price_usd — итоговое списание в долларах США. billing_unit всегда равно request, а quantity всегда равно 1; billed_rows показывает, сколько строк покрывает это списание.
Числа, которых нет в данных, в строку не попадают, поэтому перед использованием проверяйте наличие поля. Неизвестные поля запроса отклоняются с 400 bad_request: если бы поле с опечаткой молча игнорировалось, вы получили бы ответ на другой вопрос.
Инструменты для ключевых слов
Обзор ключевых слов
POST https://api.beatapi.io/v1/seo/keyword-overview
Объём поиска, CPC, конкуренция, сложность, интент и история по месяцам для известных слов. Слово, которое никто не ищет, в ответ не попадает и нулём не отмечается.
Ответ показан в разделе Быстрый старт. Поля каждой строки:
Идеи ключевых слов
POST https://api.beatapi.io/v1/seo/keyword-ideas
Связанные слова для ваших исходных слов, сначала самые релевантные. Поля строк те же, что в keyword-overview, но без monthly_searches.
Сложность ключевых слов
POST https://api.beatapi.io/v1/seo/keyword-difficulty
Только keyword_difficulty, сразу для многих слов. Поля те же, что в keyword-overview.
Инструменты для доменов
Все четыре принимают domain, например example.com, а также country и language.
Обзор домена
POST https://api.beatapi.io/v1/seo/domain-overview
Органическое и платное поисковое присутствие домена на одном рынке. Это только поисковый трафик, а не все посещения сайта.
Домен, которого нет в данных, возвращается с has_data: false и без organic и paid. Это отсутствие данных, а не нулевой трафик, и вызов оплачивается.
Ключевые слова домена
POST https://api.beatapi.io/v1/seo/ranked-keywords
Слова, по которым домен занимает позиции на одном рынке, сначала с наибольшим объёмом поиска.
К полям keyword-ideas строки добавляют:
Топ страниц
POST https://api.beatapi.io/v1/seo/top-pages
Страницы домена, сначала с наибольшей оценкой поискового трафика. Поля: domain, limit, offset, country, language. В каждой строке есть url и поля поискового присутствия этой страницы.
Конкуренты
POST https://api.beatapi.io/v1/seo/competitors
Домены, конкурирующие с указанным за те же поисковые запросы. Поля: domain, limit, offset, country, language. Сам домен и крупнейшие сайты общего назначения, такие как youtube.com и wikipedia.org, в строки не входят, а total считает только оставшиеся.
Инструменты для обратных ссылок
Сводка по ссылкам
POST https://api.beatapi.io/v1/seo/backlink-summary
Ссылочный профиль домена. Единственное поле — domain.
Если домена нет в данных, has_data равно false, других полей нет, и вызов оплачивается.
Обратные ссылки
POST https://api.beatapi.io/v1/seo/backlinks
Ссылки на домен, сначала самые сильные.
Как читать цифры
- Поисковый трафик.
search_traffic_estimate— это оценка поискового трафика, а не всех посещений сайта. - Оценки. Цифры трафика и его стоимости — это оценки, а не измерения сайта.
- Link authority.
link_authorityизмеряется от 0 до 1000 по собственной шкале этого набора данных. - Сложность ключевых слов — собственная шкала этого набора данных. Не сравнивайте её с оценками других инструментов.
- Нет значения — не ноль. Отсутствующее число означает «неизвестно» и никогда не означает ноль.
- Живой выдачи нет. Инструмента живой поисковой выдачи нет. Чтобы проверить позицию домена по слову, используйте
ranked-keywordsсcontains. Это последняя зафиксированная позиция, а не текущая. - Для Domain Rating и трафика сайта есть отдельные пояснения в разделе Как читать эти цифры.
Оплата
У Domain Rating и трафика сайта свои цены.
domain-overviewиbacklink-summaryвозвращают одну запись, она считается одной строкой, а приhas_data, равномfalse, строк нет. Вызовranked-keywords, вернувший 100 строк, стоит $0.048.- Вызов без результатов всё равно стоит цены за вызов. Отклонённый запрос (
400) и неудачный вызов (503) не оплачиваются. - Перед вызовом на балансе должно хватать средств на максимальную стоимость: все строки
limitили все отправленные слова. Затем оплата списывается только за то, что вернулось. - Если клиент может повторить тот же запрос, передайте заголовок
Idempotency-Key. Повтор ключа с другим телом запроса отклоняется с409 idempotency_conflict.
Агенты
Отдельного инструмента MCP для SEO-данных нет. На MCP-сервере BeatAPI https://beatapi.io/mcp агенты используют capabilities_search, capabilities_inspect и capabilities_run с такими ссылками:
Ссылки для Domain Rating и трафика сайта приведены рядом с этими инструментами.
Inspect показывает схему ввода и текущую цену. input — это тело запроса инструмента, а Run возвращает результат:
Те же три вызова доступны через REST: POST /v1/capabilities/search, /v1/capabilities/inspect и /v1/capabilities/run. См. API возможностей.
Ошибки
Ошибки используют стандартный объект ошибки BeatAPI с retryable в каждом ответе. Правила повторов приведены в разделе ошибок.
Ответ 503 никогда не оплачивается. BeatAPI не возвращает 502.
Domain Rating и трафик сайта
Ещё три инструмента работают так же: тот же ключ, тот же результат в ответе, те же usage и ошибки. Они принимают domain и не имеют рынка, поэтому country и language отклоняются. Полей limit и offset нет.
Domain Rating
POST https://api.beatapi.io/v1/seo/domain-rating
domain_rating измеряется от 0 до 100. link_rank — мировой рейтинг домена по ссылкам; чем меньше значение, тем сильнее домен.
История Domain Rating
POST https://api.beatapi.io/v1/seo/domain-rating-history
Для неизвестного домена возвращаются has_data: false, пустой results и billed_rows: 1.
Трафик сайта
POST https://api.beatapi.io/v1/seo/site-traffic
Оценка всех посещений сайта из всех каналов, а также источники, страны, рейтинг и вовлечённость.
Как читать эти цифры
- Два вида трафика.
search_traffic_estimate— оценка поискового трафика;site_visits_estimate— все посещения из всех каналов. Это разные показатели: никогда не складывайте и не сравнивайте их. Посещения — это не уникальные посетители. - Две оценки авторитетности.
link_authorityизмеряется от 0 до 1000 по собственной шкале этого набора данных;domain_rating— от 0 до 100. Пересчитать одно в другое нельзя. - Нет в данных.
has_data: falseозначает, что домена нет в данных; это не то же самое, что нулевой рейтинг или трафик: у нового сайта рейтинг может быть0, аlink_rankпри этом есть.
Цены этих инструментов
domain-ratingиsite-trafficоплачиваются и приhas_data, равномfalse.domain-rating-historyдля неизвестного домена не возвращает месяцев и стоит как один месяц, $0.004.- Отклонённый запрос (
400) и неудачный вызов (503) не оплачиваются. - Перед вызовом
domain-rating-historyна балансе должно хватать средств на 24 месяца истории. Затем оплата списывается только за то, что вернулось.

