Skip to content
SEO Optimizer is live, Audit on page SEO and AI-search readiness. Try it free

API リファレンス

プロパティ

プロパティは1つの製品のサイトとリポジトリをまとめたものです。これらのエンドポイントは、総合スコア、各ツールのスコア、全ツールの検出結果をまとめたリスト、次にやるべきことを返します。

プロパティはアプリのプロパティで作成します。API は読み取り専用で、読み取り専用キーを含むどのキーでも使えます。チームのキーではチームのプロパティが見えます。

プロパティ一覧

GET/api/v1/properties

キーのチーム (または所有者) のすべてのプロパティとツール別スコア。

レスポンス

json
{
  "properties": [
    {
      "id": "cm9prop...",
      "name": "Acme Store",
      "category": "ecommerce",
      "client": null,
      "score": 76,
      "lastScannedAt": "2026-11-12T09:30:00.000Z",
      "openTasks": 4,
      "targets": [
        { "target": "shop.acme.com", "kind": "site" },
        { "target": "acme/storefront", "kind": "repo" }
      ],
      "tools": [
        { "tool": "audit", "score": 86, "change": 3, "scanned": 1, "of": 1, "at": "2026-11-12T09:30:00.000Z" },
        { "tool": "security", "score": 54, "change": -12, "scanned": 1, "of": 1, "at": "2026-11-10T08:00:00.000Z" }
      ]
    }
  ]
}

プロパティを取得

GET/api/v1/properties/{id}

30日間の推移、統合された問題、次のステップを含む1つのプロパティ。

パスパラメータ

idstring必須一覧から取得したプロパティの ID。

レスポンス

json
{
  "id": "cm9prop...",
  "name": "Acme Store",
  "score": 76,
  "trend": [{ "day": "2026-11-12", "score": 76 }],
  "issues": [
    {
      "title": "Missing Content-Security-Policy",
      "severity": "high",
      "tools": ["security", "audit"],
      "targets": ["shop.acme.com"],
      "places": 1,
      "task": { "id": "cm9task...", "status": "open", "assignee": "Sam Lee" },
      "url": "https://www.scanverra.com/security-scan/cm9scan...?finding=..."
    }
  ],
  "nextSteps": [
    { "kind": "secretsLive", "tool": "security", "target": "shop.acme.com", "url": "https://www.scanverra.com/security-scan?url=..." }
  ],
  "packs": [
    {
      "ref": "checkout-security",
      "name": "Checkout security",
      "official": true,
      "pass": false,
      "passed": 5,
      "total": 7,
      "rules": [
        { "kind": "minScore", "tool": "security", "expected": 85, "actual": 50, "pass": false }
      ]
    }
  ]
}

フィールド

scorenumber | null任意総合ヘルス。各ツールのスコアをプロパティの対象全体で平均し、さらにツールを均等に平均したもの。まだ何もスキャンしていない場合は null。
tools[]object[]任意プロパティをスキャンしたツールごとのエントリ: スコア、前回スキャンからの変化、スキャンした対象の数 (of のうち scanned)、日時。
issues[]object[]任意全ツールの最新スキャンの検出結果を統合したもの。2つのツールが同じ問題を報告した場合は1件になり、tools に両方、places に出現回数が入ります。
issues[].taskobject | null任意誰かに割り当てられている場合、その問題の未完了の修正タスク。
nextSteps[]object[]任意次にスキャンまたは修正すべきこと (緊急度順、種類は下記)。url は対象が入力済みの該当ページを開きます。
packs[]object[]任意プロパティにインストールされたポリシーパック (マーケットプレイスから)。それぞれ最新スキャンに対してチェックされます: pass、合格したルール数 (total 中 passed)、各ルールのしきい値 (expected) と現在値 (actual)。公式パックの名前は英語です。
trend[]object[]任意過去30日間の日ごとの総合スコア。

次のステップの種類

nextSteps はツールを横断して判断するため、あるツールの検出結果が、別のツールで可能なスキャンや修正を示します。

  • secretsLive

    リポジトリにシークレットが漏洩: 公開サイトから何が見えるか確認。

  • regression

    前回スキャンからツールのスコアが10ポイント以上低下。

  • run360

    ほとんどのツールがまだサイトを確認していない。

  • headersInCode

    公開サイトにセキュリティヘッダーが不足し、そのリポジトリがプロパティに含まれている。

  • neverScanned

    ある対象で一度も実行されていないツールがある。

  • stale

    対象の最新スキャンが30日以上前。

  • linkRepo

    サイトはあるがリポジトリがない。

  • addSite

    リポジトリはあるがサイトがない。

例

curl https://www.scanverra.com/api/v1/properties \
  -H "X-API-Key: $SCANVERRA_API_KEY"