Kinsta APIを通じて、ボット対策機能の設定や、ボットアクセスに関する詳細な分析データの取得が可能になりました。

今回新たに13のエンドポイントが追加され、ボット対策レベルの確認・変更、AIクローラーのブロック、WordPressの自動化に関する設定の管理、カスタム例外ルールの作成などを行えるようになりました。また、アクセスの分類、リクエストの処理状況、アクセス数の多い送信元など、ボットアクセスに関するさまざまな分析データも取得できます。

これにより、普段お使いのサイト管理ツールや監視システム、自動化ワークフローにボット対策を組み込むことができます。

ボット対策レベルの確認と変更

新たに追加された2つのエンドポイントを使用して、WordPress環境のボット対策レベルを確認・変更できるようになりました。

ボット対策レベルの取得用エンドポイントを使用すると、環境に現在設定されているボット対策レベルを取得できます。

curl --request GET \
  --url https://api.kinsta.com/v2/sites/environments/{env_id}/bot-protection/level \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>'

例えば、以下のレスポンスは、自動化トラフィックをブロックする設定になっていることを示しています。

{
  "bot_protection": {
    "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
    "level": "block-automations"
  }
}

ボット対策レベルの設定用エンドポイントを使用すると、以下の4段階で対策レベルを変更できます。

  • block-malicious-traffic:Kinstaの基本的なセキュリティ対策として、既知の悪意あるトラフィックをブロック

  • block-automations:自動トラフィックと悪意あるトラフィックをブロック

  • challenge-bots:ボットの可能性が高いトラフィックや分類できないトラフィックにも検証を実施

  • challenge-everyone:人間の訪問者と推定される場合も含め、検証されていないすべてのトラフィックに検証を実施

例えば、スクレイピングや不審な自動リクエストが増加した場合には、ボット対策レベルを「ボットを検証」に変更できます。

curl --request PUT \
  --url https://api.kinsta.com/v2/sites/environments/{env_id}/bot-protection/level \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  --header 'Content-Type: application/json' \
  --data '{
    "level": "challenge-bots"
  }'

APIからは、処理IDを含むステータスコード 202 が返されます。

{
  "message": "Setting a bot protection level in progress. Use the operation_id to check the status.",
  "status": 202,
  "operation_id": "environment:set-bot-protection-level-54fb80af-576c-4fdc-ba4f-b596c83f15a1"
}

返されたoperation_idを使用すると、設定変更が完了するまで処理状況を追跡できます。

なお、ボット対策レベルを引き上げると、正当な自動リクエストにも影響が及ぶ可能性があります。最も厳しいレベルでは、サイト訪問者にも検証が求められます。広範囲に適用する前に、選択したレベルが通常のサイトアクセスにどのような影響を与えるか確認してください。

AIクローラーのブロックとブロック解除

AIクローラーのブロック設定を管理するための2つのエンドポイントも追加されました。AIクローラーのブロック状況を取得するエンドポイントを使用すると、ブロック機能が有効になっているかどうかを確認できます。

curl --request GET \
  --url https://api.kinsta.com/v2/sites/environments/{env_id}/bot-protection/ai-crawlers \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>'

レスポンスには、AIクローラーのブロック機能が有効か無効かを示す ai_crawlers_blocking フィールドが含まれます。

設定を変更するには、同じURLにPUTリクエストを送信します。

curl --request PUT \
  --url https://api.kinsta.com/v2/sites/environments/{env_id}/bot-protection/ai-crawlers \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  --header 'Content-Type: application/json' \
  --data '{
    "status": "enabled"
  }'

statusをenabledに設定すると、AIクローラーがブロックされます。これには、AIモデルの学習などを目的としてWebサイトのコンテンツを収集する、検証済みのクローラーも含まれます。このブロック設定を無効にするには、disabledを指定します。

AIクローラーのブロック機能では、GooglebotやBingbotなどの従来の検索エンジンクローラー、OAI-SearchBotなどのAI検索クローラー、ChatGPT-Userなどのユーザー操作によって起動するAIエージェントはブロックされません。ただし、これらのアクセス元から過剰なリクエストが発生した場合には、より厳しい対策レベルの設定に応じて、検証が求められる可能性があります。

これにより、サイト全体のボット対策レベルを変更することなく、AIによる自動的なコンテンツ収集を個別に制御できます。

リクエストとレスポンスの詳細については、関連APIドキュメントをご覧ください。

WordPressの自動化に関する設定の管理

WordPressの一部の機能や外部サービスとの連携には、サイトへの自動リクエストが必要です。例えば、外部サービスからWordPress REST APIへのアクセス、プラグインとサードパーティサービス間のデータのやり取り、自動化プラットフォームからのWebhook送信などが挙げられます。

今回新たに追加された2つのエンドポイントを使用すると、一般的なWordPressの自動化処理がボット対策機能によってブロックされずに実行できるよう設定し、その状態を確認できます。

WordPressの自動化処理の許可状況を取得するエンドポイントを使用すると、現在の設定を確認できます。

{
  "bot_protection": {
    "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
    "wp_automations": "enabled"
  }
}

設定を変更するには、WordPressの自動化処理の許可・ブロック用エンドポイントを使用します。例えば、以下のリクエストを送信すると、一般的なWordPressの自動化処理を許可できます。

curl --request PUT \
  --url https://api.kinsta.com/v2/sites/environments/{env_id}/bot-protection/wp-automations \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  --header 'Content-Type: application/json' \
  --data '{
    "status": "enabled"
  }'

リクエストを送信すると、設定変更の処理状況を追跡するための処理IDが返されます。

この設定では、Kinstaが管理する、WordPressで一般的に使用されるURLやサービスの許可リストが使用されます。厳しいボット対策によって、サイトに必要な外部サービスとの連携や自動化処理が妨げられている場合に役立ちます。

なお、サイト自身のコンテナ内やKinstaが管理する内部インフラから送信されるリクエストは、すでに許可されています。そのため、WordPress内部で通常実行される処理には、この設定は影響しません。

ボット対策の例外ルールの追加・取得・削除

ボット対策レベルの設定だけでは対応できず、より細かなルールが必要になる場合もあります。例えば、信頼できる監視サービスからのリクエストは許可しながら、その他の自動化トラフィックには引き続き検証を実施するといったケースです。

新たに追加された3つのエンドポイントを使用すると、WordPress環境ごとにボット対策の例外ルールを管理できます。

ボット対策の例外ルールを追加するエンドポイントを使用すると、新規例外ルールを作成できます。各ルールには、以下の3つの必須フィールドがあります。

  • type:ルールの適用対象を指定。ip(IPアドレス)、path(パス)、user_agent(ユーザーエージェント)、country(国)から選択可能。

  • action:条件に一致するトラフィックの処理方法を指定。skip(ボット対策をスキップ)、challenge(検証を実施)、block(ブロック)から選択可能。

  • value:照合するIPアドレス、パス、ユーザーエージェント、または国を指定。

例えば、以下のリクエストを送信すると、信頼できるIPアドレスからのリクエストに対してボット対策ルールを適用しない例外を追加できます。

curl --request POST \
  --url https://api.kinsta.com/v2/sites/environments/{env_id}/bot-protection/exception-rules \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "ip",
    "action": "skip",
    "value": "192.0.2.1"
  }'

APIがリクエストを受け付けると、処理IDが返されます。設定済みの例外ルールを確認するには、ボット対策の例外ルールを取得するエンドポイントを使用します。

curl --request GET \
  --url https://api.kinsta.com/v2/sites/environments/{env_id}/bot-protection/exception-rules \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>'

レスポンスには、各ルールのID、照合する値、処理方法などが一覧表示されます。

{
  "bot_protection": {
    "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
    "exception_rules": [
      {
        "id": "ip:skip:192.0.2.1",
        "type": "ip",
        "action": "skip",
        "value": "192.0.2.1"
      }
    ],
    "has_custom_waf_rules": false
  }
}

例外ルールを削除するには、ボット対策の例外ルールを削除するエンドポイントに、対象のルールIDを指定します。

curl --request DELETE \
  --url https://api.kinsta.com/v2/sites/environments/{env_id}/bot-protection/exception-rules \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  --header 'Content-Type: application/json' \
  --data '{
    "exception_rule_id": "ip:skip:192.0.2.1"
  }'

例外ルールは環境ごとに適用されるため、ステージング環境で作成したルールが本番環境に自動的に適用されることはありません。

また、skipを指定するとボット対策ルールは適用されなくなりますが、Kinstaのサーバー基盤に備わる基本的なセキュリティ対策や脆弱性対策が無効になることはありません。

APIを使用したボットアクセスの分析

ボット対策の管理に使用する9つのエンドポイントに加えて、分析関連にも新たに4つのエンドポイントが追加されました。

これらのエンドポイントを使用すると、サイトへのリクエスト数やKinstaによるトラフィックの分類、ボット対策によるリクエストの処理結果などのデータを取得できます。

ボット対策によるトラフィックの処理状況を確認

新たに追加されたボットトラフィックのフローを取得するエンドポイントを使用すると、トラフィックの分類とボット対策による処理結果ごとのリクエスト数を取得できます。

人間の可能性が高いアクセス、ボットの可能性が高いアクセス、AIクローラーなどに分類されたリクエストの数に加え、それぞれが許可、検証、ブロックされた件数を確認できます。

例えば、以下のリクエストでは、過去30日間のデータを取得します。

curl --request GET \
  --url 'https://api.kinsta.com/v2/sites/environments/{env_id}/analytics/bot-protection/traffic-flow?company_id={company_id}&time_span=30_days' \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>'

レスポンスのtraffic_flowには、traffic_types、results、flowsの3つの主要なセクションが含まれます。flowsでは、トラフィックの分類ごとに、ボット対策による処理結果を確認できます。

これにより、単にブロックされたリクエストの総数を把握するだけでなく、どのようなトラフィックが、どのように処理されたのかを詳しく分析できます。

ボットアクセスとボット対策の処理結果の推移を確認

さらに、時系列の分析データを取得するための2つのエンドポイントも追加されました。

どちらのエンドポイントも、time_spanに24_hoursを指定すると1時間ごと、それより長い期間を指定すると1日ごとのデータが返されます。

例えば、リクエスト数の推移を取得するエンドポイントからは、以下の形式でデータが返されます。

{
  "analytics": {
    "requests_over_time": [
      {
        "traffic_type": "likely_humans",
        "label": "Likely humans",
        "total": 10572,
        "timeline": [
          {
            "date": "2026-09-14T00:00:00.000Z",
            "requests": 5286
          }
        ]
      }
    ]
  }
}

これらのデータは、アクセス数が急増した原因の調査や、ボット対策の設定変更によって検証・ブロックされるリクエスト数がどのように変化したかを確認する際に役立ちます。

ボットアクセスの主な発生元を特定

新たに追加されたボットアクセスの上位内訳を取得するエンドポイントを使用すると、トラフィックの分類ごとにアクセス元の詳細を確認できます。リクエスト数の多いパス、ユーザーエージェント、国、IPアドレスと、それぞれのリクエスト数を取得できます。

例えば、サイトへの自動リクエストが急増した場合、/wp-login.phpや特定のAPIパスにアクセスが集中していないか、あるいは特定のIPアドレスから大量のリクエストが送信されていないかを調べることができます。

取得したデータは、analytics.top_requests_breakdownに格納されます。トラフィックの分類ごとに、top_paths、top_user_agents、top_countries、top_ipsの配列に分けて返されます。

今回追加された4つの分析用エンドポイントは、いずれも 24_hours(24時間)、7_days(7日間)、30_days(30日間)、60_days(60日間)に対応しており、デフォルトでは 7_days が使用されます。また、任意のfromと toパラメータを指定して、期間を自由に設定することもできます。いずれのリクエストにも、クエリパラメータとしてcompany_idの指定が必要です。

サイト管理のワークフローにボット対策を組み込む

今回追加されたエンドポイントにより、Kinsta APIを使用した既存のサイト管理業務に、ボット対策の設定や管理を組み込めるようになりました。

例えば、アクセスが急増した際に監視ツールからボットアクセスの分析データを取得したり、社内の管理システムから各環境のボット対策レベルを確認し、必要に応じて設定を変更したりできます。また、環境ごとに手動で設定することなく、信頼できるサービスに対する例外ルールを管理することも可能です。

リクエストとレスポンスの詳しい形式については、WordPressボット対策のAPIリファレンスおよびKinsta APIの分析関連ドキュメントをご覧ください。