> 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/fr/docs/similarity

# Similarité de Domaine

Consultez la documentation de l'API Similarité de Domaine, ses paramètres de requête, les champs de réponse, les exemples de code et la gestion des erreurs pour les intégrations DomScan.

Comparez deux domaines pour leur similarité visuelle et textuelle à l'aide de plusieurs algorithmes, notamment la distance de Levenshtein, la similarité de Jaro-Winkler et l'analyse visuelle des homoglyphes. Utile pour détecter le typosquatting, l'usurpation de marque et les domaines de phishing.

GET /v1/similarity

#### Paramètres de requête

| Paramètre | Type | Description |
| --- | --- | --- |
| domain1 requis | string | Premier domaine (généralement le domaine légitime) |
| domain2 requis | string | Deuxième domaine (domaine potentiellement suspect) |

#### Algorithmes de similarité

| Algorithme | Description |
| --- | --- |
| `levenshtein` | Distance d'édition normalisée (0-1) |
| `jaro_winkler` | Similarité de chaîne pondérée par préfixe |
| `visual` | Détection de caractères homoglyphes/ressemblants |

#### Exemple de requête

```bash
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/similarity?domain1=paypal.com&domain2=paypa1.com"
```

```python
import requests

domscan = requests.Session()
domscan.headers.update({"X-API-Key": "your-api-key"})

# Check multiple suspicious domains
legit = "paypal.com"
suspects = ["paypa1.com", "paypaI.com", "pаypal.com"]  # Note: last one has Cyrillic 'а'

for suspect in suspects:
    response = domscan.get(
        "https://domscan.net/v1/similarity",
        params={"domain1": legit, "domain2": suspect}
    )
    data = response.json()
    print(f"{suspect}: {data['typosquatting_risk']} risk (visual: {data['similarity']['visual']:.2f})")
```

#### Exemple de réponse

```json
{
  "domain1": "paypal.com",
  "domain2": "paypa1.com",
  "similarity": {
    "levenshtein": 0.86,
    "jaro_winkler": 0.93,
    "visual": 0.95
  },
  "is_similar": true,
  "typosquatting_risk": "high",
  "homoglyphs_detected": ["l → 1"],
  "risk_factors": ["character_substitution", "high_visual_similarity"]
}
```

#### Champs de réponse

| Champ | Type |
| --- | --- |
| `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 |
