Web Validation
Compliance Screening
Web Validation
POST
Web Validation
Comprehensive website validation and risk assessment. Analyzes domains for legitimacy, security, content quality, sanctions, adverse media, and policy compliance.
When
Endpoint
Authentication
Requiresweb-validation:create permission. Include your Bearer token in the Authorization header.
Description
The web validation endpoint performs comprehensive analysis of websites including:- URL & Domain Analysis: Validates URL structure, redirects, and domain registration (WHOIS)
- SSL/TLS Verification: Checks certificate validity, expiration, and security
- Industry Classification: AI-powered industry detection and risk classification
- Name/Industry Matching: Compares declared business info against website content
- Sanction List Check: Screens domain against global sanctions lists
- Adverse Media Analysis: Searches for negative news and fraud reports
- Social Media Validation: Verifies social media links are functional
- Tranco Rank Check: Evaluates website popularity/reputation
- Policy Compliance: Analyzes Terms, Return, Refund, and AML policies
Request Body Parameters
Request Examples
Basic Validation
Validation Linked to a Customer
client_id is provided, the response includes a customer_id field. If no customer with that client_id exists, one is auto-created. Use the same client_id across services (web validation, adverse media, sessions) to aggregate all results for one customer.
Full Validation with Business Details
With JavaScript Rendering
Response Format
Success Response
Response Fields
Top Level
| Field | Type | Description |
|---|---|---|
customer_id | string | Internal customer UUID. Only present when client_id was provided in the request. |
result.reliability_score | number | Overall reliability score (0-100) |
result.validation_results | object | Detailed results from all validators |
URL & Basic Checks
| Field | Type | Description |
|---|---|---|
url_checker | boolean | Whether URL is valid and accessible |
code_response | integer | HTTP response code |
last_page_url | string | Final URL after redirects |
social_media | boolean | Whether URL is a social media site |
social_media_allowed | boolean | Whether social media URLs are allowed |
SSL Certificate
| Field | Type | Description |
|---|---|---|
has_ssl | boolean | Whether site has SSL |
is_valid | boolean | Whether certificate is valid |
issuer | string | Certificate issuer |
expiry_date | string | Certificate expiration date |
days_until_expiry | integer | Days until certificate expires |
WHOIS Information
| Field | Type | Description |
|---|---|---|
domain | string | Domain name |
registrar | string | Domain registrar |
creation_date | string | Domain creation date |
expiration_date | string | Domain expiration date |
domain_age_days | integer | Age of domain in days |
registrant_country | string | Country of registrant |
Industry Classification
| Field | Type | Description |
|---|---|---|
industry_name | string | Detected industry name |
industry_id | integer | Industry identifier |
allowed_industry | boolean | Whether industry is allowed |
flagged_industry | boolean | Whether industry is flagged for extra scrutiny (only true when allowed_industry is also true) |
criterion | string | Classification reasoning |
KYC Matches
| Field | Type | Description |
|---|---|---|
declared_name_match | boolean | Whether declared name matches |
declared_industry_match | boolean | Whether declared industry matches |
name_confidence | number | Name match confidence (0-1) |
industry_confidence | number | Industry match confidence (0-1) |
Sanction Check
| Field | Type | Description |
|---|---|---|
has_matches | boolean | Whether sanctions matches found |
matches | array | List of sanction matches |
checked_lists | array | Lists that were checked |
Adverse Media
| Field | Type | Description |
|---|---|---|
has_adverse_media | boolean | Whether adverse media found |
risk_score | integer | Risk score (0-100) |
decision | string | CLEAR, LOW_RISK, MEDIUM_RISK, HIGH_RISK |
sources | array | Adverse media sources found |
Social Media Links
| Field | Type | Description |
|---|---|---|
social_links_found | boolean | Whether social links found |
valid_count | integer | Number of valid links |
invalid_count | integer | Number of broken links |
links | array | Detailed link information |
Tranco Rank
| Field | Type | Description |
|---|---|---|
rank | integer | Tranco ranking position |
in_top_million | boolean | Whether in top 1M sites |
band | string | Ranking band (top_1k, top_10k, etc.) |
score | number | Popularity score (0-1) |
Policies
| Field | Type | Description |
|---|---|---|
terms | object | Terms & Conditions analysis |
return | object | Return policy analysis |
refund | object | Refund policy analysis |
aml | object | AML policy analysis |
execution_time_ms | integer | Policy analysis time |
Reliability Score Calculation
The reliability score is calculated as a weighted average of individual validation scores:| Criterion | Description | Score Range |
|---|---|---|
| SSL | Certificate validity | 0-1 |
| Industry | Allowed industry classification (0 = blocked, 0.5 = flagged, 1 = allowed) | 0, 0.5, or 1 |
| Name Match | Declared name verification | 0 or 1 |
| Industry Match | Declared industry verification | 0 or 1 |
| Sanction Check | No sanctions matches | 0 or 1 |
| Adverse Media | Inverse of risk score | 0-1 |
| Social Links | Ratio of valid links | 0-1 |
| Tranco Rank | Popularity score by band | 0.2-1 |
| Terms Policy | Policy quality score | 0-1 |
| Return Policy | Policy presence score | 0-1 |
| Refund Policy | Policy presence score | 0-1 |
| AML Policy | Policy quality score | 0-1 |
Tranco Rank Bands
| Band | Rank Range | Score |
|---|---|---|
| top_1k | 1 - 1,000 | 1.0 |
| top_10k | 1,001 - 10,000 | 0.9 |
| top_100k | 10,001 - 100,000 | 0.8 |
| top_500k | 100,001 - 500,000 | 0.6 |
| top_1m | 500,001 - 1,000,000 | 0.4 |
| not_ranked | > 1,000,000 | 0.2 |
Error Responses
400 Bad Request - Invalid URL
400 Bad Request - Missing URL
403 Forbidden - Permission Denied
500 Internal Server Error
Status Codes
| Code | Description |
|---|---|
| 200 | Success - Validation completed |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Missing or invalid token |
| 403 | Forbidden - Insufficient permissions |
| 500 | Internal Server Error |
Usage Examples
Python - Full Validation
JavaScript - With Risk Assessment
Best Practices
Performance
- Basic validation (without policies/adverse media): ~3-5 seconds
- Full validation (all checks enabled): ~8-15 seconds
- Use
enable_js_render: trueonly for JavaScript-heavy sites (adds ~2-3 seconds)
Reliability Score Thresholds
| Score Range | Recommendation |
|---|---|
| 80-100 | Low risk, safe to proceed |
| 60-79 | Medium risk, review recommended |
| 40-59 | Higher risk, manual verification needed |
| 0-39 | High risk, exercise caution |
Configuration Tips
-
For E-commerce/Merchant Onboarding:
- Enable all checks including policies
- Verify
declared_nameanddeclared_industry - Check
include_adverse_media: true
-
For Quick Screening:
- Use basic validation without policies
- Focus on SSL, sanction check, and Tranco rank
-
For High-Risk Industries:
- Enable AML policy check
- Use tenant-configured risk matrix weights
Tenant Configuration
Settings can be pre-configured per tenant:- Default validation options
- Risk matrix weights
- Allowed/blocked industries
- Policy check requirements
Related References
- Adverse Media API - Dedicated adverse media analysis
- CUA Website Scan - AI-powered deep website analysis
- List Check - Entity sanctions screening