---
title: "サイト検索"
method: POST
path: "/v1/site-search"
tags: ["サイト検索"]
---

# サイト検索

`POST /v1/site-search`

サイト検索。
コンテンツ・ドメイン・各種指標で関連サイトを検索し、推定流入数が多い順に取得する。

最大100件取得。各サイトの推定検索流入数・集客価値(USD)・ランクインキーワード数・ページ数を返す。

コンテンツフィルタ（filter.keyword）を使った場合、まず関連サイトを検索流入が多い順に最大100件抽出した後に他のフィルタが適用される。
そのため、フィルタを掛け合わせて101〜200件目を取得することはできない（フィルタは抽出済み100件に対して掛かるため）。
コンテンツフィルタ指定時は、関連コンテンツの推定流入数（relatedContent.estimatedTraffic）とコンテンツ関連性スコア（relatedContent.relevanceScore）も返す。

特定サイトがSEO流入を獲得しているキーワードを調べたい場合は POST /v1/influx-keywords を、
指定ドメインの競合サイトを抽出したい場合は POST /v1/competitive を使う。

1リクエストあたり1.5クレジットを消費。

## Request body

- SiteSearchDto
  - `filter` object — 絞り込み条件。コンテンツ・ドメイン・推定流入数・キーワード数・ページ数・価値・関連コンテンツ推定流入数・コンテンツ関連性で絞り込む。省略時は全サイトを流入が多い順に取得する。
    - `keyword` object — コンテンツフィルタ（含む/含まないキーワード）。指定すると、まず関連サイトを流入が多い順に最大100件抽出した後に他フィルタが適用される。
      - `includes` string[], required — 含む単語のリスト（1件以上必須）
      - `notIncludes` string[] — 含まない単語のリスト
    - `domain` object — ドメインフィルタ（含む/含まないドメインとマッチタイプ）
      - `includes` string[] — 含むドメインのリスト
      - `notIncludes` string[] — 含まないドメインのリスト
      - `matchType` 'partialMatch' | 'prefixMatch' | 'suffixMatch' — ドメインのマッチタイプ。partialMatch: 部分一致 / prefixMatch: 前方一致 / suffixMatch: 後方一致。省略時は partialMatch。
    - `totalEtv` object — 推定流入数フィルタ（範囲指定）
      - `min` integer — 最小値
      - `max` integer — 最大値
    - `keywordCount` object — キーワード数フィルタ（範囲指定）
      - `min` integer — 最小値
      - `max` integer — 最大値
    - `pageCount` object — ページ数フィルタ（範囲指定）
      - `min` integer — 最小値
      - `max` integer — 最大値
    - `totalTrafficValue` object — 価値（USD）フィルタ（範囲指定）
      - `min` integer — 最小値
      - `max` integer — 最大値
    - `relatedContentEtv` object — 関連コンテンツ推定流入数フィルタ（範囲指定）。コンテンツフィルタ指定時のみ有効。
      - `min` integer — 最小値
      - `max` integer — 最大値
    - `contentRelevance` object — コンテンツ関連性フィルタ（0〜100の範囲指定）。コンテンツフィルタ指定時のみ有効。
      - `min` integer — 最小値
      - `max` integer — 最大値
  - `limit` integer — 取得件数。1〜100 の整数を指定する。省略時は 100。

## Response `200`

検索成功

- SiteSearchResponseDto
  - `result` boolean, required — API 呼び出しの成否。正常時は true、エラー時は false。
  - `meta` object, required — リクエストに関するメタ情報（課金・消費リソースなど）
    - `consumedCredit` number, required — このリクエストで消費されたクレジット数。
  - `data` object, required — サイト検索結果データ
    - `query` object, required — リクエストで指定された検索条件
      - `filter` object, required — リクエストで適用された絞り込み条件
        - `keyword` object — コンテンツフィルタ（含む/含まないキーワード）。指定すると、まず関連サイトを流入が多い順に最大100件抽出した後に他フィルタが適用される。
          - `includes` string[], required — 含む単語のリスト（1件以上必須）
          - `notIncludes` string[] — 含まない単語のリスト
        - `domain` object — ドメインフィルタ（含む/含まないドメインとマッチタイプ）
          - `includes` string[] — 含むドメインのリスト
          - `notIncludes` string[] — 含まないドメインのリスト
          - `matchType` 'partialMatch' | 'prefixMatch' | 'suffixMatch' — ドメインのマッチタイプ。partialMatch: 部分一致 / prefixMatch: 前方一致 / suffixMatch: 後方一致。省略時は partialMatch。
        - `totalEtv` object — 推定流入数フィルタ（範囲指定）
          - `min` integer — 最小値
          - `max` integer — 最大値
        - `keywordCount` object — キーワード数フィルタ（範囲指定）
          - `min` integer — 最小値
          - `max` integer — 最大値
        - `pageCount` object — ページ数フィルタ（範囲指定）
          - `min` integer — 最小値
          - `max` integer — 最大値
        - `totalTrafficValue` object — 価値（USD）フィルタ（範囲指定）
          - `min` integer — 最小値
          - `max` integer — 最大値
        - `relatedContentEtv` object — 関連コンテンツ推定流入数フィルタ（範囲指定）。コンテンツフィルタ指定時のみ有効。
          - `min` integer — 最小値
          - `max` integer — 最大値
        - `contentRelevance` object — コンテンツ関連性フィルタ（0〜100の範囲指定）。コンテンツフィルタ指定時のみ有効。
          - `min` integer — 最小値
          - `max` integer — 最大値
    - `summary` object, required — 件数サマリー（全体件数とレスポンスに含まれる件数）
      - `totalCount` number, required — 取得対象全体の件数
      - `returnedCount` number, required — このレスポンスに含まれている件数
    - `items` object[], required — サイト検索結果のリスト。流入が多い順（コンテンツフィルタ指定時は関連コンテンツ流入が多い順）。
      - `no` number, required — 結果内の連番（1始まり）
      - `site` object, required — サイト情報（ドメイン・URL・タイトル・説明文）
        - `domain` string, required — サイトのドメイン名
        - `url` string, required — サイトのトップページURL
        - `title` string, required — トップページのタイトル
        - `description` string, required — トップページの説明文
      - `metrics` object, required — サイトの各種指標（推定流入数・価値・キーワード数・ページ数）
        - `estimatedTraffic` number, required — サイト全体の推定検索流入数（月間）
        - `trafficValue` number, required — サイト全体の集客価値（USD）
        - `rankingKeywordCount` number, required — サイト全体でランクインしているキーワード数
        - `pageCount` number, required — ランクインしているページ数
      - `relatedContent` object, nullable, required — コンテンツフィルタ関連の指標。コンテンツフィルタ未指定時は null。
        - `estimatedTraffic` number, required — コンテンツフィルタに関連するページの推定流入数の合計
        - `relevanceScore` number, required — コンテンツ関連性スコア（0〜100）。サイト全体の流入に占める関連コンテンツ流入の割合。
  - `errors` string[], required — エラーメッセージの配列。正常時は空配列。

## Other responses

- `400` — バリデーションエラー
- `402` — クレジット不足
- `403` — 認証エラー
- `429` — レート制限超過
- `500` — Internal Server Error
- `503` — Service Unavailable - データベース接続エラーなど

---

[API](https://skmtc.dev/rakkokeyword/apis/api.md) · [All operations](https://skmtc.dev/rakkokeyword/apis/api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rakkokeyword/api/revisions/23e921f5f25c/schema)
