### Example response for GET /v1/suggest Source: https://domscan.net/docs/products/domain-suggestions Example response from the GET /v1/suggest endpoint. Shows the structure of suggestions, generation summary, and metadata fields. ```json { "suggestions": [ { "name": "example", "domain": "example.com", "tld": "com", "score": 85, "available": true, "method": "rdap" } ], "keywords": [ "example" ], "tlds": [ "com", "net", "org" ], "styles": [ "example" ], "industry": "tech", "language": "en", "generated_count": 1, "available_count": 1, "generation_summary": { "requested_limit": 1, "candidate_count": 1, "returned_count": 1, "availability_checked": false, "availability_check_count": 1, "available_count": 1, "tld_count": 1, "language": "en", "method_counts": {}, "style_counts": {}, "top_method": "rdap", "average_score": 85 }, "meta": { "total_generated": 1, "available_count": 1, "generation_ms": 1 } } ``` -------------------------------- ### GET /v1/typos/quick example request Source: https://domscan.net/docs/typosquatting Example request for the GET /v1/typos/quick endpoint. Uses the X-API-Key header with the DOMSCAN_API_KEY environment variable and passes domain and limit query parameters. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/typos/quick?domain=example.com&limit=25" ``` -------------------------------- ### WHOIS Lookup Go Example Source: https://domscan.net/docs/whois-lookup Example using the standard library to perform a GET request with an API key from environment variables. ```go package main import ( "encoding/json" "fmt" "net/http" "os" ) func domscanGet(url string) (*http.Response, error) { request, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { return nil, err } request.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY")) return http.DefaultClient.Do(request) } func main() { resp, _ := domscanGet("https://domscan.net/v1/whois?domain=github.com") defer resp.Body.Close() var data map[string]interface{} json.NewDecoder(resp.Body).Decode(&data) fmt.Printf("Registrar: %s\n", data["registrar"]) fmt.Printf("Created: %s\n", data["created_date"]) fmt.Printf("Expires: %s\n", data["expiry_date"]) } ``` -------------------------------- ### GET /v1/pricing example response Source: https://domscan.net/docs/pricing Example response for the GET /v1/pricing endpoint. Shows the full pricing payload including registrar prices, summary statistics, exact quotes, and comparison data. All values are placeholders (e.g., 0.5, "example") and timestamps are illustrative. ```json { "success": true, "data": { "domain": "example.com", "tld": "com", "pricing": { "tld": "com", "prices": [ { "registrar": "example", "registrarName": "example", "register": 0.5, "renew": 0.5, "transfer": 0.5, "currency": "USD", "promoPrice": 0.5, "promoDetails": "example", "features": { "freeWhoisPrivacy": false, "freeDns": false }, "lastUpdated": "2026-08-27T12:00:00Z", "source": "api", "sourceName": "example", "sourceUrl": "https://example.com", "confidence": "high", "sourceType": "official_api", "quoteScope": "tld_standard", "observedAt": "2026-08-27T12:00:00Z", "recommendationEligible": false, "recommendationExclusionReason": "stale" } ], "cheapest": { "register": {}, "renew": {}, "transfer": {} }, "averagePrice": { "register": 0.5, "renew": 0.5, "transfer": 0.5 }, "priceRange": { "register": {}, "renew": {}, "transfer": {} }, "lastUpdated": "2026-08-27T12:00:00Z", "dataQuality": { "sourcesQueried": 1, "sourcesSucceeded": 1, "cacheHitRate": 0.5, "averageConfidence": "high" }, "price_summary": { "registrar_count": 1, "registrar_coverage_ratio": 0.5, "price_points": { "register": 1, "renew": 1, "transfer": 1 }, "source_counts": {}, "confidence_counts": {}, "freshness": { "freshest_at": "2026-08-27T12:00:00Z", "oldest_at": "2026-08-27T12:00:00Z", "newest_age_hours": 0.5, "stale_price_count": 1, "unknown_freshness_count": 1 }, "spread": { "register_usd": 0.5, "renew_usd": 0.5, "transfer_usd": 0.5 }, "outlier_count": 1, "recommendation_eligible_registrar_count": 1, "quality_status": "healthy", "cheapest_register": {}, "cheapest_renew": {}, "cheapest_transfer": {} }, "checkAccounting": { "plannedChecks": 1, "actualChecks": 1, "successfulRows": 1, "creditsCharged": 1, "creditsPerCheck": 1, "selectedRegistrars": [ "example" ] } }, "recommendation": { "registrar": "example", "reason": "example", "savings": 0.5 }, "recommendation_status": "available", "cloudflare": { "source": "registrar_api_beta", "checked": false, "status": "registrable", "supported": false, "registrable": false, "reason": "example", "pricing": { "currency": "USD", "registrationCost": 0.5, "renewalCost": 0.5 }, "checkedAt": "2026-08-27T12:00:00Z" }, "exact_quotes": [ { "registrar": "example", "sourceType": "official_api", "sourceName": "example", "sourceUrl": "https://example.com", "quoteScope": "exact_domain", "checked": false, "configured": false, "status": "registrable", "available": true, "definitive": false, "premium": false, "minimumRegistrationYears": 1, "currency": "USD", "register": 0.5, "renew": 0.5, "transfer": 0.5, "checkedAt": "2026-08-27T12:00:00Z", "errorCode": "example" } ], "checkAccounting": { "plannedChecks": 1, "actualChecks": 1, "successfulRows": 1, "creditsCharged": 1, "creditsPerCheck": 1, "selectedRegistrars": [ "example" ] }, "comparison_summary": { "first_year_registrar": "example", "renewal_registrar": "example", "transfer_registrar": "example", "first_year_price": 0.5, "renewal_price": 0.5, "transfer_price": 0.5, "first_year_vs_renewal_delta_usd": 0.5, "first_year_vs_renewal_delta_pct": 0.5, "cheapest_register_renews_higher": false, "renewal_trap_warning": false, "transfer_savings_usd": 0.5, "cloudflare_live_status": "registrable", "recommendation_basis": "lowest_register" } }, "meta": { "requestId": "request-id", "servedBy": "example", "durationMs": 1, "cacheStatus": "hit" } } ``` -------------------------------- ### Example response for GET /v1/redirects Source: https://domscan.net/docs/products/redirects Example JSON response from the GET /v1/redirects endpoint. Contains the redirect chain details, risk summary, and timing information. ```json { "original_url": "https://example.com", "final_url": "https://example.com", "redirect_count": 1, "hops": [ { "url": "https://example.com", "status_code": 1, "location": "example", "server": "example", "content_type": "domain" } ], "https_upgrade": false, "domain_changed": false, "final_status": 1, "final_title": "example", "risk_summary": { "risk_level": "low", "risk_flags": [ "example" ], "hop_count": 1, "redirect_count": 1, "https_upgrade": false, "https_downgrade": false, "domain_changed": false, "final_status": 1, "error_present": false, "tracking_parameter_hops": 1 }, "total_time_ms": 1, "checked_at": "2026-08-27T12:00:00Z" } ``` -------------------------------- ### GET /v1/watchlist/available - Example Response Source: https://domscan.net/docs/watchlist Example JSON response for domains that are now available for registration. Includes available_domains array, total, and message. ```json { "available_domains": [ { "domain": "startupdrop.ai", "status": "available", "last_checked": "2026-04-14T08:30:00Z", "check_count": 18 } ], "total": 1, "message": "These domains from your watchlist are now available for registration!" } ``` -------------------------------- ### GET /v1/similarity example request and response Source: https://domscan.net/docs/products/domain-similarity Example request and response for the GET /v1/similarity endpoint. The request requires an X-API-Key header and two query parameters, domain1 and domain2. The response includes similarity metrics, risk level, and typosquat detection. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/similarity?domain1=example.com&domain2=example.org" ``` ```json { "domain1": "example.com", "domain2": "example.org", "overall_similarity": 0.5, "risk_level": "none", "analysis": { "levenshtein_distance": 1, "levenshtein_similarity": 0.5, "jaro_winkler_similarity": 0.5, "visual_similarity": 0.5, "keyboard_distance": 0.5, "common_prefix_length": 1, "common_suffix_length": 1 }, "matching_methods": [ "example" ], "is_potential_typosquat": false, "checked_at": "2026-08-27T12:00:00Z", "meta": {} } ``` -------------------------------- ### GET /v1/pricing - Example Request and Response Source: https://domscan.net/docs/products/domain-pricing Use the GET /v1/pricing endpoint to retrieve pricing information. The request is free and authentication is optional. The response includes fields such as currency, signup_bonus, monthly_refresh, endpoints, free_endpoints, and a note. ```bash curl "https://domscan.net/v1/pricing" ``` ```json { "currency": "credits", "signup_bonus": 1, "monthly_refresh": "example", "endpoints": [ { "endpoint": "example", "method": "GET", "credits": 1, "variants": [ { "parameter": "example", "credits": 1 } ], "bulk_pricing": { "per_item_rate": 1, "formula": "example", "min_cost": 1 }, "note": "example" } ], "free_endpoints": [ "example" ], "note": "example" } ``` -------------------------------- ### Example response for GET /v1/prices/registrars Source: https://domscan.net/docs/pricing Example response for the GET /v1/prices/registrars endpoint. Shows the full JSON structure returned when querying registrar prices, including price details, summary statistics, and accounting information. Use this as a reference for the expected response format. ```json { "success": true, "data": { "results": [ { "tld": "com", "prices": [ { "registrar": "example", "registrarName": "example", "register": 0.5, "renew": 0.5, "transfer": 0.5, "currency": "USD", "promoPrice": 0.5, "promoDetails": "example", "features": { "freeWhoisPrivacy": false, "freeDns": false }, "lastUpdated": "2026-08-27T12:00:00Z", "source": "api", "sourceName": "example", "sourceUrl": "https://example.com", "confidence": "high", "sourceType": "official_api", "quoteScope": "tld_standard", "observedAt": "2026-08-27T12:00:00Z", "recommendationEligible": false, "recommendationExclusionReason": "stale" } ], "cheapest": { "register": {}, "renew": {}, "transfer": {} }, "averagePrice": { "register": 0.5, "renew": 0.5, "transfer": 0.5 }, "priceRange": { "register": {}, "renew": {}, "transfer": {} }, "lastUpdated": "2026-08-27T12:00:00Z", "dataQuality": { "sourcesQueried": 1, "sourcesSucceeded": 1, "cacheHitRate": 0.5, "averageConfidence": "high" }, "price_summary": { "registrar_count": 1, "registrar_coverage_ratio": 0.5, "price_points": { "register": 1, "renew": 1, "transfer": 1 }, "source_counts": {}, "confidence_counts": {}, "freshness": { "freshest_at": "2026-08-27T12:00:00Z", "oldest_at": "2026-08-27T12:00:00Z", "newest_age_hours": 0.5, "stale_price_count": 1, "unknown_freshness_count": 1 }, "spread": { "register_usd": 0.5, "renew_usd": 0.5, "transfer_usd": 0.5 }, "outlier_count": 1, "recommendation_eligible_registrar_count": 1, "quality_status": "healthy", "cheapest_register": {}, "cheapest_renew": {}, "cheapest_transfer": {} }, "checkAccounting": { "plannedChecks": 1, "actualChecks": 1, "successfulRows": 1, "creditsCharged": 1, "creditsPerCheck": 1, "selectedRegistrars": [ "example" ] } } ], "summary": { "tlds_requested": 1, "tlds_with_data": 1, "quote_count": 1, "integrated_source_count": 1, "total_price_points": 1, "average_registrar_coverage_ratio": 0.5, "stale_tld_count": 1, "fallback_tld_count": 1, "outlier_tld_count": 1, "widest_register_spread_tld": "com", "max_register_spread_usd": 0.5, "freshest_price_at": "2026-08-27T12:00:00Z", "oldest_price_at": "2026-08-27T12:00:00Z", "checkAccounting": { "plannedChecks": 1, "actualChecks": 1, "successfulRows": 1, "creditsCharged": 1, "creditsPerCheck": 1, "selectedRegistrars": [ "example" ] } }, "meta": {} }, "meta": { "requestId": "request-id", "servedBy": "example", "durationMs": 1, "cacheStatus": "hit" } } ``` -------------------------------- ### GET /v1/health/quick example request Source: https://domscan.net/docs/health Example request for the GET /v1/health/quick endpoint. Uses the X-API-Key header with the DOMSCAN_API_KEY environment variable and passes the domain query parameter. Returns the health check response for the specified domain. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/health/quick?domain=example.com" ``` -------------------------------- ### GET /v1/recipes/due-diligence example request Source: https://domscan.net/docs/products/workflow-recipes Sends a GET request to the due-diligence recipe endpoint. Requires an API key passed via the X-API-Key header. The domain query parameter is required; include_competitors defaults to false. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/recipes/due-diligence?domain=example.com&include_competitors=false" ``` -------------------------------- ### GET /v1/lifecycle example response Source: https://domscan.net/docs/lifecycle Example response for the GET /v1/lifecycle endpoint, showing lifecycle data for bbc.co.uk including registration and expiration dates, domain age, days until expiry, phase, and status flags. ```json { "domain": "bbc.co.uk", "tld": "co.uk", "registered": "1997-08-01T00:00:00Z", "expires": "2026-08-01T00:00:00Z", "updated": "2024-08-01T00:00:00Z", "age_days": 10515, "expires_in_days": 474, "phase": "active", "status_flags": [ "clientTransferProhibited", "serverTransferProhibited" ], "status": "clientTransferProhibited serverTransferProhibited", "events": [ { "action": "registration", "date": "1997-08-01T00:00:00Z" }, { "action": "expiration", "date": "2026-08-01T00:00:00Z" } ] } ``` -------------------------------- ### GET /v1/watchlist - Example Response Source: https://domscan.net/docs/watchlist Example JSON response for retrieving all domains in the watchlist. Shows the structure with watchlist array, total count, and updated_at timestamp. ```json { "watchlist": [ { "domain": "startup.com", "added_at": "2024-01-15T10:30:00Z", "status": "registered", "expiry_date": "2025-01-15T00:00:00Z", "days_until_expiry": 287, "last_checked": "2024-03-01T12:00:00Z", "notify_email": "alerts@example.com", "check_count": 4 } ], "total": 1, "updated_at": "2024-03-01T12:00:00Z" } ``` -------------------------------- ### GET /v1/typos - Example Request and Response Source: https://domscan.net/docs/products/typosquatting Use this request to check a domain for typosquatting threats. The response includes registered typos, risk summary, and threat level. The example uses domain=google.com with check_registered=false, limit=25, and include_tld_swap=true. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/typos?domain=google.com&check_registered=false&limit=25&include_tld_swap=true" ``` ```json { "domain": "google.com", "name": "google", "tld": "com", "permutations_generated": 100, "permutations_checked": 95, "registered_typos": [ { "domain": "gooogle.com", "type": "extra_char", "risk": "high", "registered": true }, { "domain": "goggle.com", "type": "char_swap", "risk": "critical", "registered": true } ], "available_typos": 50, "risk_summary": { "critical": 2, "high": 5, "medium": 10, "low": 28 }, "threat_level": "high", "checked_at": "2024-01-15T12:00:00Z" } ``` -------------------------------- ### GET /v1/brand-monitor/status Example Request and Response Source: https://domscan.net/docs/brand-monitor Retrieves the current status, threat metrics, and alert configuration for a monitored brand. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/brand-monitor/status?domain=example.com" ``` ```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" } } ``` -------------------------------- ### GET /v1/social Example Response Source: https://domscan.net/docs/products/social-handles Example JSON response from the GET /v1/social endpoint. Shows the structure of the response fields, including summaries and metadata. ```json { "handle": "example", "checked_at": "2026-08-27T12:00:00Z", "availability": {}, "resources": {}, "resource_summary": { "requested_count": 1, "checked_count": 1, "present_count": 1, "absent_count": 1, "unknown_count": 1, "cached_count": 1, "determinacy_rate": 0.5 }, "summary": { "available_count": 1, "unavailable_count": 1, "unknown_count": 1 }, "summary_v2": { "requested_count": 1, "checked_count": 1, "available_count": 1, "unavailable_count": 1, "unknown_count": 1, "not_supported_count": 1, "determinacy_rate": 0.5 }, "platform_summary": { "requested_count": 1, "checked_count": 1, "available_count": 1, "unavailable_count": 1, "unknown_count": 1, "not_supported_count": 1, "cached_count": 1, "high_confidence_count": 1, "live_platform_count": 1, "experimental_count": 1, "blocked_count": 1, "beta_limited_count": 1, "determinacy_rate": 0.5, "method_counts": {}, "source_counts": {} }, "beta_notice": "example", "meta": { "supported_platforms": [ "example" ], "supported_resources": [ "example" ], "unsupported_platforms": [ "example" ], "latency_ms": 1 } } ``` -------------------------------- ### GET /v1/certificates - Example Response Source: https://domscan.net/docs/products/certificate-intelligence Example response for the GET /v1/certificates endpoint. Shows the structure of the returned certificate data, summary, and intelligence summary fields. ```json { "domain": "example.com", "certificates": [ { "id": "example-id", "issuer": {}, "common_name": "example", "san": [ "example" ], "not_before": "2026-08-27T12:00:00Z", "not_after": "2026-08-27T12:00:00Z", "is_expired": false, "is_wildcard": false, "fingerprint_sha256": "example" } ], "summary": { "total_found": 1, "returned": 1, "unique_subdomains": 1, "issuers": [ "example" ], "earliest_cert": "example", "latest_cert": "example", "latest_expiry": "example", "has_more": false, "next_cursor": "example" }, "intelligence_summary": { "data_source": "public_data", "ct_log_sources": [ "example" ], "source_count": 1, "cache_status": "live", "returned_count": 1, "total_found": 1, "truncated": false, "limit": 1, "include_subdomains": false, "include_expired": false, "unique_name_count": 1, "unique_subdomains": 1, "issuer_count": 1, "wildcard_cert_count": 1, "active_cert_count": 1, "expired_cert_count": 1, "expiring_within_30_days_count": 1, "earliest_cert": "example", "latest_cert": "example", "latest_expiry": "example", "has_more": false, "next_cursor": "example", "warning_code": "example" }, "meta": {} } ``` -------------------------------- ### Example Response for GET /v1/tlds/:tld Source: https://domscan.net/docs/products/tld-intelligence Example response for the GET /v1/tlds/:tld endpoint. Shows the structure of a TLD detail object, including pricing, popularity, and trust fields. The response is a JSON object with example values. ```json { "tld": "com", "type": "gTLD", "name": "example", "description": "example", "introduced": 1, "operator": "example", "country": "US", "restrictions": "example", "rdap_supported": false, "rdap_endpoint": "example", "idn_supported": false, "dnssec_supported": false, "pricing": { "registration_usd": 0.5, "renewal_usd": 0.5, "transfer_usd": 0.5, "currency": "USD", "source": "estimate" }, "popularity": { "rank": 1, "tier": "top10", "use_cases": [ "example" ] }, "trust": { "score": 0.85, "tier": "premium", "notes": "example" }, "meta": {} } ``` -------------------------------- ### Brand Launch Readiness Example Response Source: https://domscan.net/docs/recipe-brand-launch Example response from the brand-launch-readiness recipe. Shows a successful readiness check with a score of 82, status "ready", and a checklist of domain, SSL, DNS, email authentication, social handles, brand protection, reputation, and brand quality items. Includes social availability, typo threats, brand score, action items, and meta information with credits used and components called. ```json { "success": true, "data": { "domain": "launchbrand.com", "brand_name": "Launch Brand", "readiness_score": 82, "status": "ready", "checklist": { "domain_controlled": { "name": "Domain Ownership", "status": "pass", "details": "Domain is registered" }, "ssl_configured": { "name": "SSL Certificate", "status": "pass", "details": "HTTPS is working" }, "dns_configured": { "name": "DNS Configuration", "status": "pass", "details": "DNS records configured" }, "email_auth": { "name": "Email Authentication", "status": "warning", "score": 66, "details": "Missing: DMARC", "action": "Configure DMARC" }, "social_handles": { "name": "Social Handles", "status": "warning", "score": 50, "details": "2 of 4 handles available" }, "brand_protection": { "name": "Brand Protection", "status": "warning", "score": 71, "details": "1 high-risk typo variant available" }, "reputation_clean": { "name": "Reputation", "status": "pass", "details": "Clean reputation" }, "brand_quality": { "name": "Brand Quality", "status": "pass", "score": 84, "details": "Strong memorability and spelling ease" } }, "social_availability": [ { "platform": "github", "available": true, "url": "https://github.com/launchbrand" }, { "platform": "twitter", "available": false } ], "typo_threats": { "total_variants": 48, "registered_threats": 2, "high_risk_count": 1 }, "brand_score": { "overall": 84, "pronounceability": 80, "memorability": 86, "spelling_ease": 88 }, "action_items": [ { "priority": "high", "category": "email", "action": "Configure DMARC", "details": "Complete the authentication trio before launch.", "estimated_impact": "Higher inbox placement" } ] }, "meta": { "recipe_name": "brand-launch-readiness", "credits_used": 10, "credits_saved": 4, "duration_ms": 581, "components_called": [ "availability", "health", "dns_security", "reputation", "typosquatting", "scoring", "social" ], "cached_components": [], "timestamp": "2026-04-15T09:42:00Z" }, "errors": [] } ``` -------------------------------- ### GET /v1/vulnerabilities example request (cURL and Python) Source: https://domscan.net/docs/vulnerabilities Example request for the GET /v1/vulnerabilities endpoint. The cURL command uses mode=standard, while the Python example uses mode=deep. Both require an API key in the X-API-Key header. The Python example prints the summary posture and package_advisories coverage from the JSON response. ```bash curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/vulnerabilities?domain=example.com&mode=standard" -H "x-api-key: YOUR_API_KEY" ``` ```python import requests domscan = requests.Session() domscan.headers.update({"X-API-Key": "your-api-key"}) response = domscan.get( "https://domscan.net/v1/vulnerabilities", params={"domain": "example.com", "mode": "deep"}, headers={"x-api-key": "YOUR_API_KEY"}, ) result = response.json() print(result["summary"]["posture"]) print(result["coverage"]["package_advisories"]) ``` -------------------------------- ### Example response for GET /v1/typos Source: https://domscan.net/docs/typosquatting Example response for the GET /v1/typos endpoint. Shows the structure of the returned JSON, including registered typos, risk summary, and threat level. ```json { "domain": "google.com", "permutations_generated": 50, "registered_typos": [ { "domain": "gooogle.com", "type": "repetition", "risk": "high", "registered": true }, { "domain": "googIe.com", "type": "homoglyph", "risk": "critical", "registered": true } ], "threat_level": "critical", "risk_summary": { "critical": 2, "high": 5, "medium": 10, "low": 8 } } ``` -------------------------------- ### GET /v1/brand-monitor - Example Request Source: https://domscan.net/docs/products/brand-monitor Retrieves the list of monitored brands. Requires an API key passed in the X-API-Key header. Authentication is required and costs 1 credit. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/brand-monitor" ``` -------------------------------- ### GET /v1/typos/quick example response (registered typos) Source: https://domscan.net/docs/typosquatting Example response for the GET /v1/typos/quick endpoint. Shows the registered typos list, count, threat level, coverage details, and scan duration. ```json { "domain": "example.com", "registered_typos": [ { "domain": "example.com", "type": "domain", "risk": "critical", "description": "example" } ], "count": 1, "threat_level": "none", "checked_at": "2026-08-27T12:00:00Z", "coverage": { "requested": 1, "definitive": 1, "unknown": 1, "omitted": 1 }, "scan_duration_ms": 1, "meta": {} } ``` -------------------------------- ### Example response for /v1/compare Source: https://domscan.net/docs/compare Example response from the /v1/compare endpoint. Shows the structure for domain comparison results, including valuation estimates, brand scores, TLD info, and recommendation details. ```json { "domains": [ { "domain": "startup.io", "available": true, "valuation": { "estimate_usd": 2500, "confidence": 0.7, "estimate": { "low": 1400, "mid": 2500, "high": 4100, "currency": "USD" }, "analysis": { "scope": "intrinsic_domain_value", "range_source": "anchored", "range_width": "moderate", "confidence_label": "medium" } }, "score": { "overall": 85, "brandability": 90 }, "tld_info": { "type": "ccTLD", "trust_tier": "premium" }, "recommendation_rank": 85, "recommendation_reason": "available for registration, premium .io TLD, excellent brand score" } ], "recommendation": { "best_available": "startup.io", "best_overall": "startup.com", "best_value": "startup.ai", "reasoning": "startup.io is recommended: available for registration, premium .io TLD, excellent brand score" }, "meta": { "compared_count": 3, "available_count": 2, "total_ms": 84 } } ``` -------------------------------- ### Go example for domain availability Source: https://domscan.net/docs/check-availability Defines a helper that sends a GET request with the API key from the DOMSCAN_API_KEY environment variable, then decodes the JSON response and prints the results. The main function constructs the URL with query parameters. ```go package main import ( "encoding/json" "fmt" "net/http" "os" ) func domscanGet(url string) (*http.Response, error) { request, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { return nil, err } request.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY")) return http.DefaultClient.Do(request) } func main() { url := "https://domscan.net/v1/status?name=startup&tlds=com,io,co&prefer_cache=1" resp, _ := domscanGet(url) defer resp.Body.Close() var data map[string]any json.NewDecoder(resp.Body).Decode(&data) fmt.Println(data["results"]) } ``` -------------------------------- ### POST /v1/tech/bulk curl example Source: https://domscan.net/docs/tech-stack Runs up to 10 ordered fast scans. Valid targets cost 3 credits each, invalid targets cost zero, and upstream failures are refunded per item. Replace YOUR_API_KEY with your actual API key. ```bash curl -H "X-API-Key: your-api-key" -X POST "https://domscan.net/v1/tech/bulk" -H "x-api-key: YOUR_API_KEY" -H "content-type: application/json" -d '{"targets":["example.com",{"url":"https://shop.example.com/","reference":"shop"}]}' ``` -------------------------------- ### GET /v1/popularity/history - Example Response Source: https://domscan.net/docs/domain-profile Example JSON response for the historical popularity endpoint. Shows the domain, collection, and an array of observations. ```json { "domain": "example.com", "collection": "lookup_driven", "complete_daily_series": false, "result_count": 1, "empty_result": false, "observations": [ { "domain": "example.com", "rank": 1, "bucket": "top-100", "status": "ranked", "source": "tranco", "list_date": "2026-08-27", "observed_on": "2026-08-27", "checked_at": "2026-08-27T12:00:00Z" } ] } ``` -------------------------------- ### GET /v1/typos/quick - Example Request and Response Source: https://domscan.net/docs/products/typosquatting Use this request to check for typosquatting domains. The response includes registered typos, threat level, coverage details, and scan duration. The example shows a single registered typo with critical risk and a threat level of none. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/typos/quick?domain=example.com&limit=25" ``` ```json { "domain": "example.com", "registered_typos": [ { "domain": "example.com", "type": "domain", "risk": "critical", "description": "example" } ], "count": 1, "threat_level": "none", "checked_at": "2026-08-27T12:00:00Z", "coverage": { "requested": 1, "definitive": 1, "unknown": 1, "omitted": 1 }, "scan_duration_ms": 1, "meta": {} } ``` -------------------------------- ### GET /v1/popularity/history - Example Request Source: https://domscan.net/docs/domain-profile Example curl command to retrieve historical popularity data for a domain. Requires an API key. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/popularity/history?domain=example.com&limit=25" ``` -------------------------------- ### Example Request for GET /v1/email/blacklist Source: https://domscan.net/docs/email-blacklist Shows three curl commands: fetching the first 1000 domains as JSON, fetching as plain text for firewall rules, and downloading the complete blacklist. ```bash # Get first 1000 domains as JSON curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/blacklist" # Get as plain text for firewall rules curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/blacklist?format=txt&limit=5000" # Download complete blacklist curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/blacklist/download" -o disposable.json ``` -------------------------------- ### POST /v1/recipes/portfolio-audit - Example Request and Response Source: https://domscan.net/docs/products/workflow-recipes Use this endpoint to audit a portfolio of domains. The request requires an API key and a list of domains; optional flags control valuation, health, and pricing. The response includes summary metrics, alerts, optimization suggestions, and per-domain details, with meta information about credits and components called. ```bash curl -X POST "https://domscan.net/v1/recipes/portfolio-audit" \ -H "Content-Type: application/json" \ -H "X-API-Key: $DOMSCAN_API_KEY" \ -d '{ "domains": [ "example.com", "example.org" ], "include_valuation": true, "include_health": true, "include_pricing": true, "alert_expiring_days": 90 }' ``` ```json { "success": true, "data": { "summary": { "total_domains": 3, "total_value_low": 3200, "total_value_high": 12400, "average_health_score": 78, "expiring_soon": 1, "renewal_cost_annual": 98.4 }, "alerts": [ { "domain": "brandold.com", "type": "expiration", "severity": "high", "message": "Expires in 12 days.", "action": "Renew immediately" } ], "optimization": { "registrar_consolidation": { "current_registrars": 3, "recommendation": "Move long-tail domains to a single low-cost registrar.", "potential_savings": 48 }, "underperforming": [ "brandold.com" ], "top_valuable": [ "brand.com" ] }, "domains": [ { "domain": "brand.com", "status": "owned", "value_estimate": { "low": 2500, "mid": 4600, "high": 9000 }, "health_score": 92, "health_grade": "A", "expiry_date": "2027-02-01", "days_until_expiry": 292, "renewal_price": 12.99, "issues": [] } ] }, "meta": { "recipe_name": "portfolio-audit", "credits_used": 25, "credits_saved": 275, "duration_ms": 1298, "components_called": [ "availability", "whois", "valuation", "health", "pricing" ], "cached_components": [ "valuation" ], "timestamp": "2026-04-15T10:31:00Z" }, "errors": [] } ``` -------------------------------- ### Get batch by job_id Source: https://domscan.net/docs/batch Example request to retrieve a batch by its job_id. Uses the X-API-Key header with the DOMSCAN_API_KEY environment variable. The endpoint is GET /v1/batches/:job_id. ```bash curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/batches/string" ``` -------------------------------- ### Node.js fetch example for GET /v1/profile Source: https://domscan.net/docs/domain-profile Uses fetch with an X-API-Key header to retrieve domain profile data and logs age, expiry, and DNSSEC status. Requires a modern Node.js environment with fetch support. ```javascript const domscanFetch = (url, options = {}) => fetch(url, { ...options, headers: { ...options.headers, "X-API-Key": "your-api-key" }, }); const response = await domscanFetch( "https://domscan.net/v1/profile?domain=github.com" ); const data = await response.json(); console.log(`Domain age: ${data.age_days} days`); console.log(`Expires in: ${data.days_until_expiry} days`); console.log(`DNSSEC: ${data.dnssec ? 'Enabled' : 'Disabled'}`); ```