# OnPage API サマリー

**API:** Data API

**Endpoint:** `GET /v1/beta/dataforseo/on_page/summary/{id}`

**Tags:** DataForSEO

1 回のクロールの状態と概要指標を `id` で取得します。`crawl_progress`、`crawl_status`、`crawl_gateway_address`、`crawl_stop_reason`、`domain_info`、`page_metrics` を返します。DataForSEO のエンベロープに包まれます。データは `tasks[0].result`、結果は `tasks[0].status_code` に格納され、拒否されたリクエストでも HTTP 200 が返ります。**クロールが完了したかを知る方法もこれです**——ここにある他のエンドポイントを読む前に、`crawl_progress` が `finished` になるまでポーリングしてください。そうしないと、本物に見える部分的な結果を読むことになります。💰 アップストリームは無料：完了したクロールの照会には費用がかからず、費用がかかるのはクロール自体だけです。

### 料金の参考情報

- 計測方法：報告されたレスポンスコスト。
- 参考リクエスト見積もり：0.012 USD。
- 参照用の顧客乗数：1.0。確定済みの顧客金額に再適用しないでください。

参照用のメタデータのみであり、アカウントへの見積もり、保証された価格、支出上限ではありません。リソースクレジットは Felo クレジットではありません。最終的な請求は Felo の請求記録に従います。

## Base URL

- `https://openapi.felo.ai`

## Authentication

- `FeloBearerAuth` (http bearer, bearer format Felo API Key)
- `FeloApiKey` (apiKey in header `X-API-Key`)

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `id` | path | yes | string | <em>タスク識別子</em><br><strong>必須フィールド</strong><br>この ID は、<a href="/v3/on_page/task_post/" target="_blank" rel="noopener noreferrer">Task POST</a> エンドポイントのレスポンスで取得できます<br>例：<br>“07131248-1535-0216-1000-17384017ad04” |

## Responses

### 200 — 操作成功

Headers:
- `X-Request-Id` (string) — Felo サポートに問い合わせる際に伝えるリクエスト識別子。

**application/json**

Schema: object | null

```json
{
  "type": [
    "object",
    "null"
  ],
  "oneOf": [
    {
      "$ref": "#/components/schemas/Response36Afe1097B20_OnPageSummaryResponseInfo"
    }
  ]
}
```

### 400 — リクエストを処理できませんでした。リクエストパラメータを確認してください。

### 401 — 有効な Felo API キーが必要です。

### 402 — 請求要件が満たされていないため、リクエストを続行できません。

### 403 — このアカウントにはこの操作を行う権限がありません。

### 429 — リクエストまたは支出の上限に達しました。

### 502 — サービスがリクエストを完了できませんでした。

### 503 — API または請求サービスが一時的に利用できません。

### 504 — リクエストの処理中にサービスがタイムアウトしました。

### default — エラーレスポンス。上流のパススルーレスポンスはプロバイダーの形式を使用する場合があります

**application/json**

Schema:

```json
{}
```

## Schema definitions

### Response36Afe1097B20_BaseResponseInfo

`#/components/schemas/Response36Afe1097B20_BaseResponseInfo`

```json
{
  "properties": {
    "version": {
      "type": [
        "string",
        "null"
      ],
      "description": "API の現在のバージョン"
    },
    "status_code": {
      "type": [
        "integer",
        "null"
      ],
      "description": "一般的なステータスコード\nレスポンスコードの完全な一覧はこちらです"
    },
    "status_message": {
      "type": [
        "string",
        "null"
      ],
      "description": "一般的な情報メッセージ\n一般的な情報メッセージの完全な一覧はこちらです"
    },
    "time": {
      "type": [
        "string",
        "null"
      ],
      "description": "合計実行時間（秒）"
    },
    "cost": {
      "type": [
        "number",
        "null"
      ],
      "description": "タスクの総コスト（USD）",
      "format": "double"
    },
    "tasks_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "tasks 配列内のタスク数",
      "format": "int64"
    },
    "tasks_error": {
      "type": [
        "integer",
        "null"
      ],
      "description": "エラーで返された tasks 配列内のタスク数",
      "format": "int64"
    }
  }
}
```

### Response36Afe1097B20_BaseResponseTaskInfo

`#/components/schemas/Response36Afe1097B20_BaseResponseTaskInfo`

```json
{
  "properties": {
    "id": {
      "type": [
        "string",
        "null"
      ],
      "description": "タスク識別子\n当社システム内で UUID 形式の一意のタスク識別子"
    },
    "status_code": {
      "type": [
        "integer",
        "null"
      ],
      "description": "タスクのステータスコード\nDataForSEO によって生成され、次の範囲の値になります: 10000-60000\nレスポンスコードの完全な一覧はこちらです"
    },
    "status_message": {
      "type": [
        "string",
        "null"
      ],
      "description": "タスクの情報メッセージ\n一般的な情報メッセージの完全な一覧はこちらです"
    },
    "time": {
      "type": [
        "string",
        "null"
      ],
      "description": "実行時間（秒）"
    },
    "cost": {
      "type": [
        "number",
        "null"
      ],
      "description": "タスクの総コスト（USD）",
      "format": "double"
    },
    "result_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "result 配列内の要素数",
      "format": "int64"
    },
    "path": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "description": "URL パス"
    },
    "data": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "object",
          "null"
        ]
      },
      "description": "POST リクエストで指定したものと同じパラメーターを含みます"
    }
  }
}
```

### Response36Afe1097B20_CrawlStatusInfo

`#/components/schemas/Response36Afe1097B20_CrawlStatusInfo`

```json
{
  "type": "object",
  "properties": {
    "max_crawl_pages": {
      "type": [
        "integer",
        "null"
      ],
      "description": "クロールするページ数の上限\n タスク設定時に指定した max_crawl_pages の制限を示します",
      "format": "int64"
    },
    "pages_in_queue": {
      "type": [
        "integer",
        "null"
      ],
      "description": "現在クロールキューにあるページ数",
      "format": "int64"
    },
    "pages_crawled": {
      "type": [
        "integer",
        "null"
      ],
      "description": "クロール済みのページ数",
      "format": "int64"
    }
  }
}
```

### Response36Afe1097B20_DomainInfo

`#/components/schemas/Response36Afe1097B20_DomainInfo`

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>ドメイン名</em>"
    },
    "cms": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>コンテンツ管理システム</em><br>ウェブサイトで識別されたコンテンツ管理システム<br><code>generator</code> メタタグの内容<br>データは 200 レスポンスコードを返す最初のランダムなページから取得されます<br>当社のクローラーが CMS を識別できなかった場合、値は <code>null</code> になります"
    },
    "ip": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>ドメインの IP アドレス</em>"
    },
    "server": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>ウェブサイトサーバー</em><br>ウェブサイトで検出されたサーバーのバージョン<br><code class=\"prettyprint\">server</code> ヘッダーの内容<br>情報はレスポンスコードが 200 の最初のページから取得されます"
    },
    "crawl_start": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>クロール開始時刻</em><br>ウェブサイトがクロールのために送信された日時<br>UTC 形式: “yyyy-mm-dd hh-mm-ss +00:00”<br>例:<br><code class=\"long-string\">2019-11-15 12:57:46 +00:00</code>"
    },
    "crawl_end": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>クロール終了時刻</em><br>クロールが完了した日時<br>UTC 形式: “yyyy-mm-dd hh-mm-ss +00:00”<br>例:<br><code class=\"long-string\">2019-11-15 12:57:46 +00:00</code><br><strong>注意:</strong> <code>\"crawl_progress\"</code> が <code>\"finished\"</code> の場合にのみ有効な情報です<br><code>\"crawl_progress\"</code> が <code>in_progress</code> の場合、値は <code>null</code> になります"
    },
    "extended_crawl_status": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>クロールステータスとエラー</em><br>ウェブサイトがクロールされなかった理由を示します<br>次の値を取ることができます:<br><code>no_errors</code>: クロールエラーは検出されませんでした<br><code>site_unreachable</code>: 当社のクローラーがウェブサイトに到達できず、ステータスコードを取得できませんでした<br><code>invalid_page_status_code</code>: 最初にクロールされたページのステータスコードが 400 以上です<br><code>forbidden_meta_tag</code>: 最初にクロールされたページに &lt;meta robots=\"noindex\"&gt; タグが含まれています<br><code>forbidden_robots</code>: robots.txt がページのクロールを禁止しています<br><code>forbidden_http_header</code>: ページの HTTP ヘッダーに \"X-Robots-Tag: noindex\" が含まれています<br><code>too_many_redirects</code>: 最初にクロールされたページのリダイレクトが 10 回を超えています<br><code>unknown</code>: 理由は不明です"
    },
    "ssl_info": {
      "type": [
        "object",
        "null"
      ],
      "oneOf": [
        {
          "$ref": "#/components/schemas/Response36Afe1097B20_SslInfo"
        }
      ],
      "description": "<em>SSL 証明書情報</em><br>ウェブサイトで検出された Secure Sockets Layer プロトコルに関する情報"
    },
    "checks": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "boolean",
          "null"
        ]
      },
      "description": "<em>ウェブサイトチェック</em><br>ウェブサイトに関連するその他のページ内チェック"
    },
    "total_pages": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>クロール済みページの合計</em><br>クロールされたページの合計数",
      "format": "int64"
    },
    "total_uncrawlable_resources": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>クロールできないリソースの合計</em><br>クロールできなかったリソースの合計数<br>リソースの実際のコンテンツタイプがクローラーの想定するコンテンツタイプと一致しない場合、そのリソースはクロール不可と見なされます",
      "format": "int64"
    },
    "page_not_found_status_code": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>存在しないページが返すステータスコード</em><br>多くの場合、サーバーは 404 レスポンスコードを返すことを推奨します"
    },
    "canonicalization_status_code": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>正規化されたページが返すステータスコード</em><br>当社のクローラーが IP 経由でウェブサイトにアクセスしようとしたときのサーバー動作の検査<br>多くの場合、正規化されたページは <code>301</code> または <code>302</code> ステータスコードを返すことを推奨します"
    },
    "directory_browsing_status_code": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>ディレクトリが返すステータスコード</em><br>ターゲットウェブサイト上のディレクトリページが返すステータスコード<br>多くの場合、ディレクトリは <code>403</code> または <code>401</code> ステータスコードを返すことを推奨します"
    },
    "www_redirect_status_code": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>リダイレクトのステータスコード</em><br>www から non-www へのリダイレクトのステータスコード<br>多くの場合、リダイレクトは <code>301</code> ステータスコードを返すことを推奨します"
    },
    "main_domain": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>ルートドメイン名</em>"
    }
  }
}
```

### Response36Afe1097B20_OnPageSummaryResponseInfo

`#/components/schemas/Response36Afe1097B20_OnPageSummaryResponseInfo`

```json
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response36Afe1097B20_BaseResponseInfo"
    },
    {
      "type": "object",
      "properties": {
        "tasks": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": [
              "object",
              "null"
            ],
            "oneOf": [
              {
                "$ref": "#/components/schemas/Response36Afe1097B20_OnPageSummaryTaskInfo"
              }
            ]
          },
          "description": "<em>タスクの配列</em>"
        }
      }
    }
  ]
}
```

### Response36Afe1097B20_OnPageSummaryResultInfo

`#/components/schemas/Response36Afe1097B20_OnPageSummaryResultInfo`

```json
{
  "type": "object",
  "properties": {
    "crawl_progress": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>クロールセッションのステータス</em><br>可能な値：<code>in_progress</code>、<code>finished</code>"
    },
    "crawl_status": {
      "type": [
        "object",
        "null"
      ],
      "oneOf": [
        {
          "$ref": "#/components/schemas/Response36Afe1097B20_CrawlStatusInfo"
        }
      ],
      "description": "<em>クロールセッションの詳細</em>"
    },
    "crawl_gateway_address": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>クローラーの IP アドレス</em><br>現在のクロールセッションを開始するためにクローラーが使用した IP アドレスを表示します<br>クローラーが使用する IP の完全なリストは、<a href=\"/v3/on_page/overview\" target=\"_blank\" rel=\"noopener noreferrer\">概要セクション</a>で確認できます"
    },
    "crawl_stop_reason": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>クロールが停止した理由</em><br>クロール処理が停止した理由に関する情報。<br>可能な値：<br><code>limit_exceeded</code> - <code>max_crawl_pages</code> で設定された上限を超えました。<br><code>empty_queue</code> - キュー内のすべての URL がクロールされました。<br><code>force_stopped</code> - <a href=\"/v3/on_page/force_stop\" target=\"_blank\" rel=\"noopener noreferrer\"> On Page API Force Stop</a> 機能を使用してクロール処理を停止しました。<br><code>unexpected_exception</code> - <code>target</code> のクロール中に内部エラーが発生しました。詳細についてはサポートにお問い合わせください"
    },
    "domain_info": {
      "type": [
        "object",
        "null"
      ],
      "oneOf": [
        {
          "$ref": "#/components/schemas/Response36Afe1097B20_DomainInfo"
        }
      ],
      "description": "<em>ドメイン全体の情報</em><br>対象ドメインとクロール処理に関するページ上の情報"
    },
    "page_metrics": {
      "type": [
        "object",
        "null"
      ],
      "oneOf": [
        {
          "$ref": "#/components/schemas/Response36Afe1097B20_PageMetrics"
        }
      ],
      "description": "<em>ページ固有の情報</em><br>対象ウェブサイトのページに関する指標情報"
    }
  }
}
```

### Response36Afe1097B20_OnPageSummaryTaskInfo

`#/components/schemas/Response36Afe1097B20_OnPageSummaryTaskInfo`

```json
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response36Afe1097B20_BaseResponseTaskInfo"
    },
    {
      "type": "object",
      "properties": {
        "result": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": [
              "object",
              "null"
            ],
            "oneOf": [
              {
                "$ref": "#/components/schemas/Response36Afe1097B20_OnPageSummaryResultInfo"
              }
            ]
          },
          "description": "<em>結果の配列</em>"
        }
      }
    }
  ]
}
```

### Response36Afe1097B20_PageMetrics

`#/components/schemas/Response36Afe1097B20_PageMetrics`

```json
{
  "type": "object",
  "properties": {
    "links_external": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>外部リンク数</em><br>他のウェブサイトを指すリンク数"
    },
    "links_internal": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>内部リンク数</em><br>対象ウェブサイト内の他のページを指すリンク数"
    },
    "duplicate_title": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>タイトルが重複しているページ数</em>"
    },
    "duplicate_description": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>説明が重複しているページ数</em>"
    },
    "duplicate_content": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>コンテンツが重複しているページ数</em>"
    },
    "broken_links": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>壊れたリンク数</em><br>対象ウェブサイトのすべてのクロール済みページにおける壊れたリンク数"
    },
    "broken_resources": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>壊れたリソース数</em><br>リンクが壊れている画像やその他のリソースの数"
    },
    "links_relation_conflict": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>対象ウェブサイト上で競合する可能性があるリンク数</em><br>たとえば、<code>\"links_relation_conflict\": 2</code> の場合、対象ウェブサイトは <code>rel=\"nofollow\"</code> 属性を持つ少なくとも 1 つの内部リンク<strong>と</strong>少なくとも 1 つの dofollow リンクで同じソースを参照しています"
    },
    "redirect_loop": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>開始 URL と終了 URL が同じリダイレクトチェーン数</em><br>転送先 URL が元の URL にリダイレクトして戻るリダイレクトチェーンの数"
    },
    "onpage_score": {
      "type": [
        "number",
        "null"
      ],
      "description": "<em>100 点満点でウェブサイトの最適化状況を示します</em><br>このフィールドは、検出された重大なページ上の問題と警告を考慮したウェブサイトの最適化状況を示します。<br><code>100</code> が可能な最高スコアで、ウェブサイトに重大なページ上の問題や重要な警告がないことを意味します。<br><strong>注</strong>：この値はクロールされたページ数によって異なります。<br>この指標の計算方法の詳細については、<a href=\"https://dataforseo.com/help-center/how-is-onpage-score-of-a-domain-calculated\" target=\"_blank\" rel=\"noopener noreferrer\">このヘルプセンターの記事</a>をご覧ください"
    },
    "non_indexable": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>インデックスできないページ数</em><br>robots.txt、HTTP ヘッダー、または meta タグの設定により、Google やその他の検索エンジンによるインデックスがブロックされているページ数。<br><a href=\"https://docs.dataforseo.com/v3/on_page/non_indexable/?bash\" target=\"_blank\" rel=\"noopener noreferrer\">このエンドポイント</a>を使用すると、インデックスできない URL のリストを取得できます"
    },
    "checks": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "integer",
          "null"
        ],
        "format": "int64"
      },
      "description": "<em>ページ固有のページ上チェック</em>"
    }
  }
}
```

### Response36Afe1097B20_SslInfo

`#/components/schemas/Response36Afe1097B20_SslInfo`

```json
{
  "type": "object",
  "properties": {
    "valid_certificate": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "<em>SSL 証明書の有効性</em><br>Web サイトで検出された SSL 証明書が失効、停止、取り消し、無効のいずれでもないかどうかを示します"
    },
    "certificate_issuer": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>SSL 証明書の発行機関</em><br>検出された SSL 証明書を発行したエンティティ"
    },
    "certificate_subject": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>SSL 証明書のサブジェクト</em><br>公開鍵に関連付けられたエンティティ"
    },
    "certificate_version": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>SSL 証明書のバージョン</em><br>SSL 証明書が使用する <a href=\"https://en.wikipedia.org/wiki/X.509\" target=\"_blank\" rel=\"noopener noreferrer\">X.509</a> のバージョンを示します"
    },
    "certificate_hash": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>SSL 証明書のハッシュ</em><br>SSL 証明書のハッシュ関数のバージョン"
    },
    "certificate_expiration_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "<em>SSL 証明書の有効期限</em><br>SSL 証明書が失効する日時<br>UTC 形式：“yyyy-mm-dd hh-mm-ss +00:00”<br>例：<br><code class=\"long-string\">2019-11-15 12:57:46 +00:00</code>"
    }
  }
}
```
