> 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/zh/docs/products/domain-similarity

# 域名相似度 API 参考

根据名称模式和关键词查找与给定域名相似的域名。 使用此参考选择操作，并集成其文档化的响应契约。

[查看产品页](https://domscan.net/zh/domain-similarity-api)

## 操作

GET `/v1/similarity` [查看 API 参考](https://domscan.net/zh/docs/products/domain-similarity#getDomainSimilarity)

## GET `/v1/similarity`

操作: `getDomainSimilarity`
积分和身份验证: 2
需要身份验证

GET /v1/similarity 积分: 2

#### 查询参数

| 参数 | 类型 | 必需 |
| --- | --- | --- |
| domain1 | string | 必需 |
| domain2 | string | 必需 |

#### 响应字段

| 字段 | 类型 |
| --- | --- |
| `domain1` | string |
| `domain2` | string |
| `overall_similarity` | number |
| `risk_level` | string |
| `analysis` | object |
| `analysis.levenshtein_distance` | integer |
| `analysis.levenshtein_similarity` | number |
| `analysis.jaro_winkler_similarity` | number |
| `analysis.visual_similarity` | number |
| `analysis.keyboard_distance` | number |
| `analysis.common_prefix_length` | integer |
| `analysis.common_suffix_length` | integer |
| `matching_methods[]` | string[] |
| `is_potential_typosquat` | boolean |
| `checked_at` | string |
| `meta` | object |

#### 请求示例

```bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/similarity?domain1=example.com&domain2=example.org"
```

```javascript
const response = await fetch("https://domscan.net/v1/similarity?domain1=example.com&domain2=example.org", {
  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/similarity?domain1=example.com&domain2=example.org",
    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/similarity?domain1=example.com&domain2=example.org", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	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/similarity?domain1=example.com&domain2=example.org")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

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
{
  "domain1": "example.com",
  "domain2": "exampel.com",
  "overall_similarity": 79,
  "risk_level": "medium",
  "analysis": {
    "levenshtein_distance": 2,
    "levenshtein_similarity": 71,
    "jaro_winkler_similarity": 97,
    "visual_similarity": 71,
    "keyboard_distance": 6.08,
    "common_prefix_length": 5,
    "common_suffix_length": 0
  },
  "matching_methods": [
    "jaro-winkler",
    "common-prefix",
    "same-tld"
  ],
  "is_potential_typosquat": true,
  "checked_at": "2026-10-09T10:15:30.000Z",
  "meta": {
    "served_by": "pop=MAD country=ES"
  }
}
```

#### HTTP 状态码

- `200` 成功
- `400` 请求错误
- `401` 未授权
- `402` 需要付款
- `429` 请求过多

## 参考资源

[OpenAPI 3.0](https://domscan.net/v1/openapi.json)
[Postman](https://domscan.net/v1/postman.json)
[MCP](https://domscan.net/zh/mcp-domain-checker)
