{"openapi":"3.1.0","info":{"title":"Domain Intelligence API","description":"Aggregated WHOIS, DNS, SSL, subdomains, and email security intelligence for any domain.","version":"0.2.0"},"paths":{"/monitor":{"post":{"summary":"Monitor Signup","operationId":"monitor_signup_monitor_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/monitor/confirm":{"get":{"summary":"Monitor Confirm","operationId":"monitor_confirm_monitor_confirm_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitor/unsubscribe":{"get":{"summary":"Monitor Unsubscribe","operationId":"monitor_unsubscribe_monitor_unsubscribe_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitor/manage":{"get":{"summary":"Monitor Manage","operationId":"monitor_manage_monitor_manage_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Monitor Manage Save","operationId":"monitor_manage_save_monitor_manage_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/metrics":{"get":{"summary":"Metrics","operationId":"metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/lookup/{domain}":{"get":{"summary":"Lookup","operationId":"lookup_lookup__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"wait","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Wait"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/{domain}/dns":{"get":{"summary":"Dns Only","operationId":"dns_only_domain__domain__dns_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/{domain}/ssl":{"get":{"summary":"Ssl Only","operationId":"ssl_only_domain__domain__ssl_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/{domain}/whois":{"get":{"summary":"Whois Only","operationId":"whois_only_domain__domain__whois_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/{domain}/subdomains":{"get":{"summary":"Subs Only","operationId":"subs_only_domain__domain__subdomains_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"wait","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Wait"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/domain/{domain}/email-security":{"get":{"summary":"Email Only","operationId":"email_only_domain__domain__email_security_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/demo/{domain}":{"get":{"summary":"Demo Lookup","description":"Public demo: rate-limited 5 req/IP/day, no auth.","operationId":"demo_lookup_demo__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/demo-preview/{domain}":{"get":{"summary":"Demo Preview","description":"Cache-only preview for landing-page auto-load. Whitelisted. No upstream calls,\nno rate-limit accounting. Missing namespaces are returned as null.","operationId":"demo_preview_demo_preview__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/demo-preview-rotation":{"get":{"summary":"Demo Preview Rotation","description":"Return the rotation list so the landing JS can sync deterministically.","operationId":"demo_preview_rotation_demo_preview_rotation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/reports":{"get":{"summary":"Reports Index","description":"SEO-indexable directory hub listing all SITEMAP_DOMAINS. No auth, 24h Redis cache.","operationId":"reports_index_reports_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"head":{"summary":"Reports Index","description":"SEO-indexable directory hub listing all SITEMAP_DOMAINS. No auth, 24h Redis cache.","operationId":"reports_index_reports_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/report/{domain}":{"get":{"summary":"Report","description":"SEO-indexable HTML domain intelligence report. No auth, page-level cached.\n\nQuery params:\n  refresh=1 — bypass HTML + per-namespace caches and re-fetch from upstream.\n              Rate-limited to REPORT_REFRESH_DAILY_LIMIT requests per IP per day.\n              Silently degrades to a normal (cached) load if the limit is hit,\n              so a hammered refresh button never breaks the page.","operationId":"report_report__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Refresh"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"summary":"Report","description":"SEO-indexable HTML domain intelligence report. No auth, page-level cached.\n\nQuery params:\n  refresh=1 — bypass HTML + per-namespace caches and re-fetch from upstream.\n              Rate-limited to REPORT_REFRESH_DAILY_LIMIT requests per IP per day.\n              Silently degrades to a normal (cached) load if the limit is hit,\n              so a hammered refresh button never breaks the page.","operationId":"report_report__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Refresh"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/report/{domain}/subdomains-status":{"get":{"summary":"Report Subdomains Status","description":"Cache-only subdomain state for the report-page live update.\n\nReads ONLY the Redis cache — never triggers an upstream call — so the page can\npoll it cheaply (zero rate-limit burn) and drop in the fuller result the moment\nbackground enrichment lands. Public (under the /report/ auth-bypass prefix).","operationId":"report_subdomains_status_report__domain__subdomains_status_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","description":"XML sitemap listing the landing page + all seed domain reports.","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response"}}},"head":{"summary":"Sitemap","description":"XML sitemap listing the landing page + all seed domain reports.","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response"}}}},"/robots.txt":{"get":{"summary":"Robots","description":"Robots.txt — allow all crawlers, point at the sitemap, disallow internal endpoints.","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response"}}},"head":{"summary":"Robots","description":"Robots.txt — allow all crawlers, point at the sitemap, disallow internal endpoints.","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response"}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}