> For the complete documentation index see https://domscan.net/llms.txt. Markdown versions of every docs page are available by appending .md to the page URL.

Source: https://domscan.net/ja/docs/brand-monitor

# ブランドモニタリング

DomScan APIでブランドを継続的に監視し、タイポスクワッティングの脅威やなりすましの試みを追跡します。

ブランドを継続的に監視し、タイポスクワッティングの脅威やなりすましの試みを追跡します。

GET /v1/brand-monitor

監視中のすべてのブランドと現在の脅威状況を取得します。

ページネーション対応: `limit` (1 から 100) を送信し、`next_cursor` を `cursor` として渡します。レスポンスには `has_more` と `next_cursor` が含まれます。`limit` を指定しない場合は、リスト全体が返されます。[ページネーション](https://domscan.net/docs/response-format#pagination)を参照してください。

#### レスポンス例

```json
{
                "brands": [
                {
                "domain": "mycompany.com",
                "added_at": "2024-03-01T12:00:00Z",
                "last_scan_at": "2024-03-14T08:30:00Z",
                "scan_count": 6,
                "registered_typos": 3,
                "new_threats_since_baseline": 1,
                "has_alerts": true
                }
                ],
                "total": 1,
                "updated_at": "2024-03-14T08:30:00Z"
                }
```

#### レスポンスフィールド

| フィールド | タイプ |
| --- | --- |
| `has_more` | boolean |
| `next_cursor` | string \| null |
| `brands[]` | object[] |
| `brands[]` | object |
| `brands[].domain` | string |
| `brands[].added_at` | string |
| `brands[].last_scan_at` | string \| null |
| `brands[].scan_count` | integer |
| `brands[].registered_typos` | integer |
| `brands[].new_threats_since_baseline` | integer |
| `brands[].has_alerts` | boolean |
| `brands[].scan_status` | string |
| `total` | integer |
| `updated_at` | string |

POST /v1/brand-monitor

新しいブランド監視を作成します。

#### リクエストボディ

```json
{
                "domain": "mycompany.com",
                "alert_email": "security@example.com"
                }
```

#### レスポンスフィールド

| フィールド | タイプ |
| --- | --- |
| `success` | boolean |
| `message` | string |
| `brand` | object |
| `brand.domain` | string |
| `brand.baseline_threats` | integer |
| `brand.scan_status` | string |
| `initial_scan` | object \| null |

#### レスポンス例

```json
{
  "success": true,
  "message": "Request completed",
  "brand": {
    "domain": "example.com",
    "baseline_threats": 1,
    "scan_status": "pending"
  },
  "initial_scan": {}
}
```

POST /v1/brand-monitor/scan?domain=mycompany.com

ブランド監視の即時スキャンを開始します。

#### レスポンスフィールド

| フィールド | タイプ |
| --- | --- |
| `success` | boolean |
| `scan` | object \| null |
| `alert` | object |
| `alert.level` | string |
| `alert.message` | string |

#### レスポンス例

```json
{
  "success": true,
  "scan": {},
  "alert": {
    "level": "medium",
    "message": "Request completed"
  }
}
```

DELETE /v1/brand-monitor クレジット: 1

#### クエリパラメータ

| パラメータ | タイプ | 必須 |
| --- | --- | --- |
| domain | string | 必須 |

#### レスポンスフィールド

| フィールド | タイプ |
| --- | --- |
| `success` | boolean |
| `message` | string |

#### リクエスト例

```bash
curl -X DELETE "https://domscan.net/v1/brand-monitor?domain=example.com" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $DOMSCAN_API_KEY" \
  -d '{}'
```

```javascript
const response = await fetch("https://domscan.net/v1/brand-monitor?domain=example.com", {
  method: "DELETE",
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({}),
});
const data = await response.json();
console.log(data);
```

```python
import os
import requests

response = requests.delete(
    "https://domscan.net/v1/brand-monitor?domain=example.com",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
    json={},
)
print(response.json())
```

```go
package main

func main() {
	body := strings.NewReader(`{}`)
	req, err := http.NewRequest(http.MethodDelete, "https://domscan.net/v1/brand-monitor?domain=example.com", body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
	req.Header.Set("Content-Type", "application/json")

```ruby
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/brand-monitor?domain=example.com")
request = Net::HTTP::Delete.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
request["Content-Type"] = "application/json"
request.body = JSON.generate({})

#### レスポンス例

```json
{
  "success": true,
  "message": "Request completed"
}
```

#### HTTP ステータスコード

- `200` 成功
- `400` 不正なリクエスト
- `401` 未認証
- `402` 支払いが必要
- `429` リクエスト過多

GET /v1/brand-monitor/status クレジット: 1

#### クエリパラメータ

| パラメータ | タイプ | 必須 |
| --- | --- | --- |
| domain | string | 必須 |

#### レスポンスフィールド

| フィールド | タイプ |
| --- | --- |
| `brand` | object |
| `brand.domain` | string |
| `brand.name` | string |
| `brand.tld` | string |
| `brand.added_at` | string |
| `brand.last_scan_at` | string \| null |
| `brand.scan_count` | integer |
| `threats` | object |
| `threats.baseline_count` | integer |
| `threats.current_count` | integer |
| `threats.new_since_baseline` | integer |
| `threats.new_threat_domains[]` | string[] |
| `threats.all_registered[]` | string[] |
| `alerts` | object |
| `alerts.email` | string \| null |
| `alerts.webhook` | string \| null |

#### リクエスト例

```bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/brand-monitor/status?domain=example.com"
```

```javascript
const response = await fetch("https://domscan.net/v1/brand-monitor/status?domain=example.com", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
```

```python
import os
import requests

response = requests.get(
    "https://domscan.net/v1/brand-monitor/status?domain=example.com",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
```

```go
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/brand-monitor/status?domain=example.com", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

```ruby
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/brand-monitor/status?domain=example.com")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

#### レスポンス例

```json
{
  "brand": {
    "domain": "example.com",
    "name": "example",
    "tld": "com",
    "added_at": "2026-08-27T12:00:00Z",
    "last_scan_at": "2026-08-27T12:00:00Z",
    "scan_count": 1
  },
  "threats": {
    "baseline_count": 1,
    "current_count": 1,
    "new_since_baseline": 1,
    "new_threat_domains": [
      "example.com"
    ],
    "all_registered": [
      "example"
    ]
  },
  "alerts": {
    "email": "user@example.com",
    "webhook": "example"
  }
}
```

#### HTTP ステータスコード

- `200` 成功
- `400` 不正なリクエスト
- `401` 未認証
- `402` 支払いが必要
- `404` 見つかりません
- `429` リクエスト過多

POST /v1/brand-monitor/reset-baseline クレジット: 1

#### クエリパラメータ

| パラメータ | タイプ | 必須 |
| --- | --- | --- |
| domain | string | 必須 |

#### レスポンスフィールド

| フィールド | タイプ |
| --- | --- |
| `success` | boolean |
| `message` | string |

#### リクエスト例

```bash
curl -X POST "https://domscan.net/v1/brand-monitor/reset-baseline?domain=example.com" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $DOMSCAN_API_KEY" \
  -d '{}'
```

```javascript
const response = await fetch("https://domscan.net/v1/brand-monitor/reset-baseline?domain=example.com", {
  method: "POST",
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({}),
});
const data = await response.json();
console.log(data);
```

```python
import os
import requests

response = requests.post(
    "https://domscan.net/v1/brand-monitor/reset-baseline?domain=example.com",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
    json={},
)
print(response.json())
```

```go
package main

func main() {
	body := strings.NewReader(`{}`)
	req, err := http.NewRequest(http.MethodPost, "https://domscan.net/v1/brand-monitor/reset-baseline?domain=example.com", body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
	req.Header.Set("Content-Type", "application/json")

```ruby
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/brand-monitor/reset-baseline?domain=example.com")
request = Net::HTTP::Post.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
request["Content-Type"] = "application/json"
request.body = JSON.generate({})

#### レスポンス例

```json
{
  "success": true,
  "message": "Request completed"
}
```

#### HTTP ステータスコード

- `200` 成功
- `400` 不正なリクエスト
- `401` 未認証
- `402` 支払いが必要
- `409` HTTP 409
- `422` HTTP 422
- `429` リクエスト過多

PUT /v1/brand-monitor/alerts クレジット: 1

#### ボディパラメータ

| パラメータ | タイプ | 必須 |
| --- | --- | --- |
| domain | string | 必須 |
| alert_email | string \| null | オプション |
| alert_webhook | string \| null | オプション |

#### レスポンスフィールド

| フィールド | タイプ |
| --- | --- |
| `success` | boolean |
| `message` | string |

#### リクエスト例

```bash
curl -X PUT "https://domscan.net/v1/brand-monitor/alerts" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $DOMSCAN_API_KEY" \
  -d '{
  "domain": "example.com",
  "alert_email": "brand-team@example.com",
  "alert_webhook": "https://hooks.example.com/domscan"
}'
```

```javascript
const response = await fetch("https://domscan.net/v1/brand-monitor/alerts", {
  method: "PUT",
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({
    "domain": "example.com",
    "alert_email": "brand-team@example.com",
    "alert_webhook": "https://hooks.example.com/domscan"
  }),
});
const data = await response.json();
console.log(data);
```

```python
import os
import requests

response = requests.put(
    "https://domscan.net/v1/brand-monitor/alerts",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
    json={
        "domain": "example.com",
        "alert_email": "brand-team@example.com",
        "alert_webhook": "https://hooks.example.com/domscan",
    },
)
print(response.json())
```

```go
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
	  "domain": "example.com",
	  "alert_email": "brand-team@example.com",
	  "alert_webhook": "https://hooks.example.com/domscan"
	}`)
	req, err := http.NewRequest(http.MethodPut, "https://domscan.net/v1/brand-monitor/alerts", body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
	req.Header.Set("Content-Type", "application/json")

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
```

```ruby
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/brand-monitor/alerts")
request = Net::HTTP::Put.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
request["Content-Type"] = "application/json"
request.body = JSON.generate({
  "domain" => "example.com",
  "alert_email" => "brand-team@example.com",
  "alert_webhook" => "https://hooks.example.com/domscan"
})

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))
```

#### レスポンス例

```json
{
  "success": true,
  "message": "Request completed"
}
```

#### HTTP ステータスコード

- `200` 成功
- `400` 不正なリクエスト
- `401` 未認証
- `402` 支払いが必要
- `429` リクエスト過多
