API API юридического соответствия сайта
Поиск политики конфиденциальности, условий, юридической информации, платформы управления согласием и трекеров на сайте. Используйте этот справочник, чтобы выбрать операцию и встроить её документированный контракт ответа.
Операции
GET /v1/legal-compliance
GET
/v1/legal-compliance
Кредиты: 2-6
Параметры запроса
| Параметр | Тип | обязателен |
|---|---|---|
| url | string | обязателен |
| render |
boolean
По умолчанию
false
|
опционально |
| verify_links |
boolean
По умолчанию
false
|
опционально |
Поля ответа
| Поле | Тип |
|---|---|
url |
string |
final_url |
string |
status |
string |
reason |
string | null |
checked_at |
string |
fetch |
object |
fetch.http_status |
integer | null |
fetch.final_url |
string |
fetch.content_type |
string | null |
fetch.bytes |
integer |
fetch.truncated |
boolean |
fetch.redirect_count |
integer |
fetch.duration_ms |
integer |
fetch.rendered |
boolean |
context |
object |
context.html_lang |
string | null |
context.content_language |
string | null |
context.tld |
string | null |
context.regions[] |
string[] |
context.typical_signals[] |
string[] |
links |
object |
links.privacy_choices |
object |
links.privacy_choices.status |
string |
links.privacy_choices.reason |
string | null |
links.privacy_choices.evidence |
object |
links.privacy_choices.evidence.url |
string | null |
links.privacy_choices.evidence.text |
string | null |
links.privacy_choices.evidence.external |
boolean |
links.privacy_choices.evidence.match |
string |
links.privacy_choices.matches |
integer |
links.privacy_policy |
object |
links.privacy_policy.status |
string |
links.privacy_policy.reason |
string | null |
links.privacy_policy.evidence |
object |
links.privacy_policy.evidence.url |
string | null |
links.privacy_policy.evidence.text |
string | null |
links.privacy_policy.evidence.external |
boolean |
links.privacy_policy.evidence.match |
string |
links.privacy_policy.matches |
integer |
links.terms_of_service |
object |
links.terms_of_service.status |
string |
links.terms_of_service.reason |
string | null |
links.terms_of_service.evidence |
object |
links.terms_of_service.evidence.url |
string | null |
links.terms_of_service.evidence.text |
string | null |
links.terms_of_service.evidence.external |
boolean |
links.terms_of_service.evidence.match |
string |
links.terms_of_service.matches |
integer |
links.cookie_policy |
object |
links.cookie_policy.status |
string |
links.cookie_policy.reason |
string | null |
links.cookie_policy.evidence |
object |
links.cookie_policy.evidence.url |
string | null |
links.cookie_policy.evidence.text |
string | null |
links.cookie_policy.evidence.external |
boolean |
links.cookie_policy.evidence.match |
string |
links.cookie_policy.matches |
integer |
links.imprint |
object |
links.imprint.status |
string |
links.imprint.reason |
string | null |
links.imprint.evidence |
object |
links.imprint.evidence.url |
string | null |
links.imprint.evidence.text |
string | null |
links.imprint.evidence.external |
boolean |
links.imprint.evidence.match |
string |
links.imprint.matches |
integer |
links.accessibility_statement |
object |
links.accessibility_statement.status |
string |
links.accessibility_statement.reason |
string | null |
links.accessibility_statement.evidence |
object |
links.accessibility_statement.evidence.url |
string | null |
links.accessibility_statement.evidence.text |
string | null |
links.accessibility_statement.evidence.external |
boolean |
links.accessibility_statement.evidence.match |
string |
links.accessibility_statement.matches |
integer |
links.contact |
object |
links.contact.status |
string |
links.contact.reason |
string | null |
links.contact.evidence |
object |
links.contact.evidence.url |
string | null |
links.contact.evidence.text |
string | null |
links.contact.evidence.external |
boolean |
links.contact.evidence.match |
string |
links.contact.matches |
integer |
links.refund_policy |
object |
links.refund_policy.status |
string |
links.refund_policy.reason |
string | null |
links.refund_policy.evidence |
object |
links.refund_policy.evidence.url |
string | null |
links.refund_policy.evidence.text |
string | null |
links.refund_policy.evidence.external |
boolean |
links.refund_policy.evidence.match |
string |
links.refund_policy.matches |
integer |
consent |
object |
consent.status |
string |
consent.reason |
string | null |
consent.detected_via[] |
string[] |
consent.platforms[] |
object[] |
consent.platforms[] |
object |
consent.platforms[].id |
string |
consent.platforms[].name |
string |
consent.platforms[].evidence |
string |
consent.frameworks |
object |
consent.frameworks.iab_tcf |
boolean |
consent.frameworks.iab_gpp |
boolean |
consent.frameworks.iab_usp |
boolean |
consent.frameworks.google_consent_mode_default |
boolean |
consent.frameworks.google_consent_mode_v2 |
boolean |
consent.settings_link |
object |
consent.settings_link.status |
string |
consent.settings_link.text |
string | null |
trackers |
object |
trackers.status |
string |
trackers.reason |
string | null |
trackers.detected[] |
object[] |
trackers.detected[] |
object |
trackers.detected[].name |
string |
trackers.detected[].category |
string |
trackers.detected[].evidence |
string |
gpc |
object |
gpc.status |
string |
gpc.supported |
boolean | null |
gpc.last_update |
string | null |
gpc.reason |
string | null |
privacy_policy_check |
object |
privacy_policy_check.status |
string |
privacy_policy_check.http_status |
integer | null |
privacy_policy_check.reason |
string | null |
summary |
object |
summary.found |
integer |
summary.not_found |
integer |
summary.unknown |
integer |
coverage |
object |
coverage.score |
integer | null |
coverage.checks_scored[] |
string[] |
coverage.checks_unknown |
integer |
coverage.score_confidence |
string |
observations[] |
string[] |
client_rendered |
boolean | null |
caveats[] |
string[] |
analysis_version |
string |
Пример запроса
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/legal-compliance?url=https%3A%2F%2Fexample.com&render=false&verify_links=false"const response = await fetch("https://domscan.net/v1/legal-compliance?url=https%3A%2F%2Fexample.com&render=false&verify_links=false", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/legal-compliance?url=https%3A%2F%2Fexample.com&render=false&verify_links=false",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/legal-compliance?url=https%3A%2F%2Fexample.com&render=false&verify_links=false", 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))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/legal-compliance?url=https%3A%2F%2Fexample.com&render=false&verify_links=false")
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))Пример ответа
{
"url": "https://www.allbirds.com/",
"final_url": "https://www.allbirds.com/",
"status": "ok",
"reason": null,
"checked_at": "2026-10-18T04:14:56.310Z",
"fetch": {
"http_status": 200,
"final_url": "https://www.allbirds.com/",
"content_type": "text/html",
"bytes": 720698,
"truncated": false,
"redirect_count": 0,
"duration_ms": 812,
"rendered": false
},
"context": {
"html_lang": "en-US",
"content_language": null,
"tld": "com",
"regions": [],
"typical_signals": [
"privacy_policy",
"terms_of_service",
"contact"
]
},
"links": {
"privacy_choices": {
"status": "found",
"reason": null,
"evidence": {
"url": null,
"text": "Do Not Sell My Personal Information",
"external": false,
"match": "text"
},
"matches": 1
},
"privacy_policy": {
"status": "found",
"reason": null,
"evidence": {
"url": null,
"text": "Privacy policy",
"external": false,
"match": "text"
},
"matches": 1
},
"terms_of_service": {
"status": "found",
"reason": null,
"evidence": {
"url": null,
"text": "Terms of service",
"external": false,
"match": "text"
},
"matches": 1
},
"cookie_policy": {
"status": "not_found",
"reason": null,
"evidence": null,
"matches": 0
},
"imprint": {
"status": "not_found",
"reason": null,
"evidence": null,
"matches": 0
},
"accessibility_statement": {
"status": "not_found",
"reason": null,
"evidence": null,
"matches": 0
},
"contact": {
"status": "found",
"reason": null,
"evidence": {
"url": "https://www.allbirds.com/pages/help",
"text": "FAQ/Contact Us",
"external": false,
"match": "text"
},
"matches": 24
},
"refund_policy": {
"status": "found",
"reason": null,
"evidence": {
"url": "https://www.allbirds.com/pages/returns-exchanges",
"text": "Returns/Exchanges",
"external": false,
"match": "text_and_url"
},
"matches": 2
}
},
"consent": {
"status": "found",
"reason": null,
"detected_via": [
"platform",
"settings_control",
"banner_markup"
],
"platforms": [
{
"id": "onetrust",
"name": "OneTrust",
"evidence": "inline_script"
},
{
"id": "shopify_privacy_banner",
"name": "Shopify privacy banner",
"evidence": "script_url"
}
],
"frameworks": {
"iab_tcf": false,
"iab_gpp": false,
"iab_usp": false,
"google_consent_mode_default": false,
"google_consent_mode_v2": false
},
"settings_link": {
"status": "found",
"text": "Cookie preferences"
}
},
"trackers": {
"status": "found",
"reason": null,
"detected": [
{
"name": "Google Tag Manager",
"category": "tag_manager",
"evidence": "iframe"
},
{
"name": "Microsoft Clarity",
"category": "session_replay",
"evidence": "inline_script"
}
]
},
"gpc": {
"status": "not_checked",
"supported": null,
"last_update": null,
"reason": null
},
"privacy_policy_check": {
"status": "not_checked",
"http_status": null,
"reason": null
},
"summary": {
"found": 6,
"not_found": 3,
"unknown": 0
},
"coverage": {
"score": 89,
"checks_scored": [
"privacy_policy",
"terms_of_service",
"contact",
"consent_management",
"cookie_policy"
],
"checks_unknown": 0,
"score_confidence": "full"
},
"observations": [],
"client_rendered": false,
"caveats": [
"not_legal_advice",
"single_page_checked",
"consent_behaviour_not_tested",
"initial_html_only"
],
"analysis_version": "2026-10-18.1"
}
Коды состояния HTTP
200OK400Неверный запрос401Не авторизован402Требуется оплата429Слишком много запросов